Платформа - Fedora 11.
Обслуживаем вирт.домены, раздаём почту по POP3, IMAP, HTTP.
Сначала база:
1. Поставить Postfix, Сyrus-sasl, Сyrus-imapd
2. Подготовка:
Создать каталог для почты /var/mail/vhosts/домен
Создать пользователя и группу virtual, uid/gid 5000, сделать владельцем /var/mail/vhosts/
# 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/
3. Настроить виртуальный домен:
Прописать вирт.домен в /etc/postfix/main.cf:
#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
4. Настроить Cyrus-imapd:
добавить в /etc/imapd.conf
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
5. Настроить SASL:
В /usr/lib/sasl2/smtpd.conf вписать:
pwcheck_method: auxprop(этим мы сказали, что используем плагин, смотрящий в базу /etc/sasldb2)
auxprop_plugin: sasldb
mech_list: plain login cram-md5
Прописать настройки SASL в /etc/postfix/main.cf:
#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/vmailbox указать ящики в формате
юзер@домен домен/юзерв файле /etc/postfix/virtual указать алиасы в формате
юзер@домен адрес1 адрес2SASL пользователи и ящики Cyrus-imapd:
создать sasl пользователей
# saslpasswd2 -c -u домен юзер
отдельно создать админа
# saslpasswd2 -c -u cyrusadmin
сделать ящики:
# cyradm --user cyrusadmin localhost
Password:
localhost.localdomain> cm user.юзер@домен
localhost.localdomain> sam user.юзер@домен cyrusadmin c
Таким образом создаётся ящик и даются права на него админу.
7. Создание сертификатов и ключей.
Создание сертификата центра сертификации:
cd /etc/pki/tls/
misc/CA -newca
Указываем неск. параметров, самый главный - Common name, там должно быть имя сервера.
Получим сертификат /etc/CA/cacert.pem
и закрытый ключ /etc/CA/private/cakey.pem
Создание закрытого ключа и сертификата для Postfix:
# 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
Закидываем CA сертификат в хранилище:
Настраиваем 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:
8. Теперь антивирус и спаморез.
Ставим Amavis, ClamAV и spamassassin.
В /etc/postfix/main.cf пишем:
# передача писем амавису на проверкуВ /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
Качаем eicar и проверяем всё эту красоту, отправив вирь простым sendmail'ом.
Смотрим логи - там должно быть сообщение о пойманном вире.
Для автообновления баз антивируса:
в /etc/freshclam.conf комментим строку
#Exampleв /etc/sysconfig/freshclam комментим:
#FRESHCLAM_DELAY=disabled-warn
Сам сервер готов. Остался веб интерфейс.
Комментариев нет:
Отправить комментарий