Начальная конфигурация, необходимая после установки Postfix на CentOS и перед запуском.


Дата публикации:4 января 2021 года.



INFOMARTION > Начальная конфигурация, необходимая после установки Postfix на CentOS и перед запуском.

Обзор.

Это процедура начальной настройки, необходимая для установки Postfix на CentOS и его запуска. Информация основана на предположении, что используется CentOS7. Мы хотели бы настроить это в порте отправки.

Если вы также установили Dovecot, см. также.

Postfix предназначен для отправки почты, а Dovecot - для получения почты. Если вам нужно обрабатывать отправку электронной почты, установите Postfix, а если вы также хотите получать электронную почту, установите Dovecot.

Версии следующие.

Версия CentOS7.6 (1810)
Версия Postfix2.10.1

Оглавление

  1. установить
  2. Детали настройки
  3. резюме

1. установить

В этом разделе описывается конфигурация Postfix от установки до запуска.

1-1. Установка Postfix

Выполните установку Postfix с помощью команды yum. Выполните работу от имени пользователя root.

[username@hostname ~]$ su -
[root@hostname ~]# yum -y install postfix

1-2. проверка бутстрапа

Чтобы убедиться в успешной установке, проверьте запуск.

[root@hostname ~]# /usr/sbin/postfix start
[root@hostname ~]# ps aux | grep postfix
root      1485  0.7  0.2  89744  2128 ?        Ss   16:02   0:00 /usr/libexec/postfix/master -w
postfix   1486  0.2  0.4  89848  4080 ?        S    16:02   0:00 pickup -l -t unix -u
postfix   1487  0.2  0.4  89916  4104 ?        S    16:02   0:00 qmgr -l -t unix -u
root      1489  0.0  0.1 112824   964 pts/0    S+   16:02   0:00 grep --color=auto postfix

Любой процесс, запущенный от имени пользователя postfix, как описано выше, работает нормально. Остановитесь.

[root@hostname ~]# /usr/sbin/postfix stop

2. Детали настройки

2-1. инициализация

Начальная конфигурация Postfix. В основном, конфигурация Postfix описана в файле "/etc/postfix/main.cf", поэтому мы изменим файл main.cf.

[root@hostname ~]# vi /etc/postfix/main.cf

Изменить следующим образом.

main.cf【До изменений】


#
#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
~сокращение~
#
#mydomain = domain.tld
~сокращение~
#myorigin = $myhostname
#myorigin = $mydomain
~сокращение~
#inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
inet_interfaces = localhost
~сокращение~
mydestination = $myhostname, localhost.$mydomain, localhost
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
#       mail.$mydomain, www.$mydomain, ftp.$mydomain
~сокращение~
#mynetworks = 168.100.189.0/24, 127.0.0.0/8
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
~сокращение~
#
#home_mailbox = Mailbox
#home_mailbox = Maildir/

main.cf【после изменения】


#
myhostname = example.com
#myhostname = virtual.domain.tld
~сокращение~
#
mydomain = example.com
~сокращение~
#myorigin = $myhostname
myorigin = $mydomain
~сокращение~
inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
~сокращение~
#mydestination = $myhostname, localhost.$mydomain, localhost
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
#       mail.$mydomain, www.$mydomain, ftp.$mydomain
~сокращение~
mynetworks = 127.0.0.0/8, 192.168.100.0/24
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
~сокращение~
#
#home_mailbox = Mailbox
home_mailbox = Maildir/

myhostname", "mydomain" и "myorigin" Это настройки, связанные с доменом. Часть, которая изменяется на 'example.com', должна быть установлена на доменное имя сервера. Часть "example.com" в "https://example.com/" является доменным именем.

Адрес электронной почты: username@example.com.

'mynetworks' - это параметр, связанный с сетью. Это IP-адрес, который может быть подключен к postfix. Если почтовый сервер связан с другим сервером, измените это значение соответствующим образом.

'home_mailbox' - это каталог электронной почты. Сохраните отправленное сообщение электронной почты.

2-2. Пользователь ОС или отказ, если не определен в $alias_maps

Настройте параметры для отправки электронной почты с пользователем ОС и пользователями, перечисленными в $alias_maps. Пользователь ОС - это пользователь, добавленный с помощью useradd.

[root@hostname ~]# vi /etc/postfix/main.cf

Изменить следующим образом.

main.cf【До изменений】


#local_recipient_maps = unix:passwd.byname $alias_maps
#local_recipient_maps = proxy:unix:passwd.byname $alias_maps
#local_recipient_maps =

main.cf【после изменения】


local_recipient_maps = unix:passwd.byname $alias_maps
#local_recipient_maps = proxy:unix:passwd.byname $alias_maps
#local_recipient_maps =

Добавьте следующее в конец файла main.cf.

main.cf


### MAIL SIZE (20 Мбайт.)
message_size_limit = 20971520
### TLS
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/localhost.crt
smtpd_tls_key_file = /etc/pki/tls/private/localhost.key

'smtpd_tls_cert_file' и 'smtpd_tls_key_file' должны быть установлены в соответствии с окружением. Задайте путь, где хранится сертификат сервера.

