Користувальницькі налаштування

Налаштування сайту


mailserver

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версійПопередня ревізія
Наступна ревізія
Попередня ревізія
mailserver [2016/11/19 09:48] – Самодельный транспорт wombatmailserver [2020/05/20 18:59] (поточний) – [Фильтрация спама] wombat
Рядок 139: Рядок 139:
  
   sudo /etc/init.d/postfix reload   sudo /etc/init.d/postfix reload
 +
 +
 +
 +
 +==== SASL-аутентификация ====
 +
 +Для того, чтобы Postfix принимал письма для дальнейшей пересылки с других компьютеров (например, с нашего же домашнего почтового клиента), нужно обеспечить аутентификацию пользователей, так как без неё он будет либо принимать письма ото всех подряд, либо ни от кого.
 +
 +Инструкция по настройке SASL-аутентификации находится здесь: http://www.postfix.org/SASL_README.html
 +
 +Сначала надо проверить, какие реализации SASL поддерживает Postfix в нашей системе:
 +
 +  sudo postconf -a
 +  cyrus
 +  dovecot
 +
 +Видим, что их две: ''cyrus'' и ''dovecot''. Далее будем рассматривать вариант с ''cyrus''.
 +
 +Установим необходимые библиотеки и инструменты. В Debian это:
 +
 +  sudo apt-get install libsasl2-2 libsasl2-modules sasl2-bin libsasl2-modules-db
 +
 +Запустим службу аутентификации и проверим на подлинность какого-либо пользователя, имеющегося в системе:
 +
 +  sudo systemctl -l restart saslauthd
 +  sudo testsaslauthd -u username -p password
 +  0: OK "Success."
 +
 +Если видим надпись ''OK "Success."'', значит, служба запущена, отвечает на запросы и выполняет проверки.
 +
 +Далее нужно внести изменения в настройки самого Postfix:
 +
 +<file conf /etc/postfix/main.cf>
 +smtp_tls_security_level = may
 +smtp_tls_cert_file = /etc/ssl/certs/mymailserver.cert
 +smtp_tls_key_file = /etc/ssl/private/mymailserve.key
 +smtp_tls_note_starttls_offer = yes
 +smtpd_tls_security_level = may
 +smtpd_tls_cert_file = /etc/ssl/certs/mymailserver.cert
 +smtpd_tls_key_file = /etc/ssl/private/mymailserver.key
 +
 +smtpd_sasl_auth_enable = yes
 +smtpd_sasl_type = cyrus
 +smtpd_sasl_path = smtpd
 +broken_sasl_auth_clients = yes
 +smtpd_sasl_security_options = noplaintext, noanonymous
 +smtpd_sasl_tls_security_options = noanonymous
 +smtpd_sender_login_maps = hash:/etc/postfix/controlled_envelope_senders
 +smtpd_relay_restrictions = permit_mynetworks,
 +                           reject_sender_login_mismatch, 
 +                           permit_sasl_authenticated, 
 +                           defer_unauth_destination
 +
 +</file>
 +
 +Если мы хотим проверять подлинность пользователей, указанных в базе данных ''/etc/sasldb2'', в файле ''/etc/postfix/sasl/smtpd.con'' указываем метод ''auxprop'' с плагином ''sasldb'':
 +
 +<file conf /etc/postfix/sasl/smtpd.conf> 
 +#pwcheck_method: saslauthd
 +#mech_list: PLAIN LOGIN
 +
 +pwcheck_method: auxprop
 +auxprop_plugin: sasldb
 +mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM
 +</file>
 +
 +Редактировать базу данных ''/etc/sasldb2'' можно при помощи команды ''saslpasswd2'':
 +
 +  sudo saslpasswd2 -c -u mydomain.com username
 +
 +Просмотреть список всех пользователей в базе можно командой:
 +  sudo sasldblistusers2
 +
 +Далее необходимо обеспечить доступ Postfix к этой базе для проверки. Для этого нужно сменить группу -владельца этого файла и добавим Postfix в эту группу:
 +  sudo chown :sasl /etc/sasldb2
 +  sudo usermod -a -G sasl postfix
 +
 +<note important>Важно заметить, что именем пользователя при такой проверке является полное выражение вида ''username@mydomain.com'', а не просто ''username''.</note>
 +  
 +Далее, мы, вероятно, хотим, чтобы Postfix не позволял пользователям (даже зарегистрированным) указывать посторонние адреса в поле ''From:'' отправляемых писем. Для этого мы ограничим возможности пользователя в указании своего адреса, и укажем, кто каким адресом имеет право пользоваться.
 +
 +В конфигурации Postfix этому соответствуют параметр ''reject_sender_login_mismatch'' и путь к файлу-таблице, содержащему соответствие пользователей и адресов ''smtpd_sender_login_maps''. В этот файл нужно внести в первую колонку - адрес пользователя, указанный им в письме, а во вторую колонку -- имя этого пользователя в базе SASL:
 +
 +<file conf /etc/postfix/controlled_envelope_senders>
 +# envelope sender           owners (SASL login names)
 +john@example.com            john@example.com
 +helpdesk@example.com        john@example.com, mary@example.com
 +postmaster                  admin@example.com
 +@example.net                barney, fred, john@example.com, mary@example.com
 +</file>
 +
 +Далее нужно преобразовать эту таблицу из простого текстового файла в базу данных:
 +
 +  cd /etc/postfix/
 +  sudo postmap controlled_envelope_senders
 +
 +И наконец, можно перезапустить Postfix с новыми настройками и посмотреть, что вышло:
 +
 +  sudo postfix reload
 +
 +Теперь можно проверить, принимает ли сервер подключения и предоставляет возможности SSL-аутентификации ((пример взят отсюда: http://www.postfix.org/SASL_README.html#server_test))
 +
 +  telnet  server.example.com 25
 +  ...
 +  220 server.example.com ESMTP Postfix
 +  EHLO client.example.com
 +  250-server.example.com
 +  250-PIPELINING
 +  250-SIZE 10240000
 +  250-ETRN
 +  250-AUTH DIGEST-MD5 PLAIN CRAM-MD5
 +  250 8BITMIME
 +  AUTH PLAIN AHRlc3QAdGVzdHBhc3M=
 +  235 Authentication successful
 +
 +Причём эти строки вводятся со стороны клиента:
 +  EHLO client.example.com
 +  AUTH PLAIN AHRlc3QAdGVzdHBhc3M=
 +
 +Если сервер отвечает на указанном порту и показывает доступные методы аутентификации, значит, всё настроено правильно.
  
  
Рядок 205: Рядок 325:
 "|/usr/bin/spamc|/usr/bin/maildrop -d ${USER}" "|/usr/bin/spamc|/usr/bin/maildrop -d ${USER}"
 </file> </file>
 +
 +
 +Если spamc будет выдавать в логи такую ошибку:
 +
 +  spamc[17863]: connect to spamd on ::1 failed, retrying (#1 of 3): Connection refused
 +
 +то устранить её можно, создав следующий файл((https://www.linuxquestions.org/questions/linux-server-73/spamassassin-trouble-4175503795/#post5163972)):
 +
 +<file conf /etc/mail/spamassassin/spamc.conf>
 +-d 127.0.0.1
 +</file>
 +
 +
 +====== Фильтр исходящей почты ======
 +
 +http://www.postfix.org/FILTER_README.html
  
  
mailserver.1479548912.txt.bz2 · Востаннє змінено: повз wombat