YurecNT

Настройка почтового сервера Postfix + Courier + spamassasin + roundcube Ч.2

Предыдущая часть

Глава седьмая - настраиваем службу получения писем с сервера Courier

Укажем Courier, чтобы он проводил аутентификацию используя нашу базу данных MySQL.
Редактируем /etc/courier/authdaemonrc и приводим его к следующему виду:

authmodulelist="authmysql"
authmodulelistorig="authuserdb authpam authpgsql authldap authmysql authcustom authpipe"
daemons=5
authdaemonvar=/var/run/courier/authdaemon
DEBUG_LOGIN=0
DEFAULTOPTIONS=""
LOGGEROPTS=""

Затем очищаем файл /etc/courier/authmysqlrc и заполняем как здесь:

MYSQL_SERVER localhost
MYSQL_USERNAME user
MYSQL_PASSWORD 123
MYSQL_PORT 3389
MYSQL_DATABASE mail
MYSQL_USER_TABLE users
MYSQL_CRYPT_PWFIELD password
MYSQL_UID_FIELD 5000
MYSQL_GID_FIELD 5000
MYSQL_LOGIN_FIELD email
MYSQL_HOME_FIELD "/home/vmail"
MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')
MYSQL_QUOTA_FIELD quota
MYSQL_OPT 0

##NAME: MARKER:0
#
# Do not remove this section from this configuration file. This section
# must be present at the end of this file.

В конце важно чтобы был коментарий! Иначе ничего не заработает! В инструкции PDF этого нет, но в последних версиях - должно быть!

Перезапустим Courier:

/etc/init.d/courier-authdaemon restart
/etc/init.d/courier-imap restart
/etc/init.d/courier-imap-ssl restart
/etc/init.d/courier-pop restart
/etc/init.d/courier-pop-ssl restart

Вот и все! А вы боялись! На этом базовая настройка почтового сервера закончена! Если к нему на роутере пробросить 25-й порт - можно получить первое письмо!

Теперь разберем трудности о которые пришлось застрять в реальной жизни:

  • Все настроили, все перезапустили, юзеров наколбасили, а авторизоваться не получается - хоть убей - не верный логин и пароль.... Чтобы успешно авторизоватсья - надо на почту этого пользователя отправить первое письмо, только после этого он может авторизоваться и получать-отправлять письма!
  • Вот здесь как раз чуть выше описано что нужен коментарий в файле /etc/courier/authmysqlrc - но кто знал то... Раньше был не нужен и пришлось головой биться пару дней... И в логах ничего и ошибок при запуске нет, а авторизация не проходит.
  • Дальше не проходила sasl-авторизация для почтового сервера, когда то давным давно я описывал это в статье на старом сайте и учел это в настоящем и сразу сделал правильное описание конфига.

Глава восьмая - настройка WEB-морды

WEB-морда это как правило Roundcube, кому хочется не много секса головного мозга, можно попробовать Rainloop (скачать)- так же интересный почтовый клиент.

Вот именно здесь, устанавливая Roundcube мы уже не будем использовать MySQL, пусть у нас будет SQLITE3 (мы же не сервис мирового масштаба).

Но для веба нам нужны пара служб - php7.4-fpm и nginx, так же рекомендую установить дополнения для php:

apt install php7.4-zip php7.4-gd php7.4-xml php7.4-zip php7.4-zip php7.4-zip sqlite3 php7.4-sqlite3 php7.4-mbstring php7.4-intl

Далее выбираем, где будут лежать файлы движка Roundcube и распаковывем туда дистрибутив, у меня например по такому пути: /home/user/www/mail.yurecnt.ru

Так как это не движек сверх секретного и сверх популярного сайта - можно на все содержимое каталога дать права на запись, инче Roundcube не создаст конфиг.

И да, веб-морда не обязательно должна лежать там где почтовый сервер, может хоть в интернете на каком-нибудь хостинге лежать, но тогда путь к ней должен быть не mail.site.ru, а например webmail.site.ru

Настраиваем Nginx:

Создаем файл /etc/nginx/sites-enabled/mail.site.ru

server {
    server_name mail.site.ru;
    root /home/user/www/mail.site.ru;
    index index.php;
    client_max_body_size 4000m;
    location / {
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }
    location ~ \.php$ {
        try_files $uri =404;
        include /etc/nginx/fastcgi.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }

    listen 80;
}

