Подключаемся к нужному серверу: ```sh ssh root@bigfoottrade.kz -p 2222 ``` Настройка почты на POSTFIX(агент передачи почты) И DOVECOT на основе https://www.alex-math.ru/administrirovaniye/ustanovka-postfix-dovecot-posfixadmin-na-ubuntu-20-04/ и https://www.youtube.com/watch?v=_pbH7GsVTrw&t=649s и https://www.youtube.com/watch?v=VptKRBVeCMo **************************************************************************************************** ## Устанавливаю Postfixadmin Для начала создаю базу в PostgreSQL с базой mail и пользователем mailreader и паролем major!reader1 ```sh cd /var/www/html && sudo wget https://yer.dl.sourceforge.net/project/postfixadmin/postfixadmin-3.3.8/PostfixAdmin%203.3.8.tar.gz && sudo tar xzvf "PostfixAdmin 3.3.8.tar.gz" ``` Создаю временный каталог в /var/www/html/PostfixAdmin/templates_c правлю способ подключения к базе: ```sh sudo mcedit /srv/http/PostfixAdmin/config.inc.php ``` На это: ```conf $CONF['configured'] = true; $CONF['database_type'] = 'pgsql'; $CONF['database_host'] = 'localhost'; $CONF['database_user'] = 'mailreader'; $CONF['database_password'] = 'major!reader1'; $CONF['database_name'] = 'mail'; $CONF['emailcheck_resolve_domain'] = 'NO'; ``` Также нужно поднастроить апачи добавив следующтй код в: sudo mcedit /etc/apache2/apache2.conf ниже того что указывает на Alias /PostfixAdmin/ "/var/www/html/PostfixAdmin/public/" Options FollowSymLinks AllowOverride None Allow from all Order allow,deny Перезагружаю: ```sh systemctl restart apache2.service ``` На последок: ```sh sudo chown www-data:www-data -R /var/www/ && sudo chown www-data:www-data -R /opt/app_api_mobile_v2/mobile_v2 ``` Теперь можно открывать сайт по IP: ```sh start http://77.240.38.108/PostfixAdmin/setup.php ``` ```sh start https://77.240.38.108/PostfixAdmin/login.php ``` Просит задать пароль, задал такой: 11qazxsw22 Результат генерации: $CONF['setup_password'] = '$2y$10$ySo40K0pOn0Q5jLcBoK1yua5JaGXI.NIzTmUVBn1dreTaP2RkZ2My'; И добавляем эту стору в: sudo mcedit /srv/http/PostfixAdmin/config.inc.php Потом обновляем страницу. Добавляем администратора введя пароль 11qazxsw22 емайл в качестве логина irigm@mail.ru и пароль: 33edcvfr44 Можно взглянуть базу там должны создаться таблицы Теперь осталось пойти на Postfixadmin, завести сначала почтовый домен, потом ящик и протестировать нашу почтовую систему, например, с помощью Thunderbird. Отправляем письма себе, другому пользователю в нашей системе. Потом пробуем послать себе письма с Gmail, Yandex, Mail.ru и наблюдаем за поведением системы, изучая логи. Основная настройка почты завершена. Теперь необходимо настроить DKIM, SPF, чтобы другие почтовые системы воспринимали нас как доверенных отправителей. Но об этом я расскажу в другом посте. ****************************************************************************************** ## Устанавливаю Postfix популярный почтовый агент (MTA) с открытым исходным кодом, который можно использовать для маршрутизации и доставки почты в системе Linux. ```sh sudo apt-get update && sudo apt install postfix postfix-pgsql dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-pgsql mailutils postgresql ``` Ссохраняю оригинальный конфигурационный файл: ```sh cp /etc/postfix/main.cf /etc/postfix/main.cf.orig ``` Конфигурирую: ```sh sudo dpkg-reconfigure postfix ``` Настраиваю так: ```conf General type of mail configuration?: Internet Site System mail name: example.com (не mail.example.com) Root and postmaster mail recipient: имя пользователя основной учетной записи Linux (в наших примерах sammy) Other destinations to accept mail for: $myhostname, example.com, mail.example.com, localhost.example.com, localhost Force synchronous updates on mail queue?: No Local networks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 Mailbox size limit: 0 Local address extension character: + Internet protocols to use: all ``` Можно взглянуть на настройки так: sudo mcedit /etc/postfix/main.cf Через pgAdmin создаю нового пользователя mailreader с паролем major!reader1 CREATE DATABASE mail WITH OWNER mailreader; Добавляю: sudo mc edit /etc/postgresql/12/main/pg_hba.conf: local postfix postfix md5 Перезагружаю базу данных: service postgresql reload Создаём файл для обращения к базе с алиасами: sudo mcedit /etc/postfix/pgsql_virtual_alias_maps.cf https://www.alex-math.ru/administrirovaniye/ustanovka-postfix-dovecot-posfixadmin-na-ubuntu-20-04/ ```conf user = mailreader password = major!reader1 hosts = localhost dbname = mail query = SELECT goto FROM alias WHERE address='%s' AND active = '1' ``` Создаём файл для получения информации по виртуальным доменам: sudo mcedit /etc/postfix/pgsql_virtual_domains_maps.cf ```conf user = mailreader password = major!reader1 hosts = localhost dbname = mail query = SELECT domain FROM domain WHERE domain='%u' ``` Создаём файл для получения информации о почтовых ящиках: sudo mcedit /etc/postfix/pgsql_virtual_mailbox_maps.cf ```conf user = mailreader password = major!reader1 hosts = localhost dbname = mail query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active = '1' ``` Прописываем ранее созданные файлы в: sudo mcedit /etc/postfix/main.cf добавив строчки: ```conf virtual_mailbox_base = /home/mail virtual_alias_maps = proxy:pgsql:/etc/postfix/pgsql_virtual_alias_maps.cf virtual_mailbox_domains = proxy:pgsql:/etc/postfix/pgsql_virtual_domains_maps.cf virtual_mailbox_maps = proxy:pgsql:/etc/postfix/pgsql_virtual_mailbox_maps.cf virtual_minimum_uid = 1024 virtual_uid_maps = static:1024 virtual_gid_maps = static:1024 virtual_transport = dovecot dovecot_destination_recipient_limit = 1 ``` Настройки безопасного соединения (также просто вставил в конец файла): ```conf smtpd_sasl_auth_enable = yes smtpd_sasl_exceptions_networks = $mynetworks smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_tls_cert_file = /etc/ssl/certs/bigfoottrade_kz.crt smtpd_tls_key_file = /etc/ssl/private/bigfoottrade_kz.key smtpd_tls_security_level = encrypt ``` Похоже опции что ниже устарели: ```conf smtpd_use_tls = yes smtp_use_tls = yes smtp_tls_security_level = encrypt smtp_enforce_tls=yes smtp_tls_mandatory_protocols = !SSLv2, !SSLv3 smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 smtp_tls_protocols = !SSLv2, !SSLv3 smtpd_tls_protocols = !SSLv2, !SSLv3 tls_preempt_cipherlist = yes smtpd_tls_mandatory_ciphers = high tls_high_cipherlist = ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:DHE-DSS-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA256:ADH-AES256-GCM-SHA384:ADH-AES256-SHA256:ECDH-RSA-AES256-GCM-SHA384:ECDH-ECDSA-AES256-GCM-SHA384:ECDH-RSA-AES256-SHA384:ECDH-ECDSA-AES256-SHA384:AES256-GCM-SHA384:AES256-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:DHE-DSS-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-DSS-AES128-SHA256:ADH-AES128-GCM-SHA256:ADH-AES128-SHA256:ECDH-RSA-AES128-GCM-SHA256:ECDH-ECDSA-AES128-GCM-SHA256:ECDH-RSA-AES128-SHA256:ECDH-ECDSA-AES128-SHA256:AES128-GCM-SHA256:AES128-SHA256:NULL-SHA256 smtpd_tls_auth_only = yes smtpd_helo_required = yes smtp_tls_security_level = may smtp_tls_ciphers = export smtp_tls_loglevel = 1 smtp_tls_CApath = /etc/ssl/certs smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache ``` Снимаем комментарии со следующих строк, или дописываем их при необходимости: sudo mcedit /etc/postfix/master.cf (просто добавил в конец файла) ```conf submission inet n - n - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=may -o smtpd_sasl_auth_enable=yes -o smtpd_sasl_type=dovecot -o smtpd_sasl_path=/var/spool/postfix/private/auth -o smtpd_sasl_security_options=noanonymous -o smtpd_sasl_local_domain=$myhostname -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject -o smtpd_relay_restrictions=permit_mynetworks,permit_sasl_authenticated,defer_unauth_destination -o milter_macro_daemon_name=ORIGINATING smtps inet n - n - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_mynetworks,permit_sasl_authenticated,reject dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient} ``` Проверяю на наличие ошибок: ```sh sudo postfix check ``` В конфигурационном файле прописывается список дорменов которых обслуживает данный агент доставки. ```sh sudo mcedit /etc/postfix/main.cf ``` Примерно таокое: mydestination = $myhostname, your_domain, localhost.com, , localhost Перезапускаем: ```sh sudo systemctl restart postfix ``` ****************************************************************************************** ## Настройка dovecot the Secure IMAP server Теперь устанавливаю и настраиваю Dovecot: sudo apt install -y dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd Создаю пользователя и каталог sudo adduser --system --no-create-home --uid 1024 --group --disabled-password --disabled-login --gecos 'dovecot virtual mail user' vmail mkdir /home/mail chown vmail:vmail /home/mail chmod 700 /home/mail Смотрим что мы создали: groups vmail Настраиваем способ хранения сообщений: sudo mcedit /etc/dovecot/conf.d/10-mail.conf mail_location = maildir:/home/mail/%d/%u/ Настраиваем слушателя аутентификации: sudo mcedit /etc/dovecot/conf.d/10-master.conf service auth { unix_listener auth-userdb { mode = 0600 user = vmail group = vmail } unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix } } Настраиваем аутентификацию в Dovecot: sudo mcedit /etc/dovecot/conf.d/10-auth.conf Комментируем одну строку, снимаем комментарий с другой. #!include auth-system.conf.ext !include auth-sql.conf.ext Настраиваем шифрование Dovecot: sudo mcedit /etc/dovecot/conf.d/10-ssl.conf ssl = required ssl_cert =