Postfix: различия между версиями

Материал из support.qbpro.ru
imported>Vix
Нет описания правки
imported>Vix
Нет описания правки
Строка 195: Строка 195:
* [https://adminunix.ru/nastrojka-spf-i-dkim/ Настройка SPF и DKIM]
* [https://adminunix.ru/nastrojka-spf-i-dkim/ Настройка SPF и DKIM]
* [https://server-gu.ru/spf-record-for-mail-server/ SPF запись для почтового сервера]
* [https://server-gu.ru/spf-record-for-mail-server/ SPF запись для почтового сервера]
* [https://www.8host.com/blog/nastrojka-pochtovogo-servera-postfixdovecot/ НАСТРОЙКА ПОЧТОВОГО СЕРВЕРА POSTFIX+DOVECOT]
* [https://www.8host.com/blog/nastrojka-pochtovogo-servera-postfixdovecot/ НАСТРОЙКА ПОЧТОВОГО СЕРВЕРА POSTFIX+DOVECOT+POSTGRESQL]

Версия от 12:47, 29 августа 2022

Настройка почтового сервера 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) и не забыть дать команду:

  1. 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.

Копирование входящей почты с определенного ящика

В файл main.cf

recipient_bcc_maps = hash:/etc/postfix/recipient_bcc 

В файл recipient_bcc

*@nashdomen.ru moi_yaschik@mail.ru 


поcле чего

postmap /etc/postfix/recipient_bcc 
postfix reload

ИСТОЧНИКИ:



ПОЛЕЗНОЕ: