Настройка Postfix на FreeBSD

Postfix популярный SMTP сервер, работает он на множестве операционных систем, по распространенности, он второй после sendmailа.

Есть он в портах FreeBSD в /usr/ports/mail/postfix/ Архитектура постфикс построена так, что бы максимально обеспечить безопасность системы, как я понимаю основной упор на безопасность в большинстве совеременных почтовых серверах делается, исключительно благодаря сомнительной репутации sendmail, так вот, архитектура postfix такова, что каждая задача выполняется отдельным демоном. Данная архитектура несколько затрудняет обработку всех факторов, которые можно было бы проанализировать для защиты от спама, но в целом сложностей не вызывает.

1. Установка

Как я уже упоминал, установка осуществляется из портов:

cd /usr/ports/mail/postfix

make install clean

Перед сборкой, вам предложат настроить опции сборки:

---------------------------------------------------------------------¬

¦ Options for postfix 2.5.5,1 ¦

¦ -----------------------------------------------------------------¬ ¦

¦ ¦[X] PCRE Perl Compatible Regular Expressions ¦ ¦

¦ ¦[ ] SASL2 Cyrus SASLv2 (Simple Auth. and Sec. Layer) ¦ ¦

¦ ¦[ ] DOVECOT Dovecot SASL authentication method ¦ ¦

¦ ¦[ ] SASLKRB If your SASL req. Kerberos select this option ¦ ¦

¦ ¦[ ] SASLKRB5 If your SASL req. Kerberos5 select this option ¦ ¦

¦ ¦[ ] SASLKMIT If your SASL req. MIT Kerberos5 select this option¦ ¦

¦ ¦[ ] TLS Enable SSL and TLS support ¦ ¦

¦ ¦[ ] BDB Berkeley DB (choose version with WITH_BDB_VER) ¦ ¦

¦ ¦[ ] MYSQL MySQL maps (choose version with WITH_MYSQL_VER) ¦ ¦

¦ ¦[ ] PGSQL PostgreSQL maps (choose with DEFAULT_PGSQL_VER) ¦ ¦

¦ ¦[ ] OPENLDAP OpenLDAP maps (choose ver. with WITH_OPENLDAP_VER)¦ ¦

¦ ¦[ ] CDB CDB maps lookups ¦ ¦

¦ ¦[ ] NIS NIS maps lookups ¦ ¦

¦ ¦[ ] VDA VDA (Virtual Delivery Agent) ¦ ¦

¦ ¦[ ] TEST SMTP/LMTP test server and generator ¦ ¦

+-L------------------------------------------------------------------+

¦ [ OK ] Cancel ¦

L---------------------------------------------------------------------

По окончании сборки, во время установки будет задано несколько вопросов.

Добавлять ли пользователя postfix к группе mail:

You need user "postfix" added to group "mail".

Would you like me to add it [y]?

Рекомендую согласиться.

И прописать в /etc/mail/mailer.conf замену sendmail на postfxi:

Would you like to activate Postfix in /etc/mail/mailer.conf [n]?

если вы планирует использовать только postfix, нужно соглашаться. Это приведет к тому что стандартные команды обслуживания почтовой системы(типа mailq, sendmail) будут обращаться к postfix.

Для того, что бы отключить sendmail, необходимо выполнить команду:

/etc/rc.d/sendmail stop

А для того, что бы он больше не запускался, добавить в /etc/rc.conf:

sendmail_enable="NONE"

sendmail_submit_enable="NO"

sendmail_outbound_enable="NO"

sendmail_msp_queue_enable="NO"

Следующие строки, необходимо внести в /etc/periodic.conf :

daily_clean_hoststat_enable="NO"

daily_status_mail_rejects_enable="NO"

daily_status_include_submit_mailq="NO"

daily_submit_queuerun="NO"

Это отключит запуск специфических для sendmail скриптов.

По окончании установки, перейдем к настройке.

2. Настройка postfix

