postqueue -p | egrep '^[A-Z0-9]{12}' | wc -lМожет, потом найду что-нить более нативное.
А вот и нативное:
mailq-stat
postqueue -p | egrep '^[A-Z0-9]{12}' | wc -lМожет, потом найду что-нить более нативное.
mailq-stat
# mkdir /etc/mail/vhosts
# mkdir /etc/mail/vhosts/домен
# groupadd -r virtual -g 5000
# useradd -r -M virtual -u 5000 -g 5000
# chown -R virtual:virtual /var/mail/vhosts/
#Virtual domainВнимание! Виртуальный домен не может быть указан в mydestination!!!
virtual_mailbox_domains = домен
virtual_mailbox_base = /var/mail/vhosts
# файл с адресами
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_minimum_uid = 100
# пользователь virtual, от которого доставляется почта
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
# файл с алиасами
virtual_alias_maps = hash:/etc/postfix/virtual
allowplaintext: 1Прописать транспорт в /etc/postfix/main.cf:
# sasl пользователь-админ
admins: cyrusadmin
sasl_pwcheck_method: auxprop
sasl_auxprop_plugin: sasldb
sasl_sasldb_path: /etc/sasldb2
virtdomains: userid
# обслуживаемый виртуальный домен
loginrealms: домен
# передача писем сайрусу
virtual_transport = lmtp:unix:/var/lib/imap/socket/lmtp
pwcheck_method: auxprop(этим мы сказали, что используем плагин, смотрящий в базу /etc/sasldb2)
auxprop_plugin: sasldb
mech_list: plain login cram-md5
#SASL
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
#Restrictions6. Создать ящики и SASL пользователей вирт.домена:
# Это начальные разграничения, потом усилим
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
юзер@домен домен/юзерв файле /etc/postfix/virtual указать алиасы в формате
юзер@домен адрес1 адрес2SASL пользователи и ящики Cyrus-imapd:
# saslpasswd2 -c -u домен юзер
# saslpasswd2 -c -u cyrusadmin
# cyradm --user cyrusadmin localhost
Password:
localhost.localdomain> cm user.юзер@домен
localhost.localdomain> sam user.юзер@домен cyrusadmin c
cd /etc/pki/tls/
misc/CA -newca
# openssl req -new -nodes -keyout postfix_private_key.pem -out postfix_private_key.pem -days 730Теперь создаём каталог под ключи и кидаем туда ключи и права выставляем на закрытый ключ:
# openssl ca -policy policy_anything -out postfix_public_cert.pem -infiles postfix_private_key.pem
# mkdir /etc/postfix/certs
# mv postfix_private_key.pem /etc/postfix/certs/
# mv postfix_public_cert.pem /etc/postfix/certs/
# cp /etc/CA/cacert.pem /etc/postfix/certs
# chmod 600 /etc/postfix/certs/postfix_private_key.pem
Настраиваем Postfix - пишем в /etc/postfix/main.cf:
cat /etc/CA/cacert.pem >> /etc/pki/tls/certs/ca-bundle.crt
Обращаю внимание на "smtpd_tls_auth_only = yes" - её лучше включить.
# TLS
smtpd_use_tls = yes
smtpd_tls_key_file = /etc/postfix/certs/postfix_private_key.pem
smtpd_tls_cert_file = /etc/postfix/certs/postfix_public_cert.pem
smtpd_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt
tls_random_source = dev:/dev/urandom
smtpd_tls_loglevel = 2
smtpd_tls_received_header = yes
# разрешить auth plain только под TLS, при необходимости раскомментить:
#smtpd_tls_auth_only = yes
# для оптимизации TLS
smtpd_tls_session_cache_database = sdbm:/etc/postfix/smtpd_scache
smtpd_tls_session_cache_timeout = 3600s
# openssl s_client -starttls smtp -connect localhost:25
CONNECTED(00000005)То проверяем в первую очередь правильность имён и пути в main.cf!
5552:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:601:
# передача писем амавису на проверкуВ /etc/postfix/master.cf:
content_filter = amavisd-new:[127.0.0.1]:10024
# amavisd-new LMTP
amavisd-new unix - - n - 2 lmtp
-o lmtp_data_done_timeout=1200s
-o disable_dns_lookups=yes
# smtpd демон, принимающий проверенную почту
127.0.0.1:10025 inet n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc_envelopes=yes
#Exampleв /etc/sysconfig/freshclam комментим:
#FRESHCLAM_DELAY=disabled-warn
virtual_transport = lmtp:unix:/var/lib/imap/socket/lmtp
allowplaintext: 1
sasl_pwcheck_method: auxprop
sasl_auxprop_plugin: sasldb
sasl_sasldb_path: /etc/sasldb2
virtdomains: userid
loginrealms: домен
virtual_mailbox_domains = мой_домен
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_alias_maps = hash:/etc/postfix/virtual
#cd /usr/share/ssl/misc
#./CA.pl -newca
#openssl req -new -nodes -keyout postfix_private_key.pem -out postfix_private_key.pem -days 730если в процессе выполнения второй команды получаем ошибки открытия файлов - значит есть проблема с путями (т.к. путь к закрытому ключу сервера относительный, то имеет значение, откуда даётся команда).
#openssl ca -policy policy_anything -out postfix_public_cert.pem -infiles postfix_private_key.pem
smtpd_use_tls = yesТаким образом мы включили TLS, сказали, где генератор случайных чисел, сертификаты, а таже установили детальные логи для tls и добавление заголовков.
tls_random_source = dev:/dev/urandom
smtpd_tls_key_file = /etc/postfix/certs/postfix_private_key.pem
smtpd_tls_cert_file = /etc/postfix/certs/postfix_public_cert.pem
smtpd_tls_CAfile = /etc/postfix/certs/cacert.pem
smtpd_tls_loglevel = 2
smtpd_tlsreceived_header = yes
tlsmgr unix - - n 1000? 1 tlsmgrИначе получите ошибки, вроде:
Jul 15 15:26:19 deck postfix/smtpd[3098]: initializing the server-side TLS engineУбеждаемся, что всё работает:
Jul 15 15:26:19 deck postfix/smtpd[3098]: warning: connect to private/tlsmgr: Connection refused
Jul 15 15:26:19 deck postfix/smtpd[3098]: warning: problem talking to server private/tlsmgr: Connection refused
Jul 15 15:26:20 deck postfix/smtpd[3098]: warning: connect to private/tlsmgr: Connection refused
Jul 15 15:26:20 deck postfix/smtpd[3098]: warning: problem talking to server private/tlsmgr: Connection refused
Jul 15 15:26:20 deck postfix/smtpd[3098]: warning: no entropy for TLS key generation: disabling TLS support
Если мы видим данные о сертификате и ожидание дальнейшего ввода - значит всё правильно.
#openssl s_client -starttls smtp -connect localhost:25
smtpd_tls_auth_only = yesКоннектимся телнетом и убеждаемся, что нам не предлагают аутентификацию, а только STARTTLS, опять коннектимся, используя openssl, потом приветствуем сервер и убеждаемся, что теперь аутентификация возможна.
smtpd_tls_session_cache_database = sdbm:/etc/postfix/smtpd_scache
smtpd_tls_session_cache_timeout = 3600s
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: plain login
smtpd_sasl_auth_enable = yesэтим мы включаем аутентификацию.
smtpd_sasl_local_domain = $myhostname
#saslpasswd2 -c -u `postconf -h myhostname` yakrevedkoЕстественно, в качестве сасловской области можно прописать mydomain, тогда и юзеры должны быть соответствующие.
smtpd_recipient_restrictions = permit_mynetworks, permit_auth_destination,Возможность аутентификации для "ущербных" клиентов:
permit_sasl_authenticated,reject_unauth_destination
broken_sasl_auth_clients = yesПока вроде всё..
235 2.7.0 Authentication successful!!!
IMPORTANT: To get sasldb running, make sure that you set the SASL domain (realm) to a fully qualified domain name.Ладно, пора спать идти, завтра напишу краткий ман по прикручиванию сасла к постфиксу.