Да, пока без SSL, просто чтобы был, затем уже читаем статью и выпускаем бесплатные сертификаты для веб-морды и они же нам пригодятся для настройки шифрования Postfix и Courier!

И так веб-сервер настроен, время настроить сам Roundube, идем по адресу https://mail.site.ru/installer/

И оно первым делом проверяет, все ли хорошо, все ли модули PHP стоят:

 

Внизу жмем Next и настраиваем:

Ну и выбираем плагины какие хотите, затем нажимаем Save Config и все, можно пользоваться!

Глава девятая - настройка шифрования

Сперва разберем смысл шифрования:

Сообщения должны шифроваться между почтовым клиентом и сервером электронной почты, а так же между серверами электронной почты.

На практике - я решил прикрыть 25 порт и оставить только 465 и проверить, как сервер принимает письма. Отправил себе письмо с mail.yandex.ru и оно дошло, то есть оно шло по шифрованному каналу связи, но когда я отправил себе письмо с gmail - оно не дошло.... Через пол часа я включил 25-порт и письмо пришло. То есть в идеале оба порта должны быть доступны, ведь мы не знаем, что твориться в мозгах админов сторонних почтовых серверов и как именно нам отправят почту.

В предыдущей главе мы выпустили бесплатные сертификаты для веб-морды, следовательно есть защита соединения между веб-мордой и браузером пользователя.

Если же вы не используете почтовые клиенты, то настройка шифрования между веб-мордой и почтовым сервером - это уже попахивает паранойей.... Потому что стороннему пользователю все равно не видно, что там происходит... если хакнут веб-морду - то соответственно увидят письма, если хакнут ssh - то так же увидят все письма.

Шифрование нужно если вы используете почтовые клиенты - при чем из внешнего мира - с мобильных телефонов, с домашних компов и да, если там идет пересылка какой то реально-важной информации, которую не должны перехватить. Да, многие параноят даже в случае не формальной переписки, так что будем настраивать.

И так, сертификаты уже получены, они каждые 60-90 дней сами будут перевыпускаться, остается только указать их в конфиге.

Открываем на редактирование файл /etc/postfix/main.cf

И прописываем наши ключи в строках:

smtpd_tls_cert_file = /etc/letsencrypt/live/mail.site.ru/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.site.ru/privkey.pem

И включаем защищенное соедниение в файле /etc/postfix/master.cf:

раскоментируем строки:

smtps     inet  n       -       y       -       -       smtpd
-o smtpd_tls_wrappermode=yes

перезапускаем Postfix:

/etc/init.d/postfix restart и готово! На отправку почты настроено безопасное подключение!

Теперь надо защитить письма, которые вы получаете через imap или pop с вашего сервера. Тут чуточку сложнее, так как нужно комбинировать ключи шифрования и тогда проще сделать sh-файл, который будем запускаться кроном по ночам хотя бы раз в месяц:

#!/bin/sh
cat /etc/letsencrypt/live/mail.site.ru/privkey.pem /etc/letsencrypt/live/mail.site.ru/cert.pem > /etc/courier/letsencrypt.pem
chown courier:courier /etc/courier/letsencrypt.pem
chmod o-rwx /etc/courier/letsencrypt.pem
/etc/init.d/courier-imap-ssl restart
/etc/init.d/courier-pop-ssl restart

Затем надо в файл /etc/courier/imapd-ssl добавить пару строк:

TLS_CERTFILE=/etc/courier/letsencrypt.pem
TLS_PROTOCOL=SSL3

Затем надо в файл /etc/courier/pop3d-ssl добавить только:

TLS_CERTFILE=/etc/courier/letsencrypt.pem

и перезапустить обе службы:

/etc/init.d/courier-imap-ssl restart
/etc/init.d/courier-pop-ssl restart

Источник

Теперь мы полностью шифруемся! =)

Следующая часть


Рейтинг: 54

Обновлено: 21.11.2024

Информация об авторе

Евдокимов Юрий Владимирович

Я начал свою карьеру программистом в возрасте около 17 лет.

Изначально я хотел стать электриком, но что-то пошло не так - мне подарили первый компьютер... не рабочий... Сказали починишь - п ....

Администратор сайта


Все статьи автора