Конфигурация постфикс состоит из двух основных файлов master.cf и main.cf.

master.cf отвечает за настройки главного процесса постфикс, который так и называется master. master отвечает за запуск всех остальных составляющих postfixа и параметры их запуска и в файле master.cf хранятся соответсвующие настройки запуска этих компонент.

Настраивать нам ничего в нем не надо.

А вот файл main.cf, тут развернутся можно по полной программе, в конечном итоге, у меня файл настроек пришел к такому виду:

queue_directory = /var/spool/postfix

command_directory = /usr/local/sbin

daemon_directory = /usr/local/libexec/postfix

mail_owner = postfix

myhostname = hilik.org.ua

myorigin = $myhostname

inet_interfaces = all

mydestination = $myhostname, localhost.$mydomain, localhost, hash:/usr/local/etc/postfi/local_domain

unknown_local_recipient_reject_code = 550

mynetworks_style = subnet

mynetworks = 127.0.0.0/8, 192.168.0.0/24

alias_maps = hash:/usr/local/etc/postfix/aliases

alias_database = hash:/usr/local/etc/postfix/aliases

debug_peer_level = 2

debugger_command =

PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin

xxgdb $daemon_directory/$process_name $process_id & sleep 5

sendmail_path = /usr/local/sbin/sendmail

newaliases_path = /usr/local/bin/newaliases

mailq_path = /usr/local/bin/mailq

setgid_group = maildrop

html_directory = no

manpage_directory = /usr/local/man

sample_directory = /usr/local/etc/postfix

readme_directory = no

smtpd_sender_restrictions =

permit_mynetworks

reject_unknown_sender_domain

warn_if_reject

reject_unverified_sender

Теперь объяснения того, что ж мы тут за настройки понаписывали:

1. myhostname – имя сервера, оно в нашей конфигурации используется как имя домена для которого принимается почта, и в ответе сервера при начале SMTP диалога.

2. myorigin – имя домена, используется для того что бы привести отправляемое письмо к стандартному виду.

3. inet_interfaces – отпределяет ip адреса на которых будет отвечать postfix, all обозначает что на всех.

4. mydestination – тут перечисленны имена доменов, для которых сервер будет принимать почту

5. unknown_local_recipient_reject_code – тут можно изменить код ответа, если почта направляется, к несуществующему на сервере абоненту. Коды 5ХХ – это безусловный отказ обслуживать, на удаленном сервере письмо будет удалено из спула, а отправитель получит сообщение о недоставке. 4ХХ коды – временный отказ, письмо останется в очереди сервера отправителя, через время определенное в настройках удаленного сервера, по стандарту не менее 30 минут, будет осуществленна повторная отправка.

6. mynetworks_style – описывает, как будет сервер относится к адресам, описанным в mynetworks. subnet – разрешит отправку почты через себя всем хостам входящим в описанную подсеть. class – всем хостам входящим в тот класс сети к которому принадлежит адрес, указанный нами. И host – только единственному хосту будет разрешено пересылать почту через наш сервер.

7. mynetworks – тут перечислены адреса, которым можно пересылать почту через сервер.

8. alias_maps и alias_database – указывают пути к базе aliasов. Без них постфикс работать не будет.

Все остальное, взято из настроек по умолчанию.

Для того, что бы настроить базу алиасов необходимо сделать:

cd /usr/local/etc/postfix

изменить запись в файле aliases :

root: you

на ваш емейл:

root: hilik@hilik.org.ua

и выполнить:

postalias aliases

Теперь можно приступать к запуску postfixа, для этого в /etc/rc.conf, пропишем:

postfix_enable="YES"

и затем

/usr/local/etc/rc.d/postfix start

Настройка закончена. Конечно нашей системе не хватает антиспам и антивирусной системы, на эту тему я напишу статью в ближайшее время.

http://www.hilik.org.ua/настройка-постфикс/

Обновлено: 12.03.2015