Ставим postfix и удаляем sendmail

yum install postfix

service sendmail stop

yum remove sendmail

Редактируем /etc/postfix/main.cf (минимальная настройка)

1
2
3
4
5
6
7
8
 myhostname = yourhostname.com #наше имя
 myorigin = $myhostname
 inet_interfaces = eth0 #интерфейс
 inet_protocols = ipv4
 mydestination = $myhostname, localhost.$mydomain, localhost
 mynetworks_style = host
 home_mailbox = $HOME/Maildir/ #храним почту в домашней директории пользователя
 mynetworks = 127.0.0.1 #кому можно отправлять почту без ограничений

Запускаем сервис

service postfix start

Отправляем сообщение себе и смотрим в логах что творится

1
 echo test mail | mail -s "test" root && sudo tail -f /var/log/maillog

Ставим SASL

sudo yum install cyrus-sasl-plain

Генерим сертификатики

1
2
3
4
5
6
7
 sudo yum install mod_ssl openssl
 openssl genrsa -out smtp.key 2048 
 openssl req -new -key smtp.key -out smtp.csr
 openssl x509 -req -days 365 -in smtp.csr -signkey smtp.key -out smtp.crt
 cp smtp.crt /etc/pki/tls/certs
 cp smtp.key /etc/pki/tls/private/smtp.key
 cp smtp.csr /etc/pki/tls/private/smtp.csr

Добавляем их в /etc/postfix/main.cf

1
2
3
4
5
6
7
 smtp_tls_security_level = may
 smtpd_tls_security_level = may
 smtp_tls_note_starttls_offer = yes
 smtpd_tls_key_file = /etc/pki/tls/private/smtp.key
 smtpd_tls_cert_file = /etc/pki/tls/certs
 smtp_tls_CAfile = /etc/ssl/certs/ca.crt
 smtp_tls_loglevel = 1

Заодно добавим аутентификацию для SMTP

1
2
3
4
5
6
7
8
9
10
 smtpd_sasl_auth_enable = yes
 smtpd_sasl_security_options = noanonymous
 smtpd_recipient_restrictions =
    permit_sasl_authenticated,
    permit_mynetworks,
    reject_unauth_destination,
    reject_rbl_client bl.spamcop.net,
    reject_unverified_sender,
    reject_unknown_sender_domain,
    reject_unknown_recipient_domain

Теперь проверим….

service postfix restart

echo test mail | mail -s “test” root && sudo tail -f /var/log/maillog