Благодарности: 1

Рейтинг: 2

Поддержать автора


СБП (Сбер) 9221301778

Самое читаемое:
Все о загрузочных флешках, дисках и ссд
Все о загрузочных флешках, дисках и ссд
Загрузимся хоть с загрузочного ....
14.09.2024
Не Play Market-ом единым
Не Play Market-ом единым
Свободное ПО для Android ....
13.10.2024
Публикация базы данных 1С
Публикация базы данных 1С
Не большой мануал по настройке ....
09.09.2023
Бесплатные программы для работы с разделами жесткого диска
Бесплатные программы для работы с разделами жесткого диска
краткий обзор бесплатных прогр ....
17.05.2024
QBasic 4.5
QBasic 4.5
Древние языки ....
18.10.2024
Windows 3.11 - полный дистрибутив!
Windows 3.11 - полный дистрибутив!
старые окна ....
03.09.2023
Windows XP SP 2 слетел драйвер дисковода CD/DVD (2015 г.)
Windows XP SP 2 слетел драйвер дисковода CD/DVD (2015 г.)
И такое бывало.... мало ли, пу ....
16.05.2024
1С Бухгалтерия - ошибка формата потока (3.0.88.22)
1С Бухгалтерия - ошибка формата потока (3.0.88.22)
1С Бухгалтерия - ошибка формат ....
16.05.2024
Установка OwnCloud на Linux Debian 11 или 12
Установка OwnCloud на Linux Debian 11 или 12
Отличное облачное решение для ....
04.11.2024
Windows PE
Windows PE
Спасение утопающих в руках уто ....
28.09.2024
Как сбросить пароль Windows 7-10
Как сбросить пароль Windows 7-10
Входим в нее...... ....
17.08.2024
Программы восстановления удаленных файлов
Программы восстановления удаленных файлов
Реанимируем почти убитое ....
16.05.2024
Как разблокировать системный реестр Windows
Как разблокировать системный реестр Windows
Если нельзя, но очень хочется ....
16.05.2024
Как отвязать Windows 7, 8, 10 от оборудования
Как отвязать Windows 7, 8, 10 от оборудования
Переносим операционку на другу ....
18.11.2024
LanScope 2.9.1
LanScope 2.9.1
Простая программа для сканиров ....
11.08.2023
Простое лимитирование дискового пространства Linux
Простое лимитирование дискового пространства Linux
Разделяй и влавствуй над диско ....
21.11.2024
Многофункциональный обработчик кнопок JQuery
Многофункциональный обработчик кнопок JQuery
Многофункциональный обработчик ....
13.08.2023
Установка Debian и Ubuntu по сети через PXE
Установка Debian и Ubuntu по сети через PXE
бездисковая установка линукс! ....
16.05.2024
Бесплатный SSL-сертификат и настройка Nginx
Бесплатный SSL-сертификат и настройка Nginx
Бесплатные ssl сертификаты ....
16.05.2024
GParted Life CD Загрузка по сети с PXE
GParted Life CD Загрузка по сети с PXE
Скачать бесплатно GParted Life ....
26.05.2024
Запуск Ubuntu на Android
Запуск Ubuntu на Android
Устанавлиаем Ubuntu на мобильн ....
01.01.1970
Обновляем Debian с 11 на 12!
Обновляем Debian с 11 на 12!
Обновляем операционку почти бе ....
16.05.2024
Убираем из адресной строки www
Убираем из адресной строки www
убираем зеркала сайтов исключа ....
13.08.2023
Python - самообучающийся чат-бот для Телеграмм
Python - самообучающийся чат-бот для Телеграмм
скачать бесплатно бота для тел ....
16.05.2024
Ускорение работы сайта
Ускорение работы сайта
Ускоряем сайт с помощью настро ....
26.05.2024
Frontol XPOS Настройка копии чека
Frontol XPOS Настройка копии чека
FrontolXPOS - настраиваем печа ....
16.05.2024
Опыт заработка на сайте
Опыт заработка на сайте
Можно ли нормально заработать ....
25.01.2023
Брут http-авторизации на PHP
Брут http-авторизации на PHP
Взлом HTTP-авторизации ....
21.11.2024
Настройка spamassassin для работы с MySQL
Настройка spamassassin для работы с MySQL
Боремся со спамом ....
01.01.1970