Postfix null client — различия между версиями
Andy (обсуждение | вклад) (Новая страница: «== Конфигурирование Postfix как null client == ==== Предварительные требования ==== * Виртуальная маши…») |
Andy (обсуждение | вклад) |
||
| (не показано 8 промежуточных версий этого же участника) | |||
| Строка 7: | Строка 7: | ||
== Общая информация и терминология == | == Общая информация и терминология == | ||
| − | <code>null client</code> - это машина которая может только отправлять почту. Машина только пересылает всю почту на другой почтовый релей, | + | <code>null client</code> - это машина которая может только отправлять почту. Машина только пересылает всю почту на другой почтовый релей, который и занимается дальнейшей доставкой. Сама же машина не получает почту по сети и не занимается доставкой локальной почты. Обычно <code>null client</code> использует протоколы <code>POP</code> или <code>IMAP</code> для доступа к почтовым ящикам. |
| − | который и занимается дальнейшей доставкой. Сама же машина не получает почту по сети и не занимается | + | |
| − | <code>null client</code> использует протоколы <code>POP</code> или <code>IMAP</code> для доступа к почтовым ящикам. | + | {| class="wikitable" |
| + | |- | ||
| + | ! Параметр !! Значение | ||
| + | |- | ||
| + | | inet_interfaces || Параметр указывает на какой интерфейс почтовой системы будут приходить письма. По-умолчанию слушается только <code>localhost</code> | ||
| + | |- | ||
| + | | myorigin || Параметр указывает на домен из которого исходит почтовое сообщение. Часто используется для исключения конкретной машины, из адреса отправителя. | ||
| + | |- | ||
| + | | relayhost || Параметр указывает на сервер, на который пересылается исходящая почта. Если параметр указан в квадратных скобках <code>[]</code>, то поиск MX записи в DNS не производится | ||
| + | |- | ||
| + | | mydestination || Параметр указывает на список доменов, для которых данная машина является конечным адресатом. Письма адресованные данным доменам доставляются локально. Письма адресованные доменам не входящим в список - отвергаются | ||
| + | |- | ||
| + | | local_transport || Параметр указывает на то, как письма адресованные доменам из списка <code>$mydestination</code> должны доставляться. Для серверов которые не должны получать локальную почту вообще выставляется в значение "error: сообщение об ошибке". Рекомендуется выставлять в <code>error: local delivery disabled</code>. | ||
| + | |- | ||
| + | | mynetworks || Параметр указывает на список сетей, разделяемый пробелом и/или запятой которым разрешается отправлять почту без прохождения дальнейшей аутентикации. | ||
| + | |} | ||
| + | |||
| + | == Настройка почтового сервера Postfix == | ||
| + | Производится двумя путями - непосредственным редактированием конфигурационного файла <code>/etc/postfix/main.cf</code>, либо применением утилиты <code>postconf</code> c ключом <code>-e</code>, | ||
| + | которая позволяет вводить значения из командной строки. В литературе для подготовки к экзаменам почему-то рекомендуют второй метод, поэтому будем использовать утилиту: | ||
| + | * Указываем на какой интерфейс будут приходить письма | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | [root@vm-02 ~]# postconf -e 'inet_interfaces = loopback-only' | ||
| + | </syntaxhighlight> | ||
| + | * Указываем домен исходящих сообщений | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | [root@vm-02 ~]# postconf -e 'myorigin = vm-02.example.com' | ||
| + | </syntaxhighlight> | ||
| + | * Указываем сервер, на который будем пересылать почту | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | [root@vm-02 ~]# postconf -e 'relayhost = [vm-01.example.com]' | ||
| + | </syntaxhighlight> | ||
| + | * Указываем список доменов являющихся конечным адресатом | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | [root@vm-02 ~]# postconf -e 'mydestination = ' | ||
| + | </syntaxhighlight> | ||
| + | * Выставляем сообщение об ошибке | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | [root@vm-02 ~]# postconf -e 'local_transport = error: local delivery disabled' | ||
| + | </syntaxhighlight> | ||
| + | * Указываем список сетей, откуда можно отправлять почту | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | [root@vm-02 ~]# postconf -e 'mynetworks = 127.0.0.1 [::1]/128' | ||
| + | </syntaxhighlight> | ||
| + | При помощи команды <code>postconf -n</code> можно посмотреть директивы которые определены в конфигурационном файле <code>/etc/postfix/main.cf</code>: | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | [root@vm-02 ~]# postconf -n | ||
| + | alias_database = hash:/etc/aliases | ||
| + | alias_maps = hash:/etc/aliases | ||
| + | command_directory = /usr/sbin | ||
| + | config_directory = /etc/postfix | ||
| + | daemon_directory = /usr/libexec/postfix | ||
| + | data_directory = /var/lib/postfix | ||
| + | debug_peer_level = 2 | ||
| + | debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 | ||
| + | html_directory = no | ||
| + | inet_interfaces = loopback-only | ||
| + | inet_protocols = all | ||
| + | local_transport = error: local delivery disabled | ||
| + | mail_owner = postfix | ||
| + | mailq_path = /usr/bin/mailq.postfix | ||
| + | manpage_directory = /usr/share/man | ||
| + | mydestination = | ||
| + | mynetworks = 127.0.0.1 [::1]/128 | ||
| + | myorigin = vm-02.example.com | ||
| + | newaliases_path = /usr/bin/newaliases.postfix | ||
| + | queue_directory = /var/spool/postfix | ||
| + | readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES | ||
| + | relayhost = [vm-01.example.com] | ||
| + | sample_directory = /usr/share/doc/postfix-2.10.1/samples | ||
| + | sendmail_path = /usr/sbin/sendmail.postfix | ||
| + | setgid_group = postdrop | ||
| + | unknown_local_recipient_reject_code = 550 | ||
| + | [root@vm-02 ~]# | ||
| + | </syntaxhighlight> | ||
| + | Так же следует проверить разрешения на файлы и наличие нужных директорий для работы почтового сервиса, запустив утилиту <code>postfix</code>: | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | [root@vm-02 ~]# postfix check | ||
| + | [root@vm-02 ~]# | ||
| + | </syntaxhighlight> | ||
| + | После изменения конфигурационного файла, необходимо перезапустить сервис: | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | [root@vm-02 ~]# systemctl restart postfix | ||
| + | [root@vm-02 ~]# systemctl is-active postfix.service | ||
| + | active | ||
| + | [root@vm-02 ~]# | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | ==== Проверка ==== | ||
| + | С виртуальной машины <code>vm-02</code> напишем письмо: | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | [root@vm-02 ~]# printf 'This is a test email. You you are reading this, it means that mail has been recieved successfully!\n'> mail.txt | ||
| + | [root@vm-02 ~]# cat mail.txt | ||
| + | This is a test email. You you are reading this, it means that mail has been recieved successfully! | ||
| + | [root@vm-02 ~]# | ||
| + | </syntaxhighlight> | ||
| + | И отправим его: | ||
Текущая версия на 10:09, 2 февраля 2018
Содержание
Конфигурирование Postfix как null client
Предварительные требования
- Виртуальная машина с двумя сетевыми интерфейсами
- Установленные пакеты:
bash-completion,policycoreutils,policycoreutils-python,policycoreutils-devel,setroubleshoot-server,postfix,mailx,mutt
Общая информация и терминология
null client - это машина которая может только отправлять почту. Машина только пересылает всю почту на другой почтовый релей, который и занимается дальнейшей доставкой. Сама же машина не получает почту по сети и не занимается доставкой локальной почты. Обычно null client использует протоколы POP или IMAP для доступа к почтовым ящикам.
| Параметр | Значение |
|---|---|
| inet_interfaces | Параметр указывает на какой интерфейс почтовой системы будут приходить письма. По-умолчанию слушается только localhost
|
| myorigin | Параметр указывает на домен из которого исходит почтовое сообщение. Часто используется для исключения конкретной машины, из адреса отправителя. |
| relayhost | Параметр указывает на сервер, на который пересылается исходящая почта. Если параметр указан в квадратных скобках [], то поиск MX записи в DNS не производится
|
| mydestination | Параметр указывает на список доменов, для которых данная машина является конечным адресатом. Письма адресованные данным доменам доставляются локально. Письма адресованные доменам не входящим в список - отвергаются |
| local_transport | Параметр указывает на то, как письма адресованные доменам из списка $mydestination должны доставляться. Для серверов которые не должны получать локальную почту вообще выставляется в значение "error: сообщение об ошибке". Рекомендуется выставлять в error: local delivery disabled.
|
| mynetworks | Параметр указывает на список сетей, разделяемый пробелом и/или запятой которым разрешается отправлять почту без прохождения дальнейшей аутентикации. |
Настройка почтового сервера Postfix
Производится двумя путями - непосредственным редактированием конфигурационного файла /etc/postfix/main.cf, либо применением утилиты postconf c ключом -e,
которая позволяет вводить значения из командной строки. В литературе для подготовки к экзаменам почему-то рекомендуют второй метод, поэтому будем использовать утилиту:
- Указываем на какой интерфейс будут приходить письма
[root@vm-02 ~]# postconf -e 'inet_interfaces = loopback-only'- Указываем домен исходящих сообщений
[root@vm-02 ~]# postconf -e 'myorigin = vm-02.example.com'- Указываем сервер, на который будем пересылать почту
[root@vm-02 ~]# postconf -e 'relayhost = [vm-01.example.com]'- Указываем список доменов являющихся конечным адресатом
[root@vm-02 ~]# postconf -e 'mydestination = '- Выставляем сообщение об ошибке
[root@vm-02 ~]# postconf -e 'local_transport = error: local delivery disabled'- Указываем список сетей, откуда можно отправлять почту
[root@vm-02 ~]# postconf -e 'mynetworks = 127.0.0.1 [::1]/128'При помощи команды postconf -n можно посмотреть директивы которые определены в конфигурационном файле /etc/postfix/main.cf:
[root@vm-02 ~]# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
html_directory = no
inet_interfaces = loopback-only
inet_protocols = all
local_transport = error: local delivery disabled
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination =
mynetworks = 127.0.0.1 [::1]/128
myorigin = vm-02.example.com
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
relayhost = [vm-01.example.com]
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
unknown_local_recipient_reject_code = 550
[root@vm-02 ~]#Так же следует проверить разрешения на файлы и наличие нужных директорий для работы почтового сервиса, запустив утилиту postfix:
[root@vm-02 ~]# postfix check
[root@vm-02 ~]#После изменения конфигурационного файла, необходимо перезапустить сервис:
[root@vm-02 ~]# systemctl restart postfix
[root@vm-02 ~]# systemctl is-active postfix.service
active
[root@vm-02 ~]#Проверка
С виртуальной машины vm-02 напишем письмо:
[root@vm-02 ~]# printf 'This is a test email. You you are reading this, it means that mail has been recieved successfully!\n'> mail.txt
[root@vm-02 ~]# cat mail.txt
This is a test email. You you are reading this, it means that mail has been recieved successfully!
[root@vm-02 ~]#И отправим его: