Конспект для себя. В итоге будет базовая настройка Postfix+Dovecot+Roundcube.
Система Debian 8. Есть домен ttt.pp.ua и доступ к днс записям, статический белый IP.
Имя машины mail.ttt.pp.ua. В hosts прописал <белый IP> mail.ttt.pp.ua.
/etc/mailname mail.ttt.pp.ua
Postfix
apt-get update
apt-get install postfix
Выбираю интернет сайт, mail.ttt.pp.ua.
Настройки:
myhostname = mail.ttt.pp.ua (этот хост прописан как MX в DNS записях)
mydomain = ttt.pp.ua (это купленный домен)
myorigin = $mydomain (это то что стоит после @ при отправке)
mydestination = ttt.pp.ua, mail.ttt.pp.ua, localhost.ttt.pp.ua, localhost
(это домены для которых принимает почту, т.е. если я с внешнего ящика шлю на user@ttt.pp.ua, то у меня должен быть прописан в mydestination домен ttt.pp.ua, иначе будет ошибка 454 4.7.1 Relay access denied)
По мануалу к текущей конфигурации добавляю
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
home_mailbox = Maildir/
mailbox_command =
Закомментировал #mailbox_command = procmail -a "$EXTENSION"
В mynetworks добавил сеть предприятия и убрал ipv6
Для тестирования почты поставил swaks. Можно отправить тестовое сообщение на gmail
# swaks --to blogvic123@gmail.com --from user@mail.ttt.pp.ua
=== Trying gmail-smtp-in.l.google.com:25...
=== Connected to gmail-smtp-in.l.google.com.
<- 220 mx.google.com ESMTP x18si827218ljx.91 - gsmtp
-> EHLO mail.ttt.pp.ua
<- 250-mx.google.com at your service, [111.111.111.111]
<- 250-SIZE 157286400
<- 250-8BITMIME
<- 250-STARTTLS
<- 250-ENHANCEDSTATUSCODES
<- 250-PIPELINING
<- 250-CHUNKING
<- 250 SMTPUTF8
-> MAIL FROM:<user@mail.ttt.pp.ua>
<- 250 2.1.0 OK x18si827218ljx.91 - gsmtp
-> RCPT TO:<blogvic123@gmail.com>
<- 250 2.1.5 OK x18si827218ljx.91 - gsmtp
-> DATA
<- 354 Go ahead x18si827218ljx.91 - gsmtp
-> Date: Wed, 31 Jan 2018 11:15:43 +0200
-> To: blogvic123@gmail.com
-> From: user@mail.ttt.pp.ua
-> Subject: test Wed, 31 Jan 2018 11:15:43 +0200
-> X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
->
-> This is a test mailing
->
-> .
<- 250 2.0.0 OK 1517390144 x18si827218ljx.91 - gsmtp
-> QUIT
<- 221 2.0.0 closing connection x18si827218ljx.91 - gsmtp
=== Connection closed with remote host.
Почта пришла, упала в спам
UPD 06.02.2018
В настройке по-умолчанию уже есть сертификат ключ
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
Можно еще добавить настройки для SSL
smtpd_use_tls = yes
smtp_tls_security_level = may
# You can ENFORCE the use of TLS, so that the Postfix SMTP server announces STARTTLS
# and accepts no mail without TLS encryption
smtpd_enforce_tls = yes
# 1 - Log TLS handshake and certificate information.
smtpd_tls_loglevel = 1
# To include information about the protocol and cipher used as well as the client and
# issuer CommonName into the "Received:" message header
smtpd_tls_received_header = yes
UPD 06.02.2018
В настройке по-умолчанию уже есть сертификат ключ
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls = yes
smtp_tls_security_level = may
smtpd_tls_security_level = may
# обязательно включить
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = noanonymous
# обязательно включить
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = noanonymous
# You can ENFORCE the use of TLS, so that the Postfix SMTP server announces STARTTLS
# and accepts no mail without TLS encryption
smtpd_enforce_tls = yes
# 1 - Log TLS handshake and certificate information.
smtpd_tls_loglevel = 1
# To include information about the protocol and cipher used as well as the client and
# issuer CommonName into the "Received:" message header
smtpd_tls_received_header = yes
Теперь лог более информативен
Feb 6 10:33:42 mail postfix/smtpd[29826]: connect from mail-it0-f67.google.com[209.85.214.67]
Feb 6 10:33:43 mail postfix/smtpd[29826]: Anonymous TLS connection established from mail-it0-f67.google.com[209.85.214.67]: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
Feb 6 10:33:44 mail postfix/smtpd[29826]: 9AE2D160CC5: client=mail-it0-f67.google.com[209.85.214.67]
Feb 6 10:33:44 mail postfix/cleanup[29832]: 9AE2D160CC5: message-id=<CADr6FcAKdeoAuWvi46iryL_wYOnDxcfW-W46=AhFCwHn4s132w@mail.gmail.com>
Feb 6 10:33:44 mail postfix/qmgr[29814]: 9AE2D160CC5: from=<blogvic123@gmail.com>, size=2399, nrcpt=1 (queue active)
Feb 6 10:33:45 mail postfix/local[29833]: 9AE2D160CC5: to=<user@ttt.pp.ua>, relay=local, delay=1.3, delays=1.2/0/0/0.03, dsn=2.0.0, status=sent (delivered to maildir)
Feb 6 10:33:45 mail postfix/qmgr[29814]: 9AE2D160CC5: removed
Feb 6 10:33:45 mail postfix/smtpd[29826]: disconnect from mail-it0-f67.google.com[209.85.214.67]
Dovecot
apt-get install dovecot-common dovecot-imapd
Текущую настройку по-умолчанию можно посмотреть
doveconf -n
# 2.2.13: /etc/dovecot/dovecot.conf
# OS: Linux 3.16.0-4-amd64 x86_64 Debian 8.3
mail_location = mbox:~/mail:INBOX=/var/mail/%u
namespace inbox {
inbox = yes
location =
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix =
}
passdb {
driver = pam
}
protocols = " imap pop3s"
ssl = no
userdb {
driver = passwd
}
doveconf: Error: protocols: Unknown protocol: pop3s
doveconf: Fatal: Error in configuration file /etc/dovecot/dovecot.conf: protocols: Unknown protocol: pop3s
Внесем изменения
Протокол pop3s уберем. В dovecot.conf есть запись
# Enable installed protocols
!include_try /usr/share/dovecot/protocols.d/*.protocol
Смотрим по этому пути. В каталоге лежит файл pop3sd.protocol с таким содержимым
protocols = $protocols pop3s
Его и удалим.
Для базовой настройке нам нужно добавить:
10-auth.conf
disable_plaintext_auth = yes
auth_mechanisms = plain login
auth_mechanisms = plain login
# для формата логина user@domain.com
auth_username_format = %n
10-master.conf
Раскомментируем порт для imap
service imap-login {
inet_listener imap {
port = 143
}
Для совместной работы с postfix раскомментировать
# Postfix smtp-auth
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
}
}
10-ssl.conf
Для работы с сертификатом, созданным по-умолчанию
ssl_cert = </etc/ssl/certs/ssl-cert-snakeoil.pem
ssl_key = </etc/ssl/private/ssl-cert-snakeoil.key
Запрет на использование слабых протоколов SSL
# SSL protocols to use
ssl_protocols = !SSLv2 !SSLv3
10-mail.conf
Изменить хранилище подобно postfix для хранения в личной папке пользователя
# LAYOUT=fs - иерархия как в файловой системе
Изменить хранилище подобно postfix для хранения в личной папке пользователя
# LAYOUT=fs - иерархия как в файловой системе
mail_location = maildir:~/Maildir:LAYOUT=fs
Чтобы удобно искать было, где вносить изменения, можно использовать команду:
grep -r "what_find" /etc/dovecot
service dovecot restart
Комментариев нет:
Отправить комментарий