Postfix
Настройка почтового сервера Postfix
Автор: Дубровин Борис сб, 2007-08-04 20:53
Здесь коротко рассмотрим настройку почтового сервера (Postfix) для маленькой локальной сети.
Почтовый сервер по протоколу SMTP принимает и отправляет почтовые сообщения, раскладывает принятые сообщения по почтовым ящикам пользователей. Забирать же полученную почту из своих почтовых ящиков пользователи будут по протоколу POP3, для чего нам потребуется также установить сервер popd.
Основной сайт Postfix - www.postfix.org . Также через сайт www.opennet.ru можно найти информацию о настройке Postfix.
Но напомню, что мы рассматриваем пример простой офисной или домашней локальной сети.
Прежде всего остановимся на вопросах безопасности: кому разрешить передачу почту и каким образом. После установки Postfix по умолчанию передача почты от кого-бы то ни было запрещена, и это очень охорошо. Мы же разрешим передачу почты от компьютеров нашей локальной сети. Но этим не ограничимся и также разрешим передачу почты откуда бы то ни было, но с использованием авторизации. Шифрование использовать не будем.
1. Установка cyrus-sasl2.
Чтобы задействовать в Postfix авторизацию, надо установить пакет cyrus-sasl2 (на примере FreeBSD):
# cd /usr/ports/security/cyrus-sasl2 # make # make install # cd /usr/ports/security/cyrus-sasl2-saslauthd # make # make install
В файле /usr/local/lib/sasl2/smtpd.conf должно быть:
pwcheck_method: auxprop mech_list: login plain
Первая строка означает, что используется метод чтения паролей из базы данных виртуальных пользователей /etc/sasldb2, а во второй строке перечислены механизмы авторизации пользователя для мэйл-клиента - login и plane: первый используется Outlook, а второй - Mozilla и The Bat. Пользовательские аккаунты (для авторизации по SMTP) вводятся в эту базу данных следующей командой:
# saslpasswd2 -c -u mydomen.ru -a smtpauth boris
где boris - мое имя, а mydomen.ru - соответственно доменное имя; вы, конечно, должны подставить свои имена. Просмотреть всех sasl пользователей можно командой sasldblistusers2 :
# sasldblistusers2
boris@mydomen.ru: userPassword
Удалить пользователя (boris@mydomen.ru) можно командой:
# saslpasswd2 -d -u mydomen.ru boris
2. Установка Postfix
# cd /usr/ports/mail/postfix # make # make install
надо будет выбрать следующие опции:
[X] SASL2
3. Настройка Postfix
В /usr/local/etc/postfix/main.cf правим:
myhostname = myhostname.mydomain.ru mydestination = ..., $config_directory/mydestination mynetworks = $config_directory/mynetworks
(вместо myhostname.mydomain.ru подставляем свои имена - имя хоста и доменное имя, например mail.netstart.ru)
В /usr/local/etc/postfix/mydestination вставляем наши доменные имена, если их у нас несколько, например:
mydomen.ru mydomen2.ru mydomen3.ru ...
В /usr/local/etc/postfix/mynetworks прописываем список сетей, из которых разрешена отправка почты:
127.0.0.1/32 192.168.20.0/24 192.168.40.0/24 ...
В /usr/local/etc/postfix/aliases можно прописать нужные алиасы (например ivan: john) и не забыть дать команду:
- postalias /usr/local/etc/postfix/aliases
Создать скрипт /usr/local/etc/rc.d/postfix.sh
Для использования авторизации в файл /usr/local/etc/postfix/main.cf необходимо добавить строки:
smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = smtpd_sasl_local_domain = broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, reject_rbl_client list.dsbl.org, reject_rbl_client relays.ordb.org, reject_rbl_client dynablock.wirehub.net, reject_rbl_client blackholes.wirehub.net, reject_rbl_client dnsbl.njabl.org
Последние 5 строк позволяют несколько уменьшить спам (с помощью черных списков).
4. Теперь запускаем все это дело:
# /usr/local/etc/rc.d/saslauthd.sh start # /usr/local/etc/rc.d/postfix.sh start
Примечание: Если почта будет отправляться только из локальной сети и авторизация будет не нужна, то задача намного упрощается. Достаточно будет после установки Postfix прописать свои доменные имена и сети, с которых разрешена отправка почты, как было показано выше. Устанавливать cyrus-sasl2 тогда не нужно.
5. Установка сервера popd
Поступающая локальным пользователям почта будет складываться в их почтовые ящики, которые в нашем случае будут текстовыми файлами с именами пользователей в папке /usr/var/mail/. Почтовый клиент забирает почту по протоколу POP3, подключившись к серверу popd (на 110-й порт). Поэтому установим сервер popd:
# cd /usr/ports/mail/popd # make # make install
Запустить его можно или как даемон
# popd &
или через сервер inetd (xinetd). Я использую xinetd.
6. Настройка почтовых клиентов
В почтовых клиентах необходимо прописать в полях pop3 сервер и smtp сервер имя нашей машины с установленным Postfix (или ее IP адрес), разрешить авторизацию по smtp с соответствующими именем (в моем примере boris@mydomen.ru - вводить полностью, с доменным именем) и паролем. Обращаю внимание, что для отправки почты (по SMTP) используется аккаунт из базы данных sasldb2 (который создается командой saslpasswd2), а для получения почты из почтового ящика пользователя (по POP3) - системный аккаунт (который можно создать командой adduser).
Копирование исходящей почты с определенного ящика
Необходимо, чтоб почтовый сервер (Postfix v2) при отправке письма одним
пользователем (например, user@mydomain.ru), доставлял его почту как обычно, а также
складывал это письмо в определенный ящик (например, backup@mydomain.ru).
1. В master.cf добавить строку:
backup unix - n n - - pipe flags=R user=postfix argv=/etc/postfix/script ${sender} ${recipient}
2. В /etc/postfix/script должно быть:
#!/bin/bash /usr/sbin/sendmail -f $1 $2 backup@mydomain.ru
3.Добавить в main.cf:
smtpd_sender_restrictions = что там есть, hash:/etc/postfix/smtpd.sender
4. Создать файлик /etc/postfix/smtpd.sender такого вида:
user@mydomain.ru FILTER backup:
5. postmap smtpd.sender
6. postfix reload
Если нужно копировать письма нескольких пользователей, просто добавляем их в smtpd.sender и не забываем при этом делать postmap.
ИСТОЧНИКИ: