Postfix null client — различия между версиями
Andy (обсуждение | вклад) (→Общая информация и терминология) |
Andy (обсуждение | вклад) |
||
(не показано 5 промежуточных версий этого же участника) | |||
Строка 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" | {| class="wikitable" | ||
Строка 28: | Строка 26: | ||
|} | |} | ||
− | + | == Настройка почтового сервера Postfix == | |
Производится двумя путями - непосредственным редактированием конфигурационного файла <code>/etc/postfix/main.cf</code>, либо применением утилиты <code>postconf</code> c ключом <code>-e</code>, | Производится двумя путями - непосредственным редактированием конфигурационного файла <code>/etc/postfix/main.cf</code>, либо применением утилиты <code>postconf</code> c ключом <code>-e</code>, | ||
которая позволяет вводить значения из командной строки. В литературе для подготовки к экзаменам почему-то рекомендуют второй метод, поэтому будем использовать утилиту: | которая позволяет вводить значения из командной строки. В литературе для подготовки к экзаменам почему-то рекомендуют второй метод, поэтому будем использовать утилиту: | ||
Строка 55: | Строка 53: | ||
[root@vm-02 ~]# postconf -e 'mynetworks = 127.0.0.1 [::1]/128' | [root@vm-02 ~]# postconf -e 'mynetworks = 127.0.0.1 [::1]/128' | ||
</syntaxhighlight> | </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 ~]#
И отправим его: