Дек 04 2008

Настройка постфикс

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               │ │
├─└────────────────────────────────────────────────────────────────┘─┤
│                       [  OK  ]       Cancel                        │
└────────────────────────────────────────────────────────────────────┘

По окончании сборки, во время установки будет задано несколько вопросов.
Добавлять ли пользователя 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

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

Добавить в закладки:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru
  • By daggerok, 29.12.2009 @ 16:53

    >Настройка закончена. Конечно нашей системе не хватает антиспам и антивирусной системы

    для полноценности еще, пожалуй, imap/poop3 не хватает

Other Links to this Post


Украинская Баннерная Сеть