Настройка почтового сервера Postfix
Я кратко расскажу как настроить почтовый сервер (Postfix) для небольшой локальной сети. Почтовый сервер будет работать по протоколу SMTP и будет принимать и отправлять почтовые сообщения, раскладывать принятые сообщения по ящикам юзеров который будет работать по протоколу POP3, для чего необходимо будет поставить сервер popd. Шифрования я юзать не буду.
Для того чтобы входить в сервис Postfix нужно авторизироваться, по этому поставим cyrus-sasl2, ставить буду из портов:
# cd /usr/ports/security/cyrus-sasl2 # make && make install # cd /usr/ports/security/cyrus-sasl2-saslauthd # make && make install
Посмотрим файлик smtpd.conf который лежит в /usr/local/lib/sasl2, он должен содержать:
pwcheck_method: auxprop mech_list: login plain
pwcheck_method: auxprop — показывает нам, что будет используется метод чтения паролей из БД виртуальных юзеров в /etc/sasldb2.
mech_list: login plain — в этой строке показывается что будет использоваться механизм авторизации пользователя для mail-клиента — login и plane: ‘это использует Outlook, Mozilla и The Bat.
Для того чтобы создать нового пользователя (аккаунты) которая будет авторизироваться по SMTP и который будет сохранять в БД можно сделать это следующим образом:
# saslpasswd2 -c -u domain.ru -a smtpauth user
Domain.ru — Доменное имя.
User — Вводите имя юзера.
Можно посмотреть всех sasl пользователей выполнив:
# sasldblistusers2
Удалить юзера можно командой:
# saslpasswd2 -d -u domin.ru captain
Установим сервер Postfix:
# cd /usr/ports/mail/postfix # make && make install
Выбираем:
[X] SASL2
[X] MYSQL
Настройка почтового сервера Postfix:
В файле main.cf который лежит /usr/local/etc/postfix/ поправим:
# ee /usr/local/etc/postfix/main.cf
myhostname = mail.domain.ru
mydestination = …, $config_directory/mydestination
mynetworks = $config_directory/mynetworks
(заместо mail.domain.ru пишем свой домен)
В /usr/local/etc/postfix/mydestination ставим ваши домены, если Вы используете несколько, то можно сделать следующее:
domain.ru
domain2.ru
domain3.ru
…
В /usr/local/etc/postfix/mynetworks Нужно прописать список сетей, из которых можно будет отправлять почту:
127.0.0.1/32
192.168.244.0/24
192.168.77.0/24
…
Можно в /usr/local/etc/postfix/aliases прописать alias (например captain: cap) и не забыть дать команду:
# postalias /usr/local/etc/postfix/aliases
Создадим скрипт для запуска постфикс /usr/local/etc/rc.d/postfix.sh:
#!/bin/sh [ -x /usr/local/sbin/postfix ] && /usr/local/sbin/postfix start && echo -n ' postfix'
Выставим права, чтобы никто др не смог ничего поменять:
# chmod 500 /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 строк( те что снизу) позволят уменьшить спам (используем черный списков).
Стартанем все это дело:
# /usr/local/etc/rc.d/saslauthd.sh start # /usr/local/etc/rc.d/postfix.sh start
Почта пользователей которая будет поступать по локалке будет сохранятся в их почтовых ящиках, которые в данном примере будут текстовыми файлами с именами пользователей в /usr/var/mail/. Клиент почты забирает почту по POP3, подключившись к серверу popd по 110-му порту. Поставим сервер popd:
# cd /usr/ports/mail/popd # make && make install
Запустить его можно демоном:
# popd &
А можно через сервер inetd (xinetd). Я юзаю xinetd. Настройка почтового сервера Postfix завершена!