在CentOS上安装Postfix后,启动前需要进行初始配置。
出版日期:2021年1月4日。
INFOMARTION > 在CentOS上安装Postfix后,启动前需要进行初始配置。
概述。
这是在CentOS上安装Postfix并启动它所需要的初始配置程序。 这些信息是基于使用CentOS7的假设。 我们希望在提交端口中设置这一点。
Postfix是用来发送邮件的,Dovecot是用来接收邮件的。 如果你需要处理发送电子邮件,请安装Postfix,如果你也想接收电子邮件,请安装Dovecot。
版本如下。
CentOS版本 | 7.6 (1810) |
---|---|
后缀版本 | 2.10.1 |
目录
1. 安装
本节介绍了Postfix从安装到启动的配置。
1-1. 安装Postfix
通过yum命令进行Postfix的安装。 以根用户身份开展工作。
[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
修改如下:
#
#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/
#
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'的部分应该被设置为服务器的域名。 https://example.com/"中的 "example.com "部分是域名。
电子邮件地址是username@example.com。
mynetworks "是一个与网络有关的设置。 这是一个可以连接到postfix的IP地址。 如果邮件服务器被链接到一个不同的服务器,请相应地修改这个值。
'home_mailbox'是电子邮件目录。 保存已发送的电子邮件。
2-2. OS用户,如果$alias_maps中没有定义,则拒绝。
配置以操作系统用户和$alias_maps中所列用户发送电子邮件的设置。 一个操作系统用户是一个用useradd添加的用户。
[root@hostname ~]# vi /etc/postfix/main.cf
修改如下:
#local_recipient_maps = unix:passwd.byname $alias_maps
#local_recipient_maps = proxy:unix:passwd.byname $alias_maps
#local_recipient_maps =
local_recipient_maps = unix:passwd.byname $alias_maps
#local_recipient_maps = proxy:unix:passwd.byname $alias_maps
#local_recipient_maps =
在main.cf的末尾添加以下内容。
### MAIL SIZE (20Mbytes。)
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设置。 请参考以下内容。
2-3. Postfix提交端口设置
配置使用提交端口发送电子邮件的设置。
[root@hostname ~]# vi /etc/postfix/master.cf
※注意,要编辑的文件是 "master.cf",而不是 "main.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
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
用yum安装SASL认证的必要库。
[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
修改如下:
#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@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
#一旦激活,将状态设为已激活。
Type=oneshot
RemainAfterExit=yes
#启动、停止和重新加载。
ExecStart=/usr/sbin/postfix start
ExecStop=/usr/sbin/postfix stop
ExecReload=/usr/sbin/postfix reload
[Install]
#运行级别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,请参考这个。
谢谢你一直看到最后。