FreeBSD - статьи

     квик дек 22 |   

Настройка POP3 сервера


роль POP3 сервера в нашей системе играет courier-imap. хоть он и называется -imap, но умеет работать на двух разных протоколах: IMAP и POP3. первый лично мне совсем-совсем не нужен, поэтому я использую только второй. вот его-то мы сейчас и настроим. для начала поставим этот самый courier-imap:

cd /usr/ports/mail/courier-imap make -DWITH_MYSQL install clean cd /usr/local/etc/courier-imap cp authdaemonrc.dist authdaemonrc cp authmysqlrc.dist authmysqlrc cp authdaemonrc.dist authdaemonrc cp authmysqlrc.dist authmysqlrc cp pop3d.dist pop3d cp pop3d-ssl.dist pop3d-ssl cp pop3d.cnf.dist pop3d.cnf cd /usr/local/etc/rc.d rm courier-imap-imapd.sh.sample rm courier-imap-pop3d.sh.sample ln -s /usr/local/libexec/courier-imap/pop3d.rc pop3d.sh ln -s /usr/local/libexec/courier-imap/pop3d-ssl.rc pop3d-ssl.sh

редактируем /usr/local/etc/courier-imap/authdaemonrc:

authmodulelistorig="authmysql" daemons=5 version="" authdaemonvar=/usr/local/var/authdaemon

редактируем /usr/local/etc/courier-imap/authmysqlrc:

MYSQL_SERVER localhost MYSQL_USERNAME mailer MYSQL_PASSWORD mailer_password MYSQL_SOCKET /var/tmp/mysql.sock MYSQL_PORT 3306 MYSQL_OPT 0 MYSQL_DATABASE mail MYSQL_USER_TABLE users MYSQL_CRYPT_PWFIELD password MYSQL_UID_FIELD 1009 MYSQL_GID_FIELD 6 MYSQL_LOGIN_FIELD login MYSQL_HOME_FIELD '/var/mail/virtual/' MYSQL_MAILDIR_FIELD maildir MYSQL_WHERE_CLAUSE expired = '0'

редактируем /usr/local/etc/courier-imap/pop3d:

prefix=/usr/local exec_prefix=/usr/local sbindir="/usr/local/sbin" PIDFILE=/var/run/pop3d.pid MAXDAEMONS=11 MAXPERIP=3 AUTHMODULES="authdaemon" AUTHMODULES_ORIG="authdaemon" POP3AUTH="LOGIN PLAIN" POP3AUTH_ORIG="LOGIN PLAIN" POP3AUTH_TLS="LOGIN PLAIN" POP3AUTH_TLS_ORIG="LOGIN PLAIN" PORT=110 ADDRESS=0 TCPDOPTS="-nodnslookup -noidentlookup" POP3DSTART=YES

редактируем /usr/local/etc/courier-imap/pop3d-ssl:

prefix=/usr/local exec_prefix=/usr/local SSLPORT=995 SSLADDRESS=0 SSLPIDFILE=/var/run/pop3d-ssl.pid POP3DSSLSTART=YES POP3DSTARTTLS=YES POP3_TLS_REQUIRED=0 COURIERTLS=/usr/local/bin/couriertls TLS_PROTOCOL=SSL3 TLS_STARTTLS_PROTOCOL=TLS1 TLS_CERTFILE=/usr/local/share/courier-imap/pop3d.pem TLS_VERIFYPEER=NONE


теперь сгенерируем сертификат для нашего почтового сервера. для этого сначала нужно отредактировать /usr/local/etc/courier-imap/pop3d.cnf:

RANDFILE = /usr/local/share/courier-imap/pop3d.rand

[ req ] default_bits = 4096 encrypt_key = yes distinguished_name = req_dn x509_extensions = cert_type prompt = no

[ req_dn ] C=ru ST=ch L=chicaginsk O=raVen's mail sterver OU=raVen's ssl key CN=mail.raven.elk.ru emailAddress=postmaster@raven.elk.ru

[ cert_type ] nsCertType = server

запустим генерилку сертификатов:

rm /usr/local/share/courier-imap/pop3d.pem /usr/local/share/courier-imap/mkpop3dcert

оно будет очень долго возиться с генерацией случайных значений, вы в это время можете поделать чего-нибудь своё, либо пойти попить кофе. после готовности сертификата можно запускать courier-imap:

/usr/local/etc/rc.d/pop3d.sh start /usr/local/etc/rc.d/pop3d-ssl.sh start

ну и как обычно, проверим его:

telnet localhost 110 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. +OK Hello there. user me@raven.elk.ru +OK Password required. pass password:) +OK logged in. list +OK POP3 clients that break here, they violate STD53. 1 623 . quit +OK Bye-bye. Connection closed by foreign host

так как наш сертификат готов теперь можно раскомментировать tls часть main.cf у postfix, и перезапустить его: 'postfix reload'. теперь на ehlo он кроме всего прочего будет предлагать ещё и опцию STARTTLS и доставлять письма на удалённые smtp тоже будет по TLS, если удалённый сервер на ehlo среди прочего отвечает STARTTLS.




  • Содержание раздела