Настройки SSL требуются заранее, поэтому если вы еще не настроили параметры SSL, пожалуйста, сначала выполните настройки SSL. Пожалуйста, обратитесь к следующему.

Требуется начальная настройка от установки Apache на CentOS до запуска.

2-3. Настройки порта отправки Postfix

Настройте параметры для отправки электронной почты с использованием порта отправки.

[root@hostname ~]# vi /etc/postfix/master.cf

※Обратите внимание, что редактируемый файл - это 'master.cf', а не 'main.cf', поэтому имена файлов похожи.

Изменить следующим образом.

master.cf【До изменений】


#submission inet n - n - - smtpd
~сокращение~
#-o smtpd_sasl_auth_enable=yes
~сокращение~
#-o smtpd_client_restrictions=$mua_helo_restrictions
~сокращение~
#-o smtpd_sender_restrictions=$mua_sender_restrictions
~сокращение~
#-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject

master.cf【после изменения】


submission inet n - n - - smtpd
~сокращение~
-o smtpd_sasl_auth_enable=yes
~сокращение~
-o smtpd_client_restrictions=permit_sasl_authenticated
~сокращение~
-o smtpd_sender_restriction=permit_sasl_authenticated
~сокращение~
-o smtpd_recipient_restrictions=permit_sasl_authenticated


Установите необходимые библиотеки для аутентификации SASL с помощью yum.

[root@hostname ~]# yum -y install cyrus-sasl
[root@hostname ~]# yum -y install cyrus-sasl-plain
[root@hostname ~]# yum -y install cyrus-sasl-md5
[root@hostname ~]# yum -y install cyrus-sasl-devel

Отредактируйте saslauthd, чтобы использовать учетные записи UNIX для аутентификации.

[root@hostname ~]# vi /etc/sysconfig/saslauthd

Изменить следующим образом.

saslauthd


#MECH=pam
MECH=shadow

2-4. Включение SASL

Включить SASL.

[root@hostname ~]# systemctl enable saslauthd
[root@hostname ~]# systemctl is-enabled saslauthd
enabled
[root@hostname ~]# systemctl list-unit-files --type=service | grep saslauthd
saslauthd.service                                enabled
[root@hostname ~]# systemctl daemon-reload

2-5. проверка бутстрапа

Убедитесь, что Postfix запускается.

[root@hostname ~]# /usr/sbin/postfix start
[root@hostname ~]# ps aux | grep postfix
root      1838  0.0  0.1  89744  2080 ?        Ss   18:14   0:00 /usr/libexec/postfix/master -w
postfix   1839  0.0  0.3  89848  3988 ?        S    18:14   0:00 pickup -l -t unix -u
postfix   1840  0.0  0.3  89916  4008 ?        S    18:14   0:00 qmgr -l -t unix -u
root      1845  0.0  0.0 112824   968 pts/0    S+   18:15   0:00 grep --color=auto postfix

Если существует процесс, запущенный от имени пользователя postfix, как описано выше, конфигурация была завершена успешно, и он запущен. После подтверждения запуска пора остановиться.

[root@hostname ~]# /usr/sbin/postfix stop

2-6. Настройка автоматического запуска

Наконец, хотя это и не является обязательным, трудно запускать Postfix каждый раз при перезагрузке сервера, поэтому установите настройку, чтобы Postfix запускался автоматически при запуске сервера. Он также регистрируется командой systemctl. Обратите внимание, что эта процедура предназначена для CentOS7, поэтому если вы используете что-то другое, кроме CentOS7, вам нужно будет использовать команду Service для решения этой проблемы.

Проверьте, существует ли '/usr/lib/systemd/system/postfix.service'. Если его нет, создайте 'postfix.service' с помощью следующей процедуры. Запустите от имени пользователя root.

[root@hostname ~]# touch /etc/systemd/system/postfix.service
[root@hostname ~]# vi /etc/systemd/system/postfix.service

Предоставляется следующая информация.

[Unit]
#Описание.
Description=Postfix
#Контроль до и после исполнения.
#Before=xxx.service
After=syslog.target network.target

[Service]
#Назначение пользователей и групп
User=root
Group=root
#После активации установите статус Activated.
Type=oneshot
RemainAfterExit=yes
#Запуск, остановка и перезарядка.
ExecStart=/usr/sbin/postfix start
ExecStop=/usr/sbin/postfix stop
ExecReload=/usr/sbin/postfix reload

[Install]
#Эквивалентные настройки Runlevel 3.
WantedBy=multi-user.target

Затем зарегистрируйтесь с помощью команды systemctl.

[root@hostname ~]# systemctl enable postfix
[root@hostname ~]# systemctl is-enabled postfix
enabled
[root@hostname ~]# systemctl list-unit-files --type=service | grep postfix
postfix.service                                enabled
[root@hostname ~]# systemctl daemon-reload

3. резюме

Мы описали начальную конфигурацию, необходимую при установке Postfix.

Настроить его было довольно сложно, поэтому если вы собираете Postfix, пожалуйста, обратитесь к этой статье.

Спасибо, что досмотрели до конца.