Postfix邮件服务器的搭建

一.邮件系统

1.邮件系统的组成

MUA:负责写信收信

MTA:负责信件寄送

MDA:投递者负责将信件放在指定的目的地

2.邮件系统的协议

POP3:邮局协议的第3个版本,端口号:110,用于接受邮件

IAMP:交互式邮件存取协议,端口号:143,用于接受邮件

SMTP:简单邮件传输协议,端口号:25,用于发送邮件

3.POP3 和IMAP 区别

(1)IMAP客户端上收取邮件后邮件依旧保留在服务器上,同时在客户端上的操作也会保留在服务器端,POP3不会

(2)IMAP更好的支持从多个设备中随时访问新邮件

(3)IMAP提供的摘要游览功能可以让你阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作初是否下载的决定。

(4)pop3需要下载所有的邮件,IMAP不能将所有的邮件下载,而是通过客户端直接对服务器上的邮件进行操控。所有的IMAP

可以对数据进行加密从而保证通信安全。

(5)IMAP整体上为用户带来了更为便捷和可靠的的体验  ----pop3 更容易丢失邮件或者多次重复下载相同的邮件

二、Postfix邮件服务的配置

1.软件安装

2.配置文件main.cf相关参数

queue_directory = /var/spool/postfix  #本地邮件队列路径。队列管理器总共设置了五个做不同用途的队列,包括:输入、活动、等待、故障、保留。每个队列在queue_directory

参数指定的路径下各有一个专属的子目录。默认的队列目录是/var/spool/postfix/。

command_directory = /usr/sbin

daemon_directory = /usr/libexec/postfix #所有在master.cf中用到的服务程序存放的路径

data_directory = /var/lib/postfix    #存放缓存。随机数等可写的书籍文件存放位置

mail_owner = postfix

default_privs=nobody #本地投递代理的运行身份即权限

myhostname=host.domain.tld  #设置邮件服务器的完全合格的域名

mydomain=domian.tld   #本地域名

myorigin=$mydomain #发送邮件时设置的发件人的域名

inet_interfaces = localhost  # 设置postfix从哪个接口接受邮件

inet_protocols = all

mydestination = $myhostname, localhost.$mydomain, localhost  #设置邮件可以发送到哪些域名

unknown_local_recipient_reject_code = 550  #拒绝邮件的错误代码550

mynetworks=168.100.189.0/28,127.0.0.0/8 #设置信任的邮件客户端地址

relay_domains=$mydestination  #设置邮件转发到哪去

alias_maps = hash:/etc/aliases   #设置别名数据库

alias_database = hash:/etc/aliases

Header_checks=regexp:/etc/postfix/header_checks  #检查邮件有的 设置

sendmail_path = /usr/sbin/sendmail.postfix    #postfix发送邮件的程序路径

newaliases_path = /usr/bin/newaliases.postfix      #postfix完整的别名程序路径

mailq_path = /usr/bin/mailq.postfix       #postfixmailq程序路径

setgid_group = postdrop    #设置邮件提交和队列管理的命令

html_directory = no   #本地没有安装postfixhtml文档

manpage_directory = /usr/share/man      #帮助手册的位置

sample_directory = /usr/share/doc/postfix-2.10.1/samples   #示例目录的位置

readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES #自述目录位置

3.mail命令的使用

mail程序是一个快速、简易的邮件客户端。许多人希望使用更强大的邮件工具,但是在使用命令行或脚本快速收发邮件时,mail相当方便

mailq命令可列出所有待发送邮件

快速发送邮件方法如下:

使用管道命令,一条命令就可以快速发送邮件

[root@CentOS ~]#echo "hi" | mail -s "hello" [email protected]

使用管道重定向,一条命令就可以发送包含文件的邮件

[root@CentOS ~]# cat hello | mail -s "hi" [email protected]    
或[root@CentOS ~]# mail -s "hi" [email protected] < hello

常用选项

选项

说明

-s subject

设置邮件的主题栏

-v

详细打印邮件发送过程中的交互信息

-c address

设定抄送名单,邮件地址间以逗号隔开

-d address

设定密件抄送名单,邮件地址间以逗号隔开

4.服务的启动和停止

[root@CentOS7 ~]# systemctl start postfix
[root@CentOS7 ~]# systemctl stop postfix
[root@CentOS7 ~]# systemctl start dovecot
[root@CentOS7 ~]# systemctl stop dovecot

三.配置案例

1.域内互访

(1)配置postifx服务

[root@CentOS7 ~]# vim /etc/postfix/main.cf 

76 myhostname = mail.qq.com #配置邮件服务器主机名

83 mydomain = qq.com #配置域名(这个邮件服务器管理的是哪个区域范围的邮件发送)

99 myorigin = $mydomain #指定邮件发送时的域名

113 inet_interfaces = all #指定网络接口(默认只监听本地,但是如果要与外界通信,那么就要监听所有地址)

164 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain #指定服务器的目标区域,设置邮件可以发送到哪些域名

264 mynetworks = 192.168.1.0/24, 127.0.0.0/8 #指定允许网络网段地址,设置信任的邮件客户端地址

296 relay_domains = $mydestination #转发域,设置邮件转发到哪去

(2)配置dovecot服务

配置dovecot主配置文件

[root@CentOS7 ~]# vim /etc/dovecot/dovecot.conf

24 protocols = imap pop3 lmtp

48 login_trusted_networks = 192.168.1.0/24

配置dovecot子配置文件

[root@CentOS7 ~]# vim /etc/dovecot/conf.d/10-mail.conf 

25    mail_location = mbox:~/mail:INBOX=/var/mail/%u

(3)添加用户并设置权限

[root@CentOS ~]# useradd dadou
[root@CentOS ~]# echo 123 | passwd --stdin dadou
[root@CentOS ~]# chmod 0600 /var/mail/*

(4)重启服务

[root@CentOS ~]# systemctl restart postfix

[root@CentOS ~]# systemctl restart dovecot

2.SASL认证

         SASL(Simple Authentication and Security Layer),是一种用来扩充C/S模式验证能力的机制。在Postfix可以利用SASL来判断用户是否有权使用转发服务,或是辨认谁在使用你的服务器

编辑main.cf配置文件,开启SASL认证

[root@CentOS ~]# vim /etc/postfix/main.cf

broken_sasl_auth_clients=yes #启用SASL对客户端进行认证

smtpd_sasl_auth_enable=yes #启用SASL认证

smtpd_sasl_security_options=noanonymous #禁用匿名用户

smtpd_recipient_restrictions=permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination #定义收件人限定,允许SAS接受限制认证,允许mynetworks,拒绝unnauth目的地址

3.域外互访

(1)配置postifx服务(另一台)

[root@CentOS ~]# vim /etc/postfix/main.cf 

76 myhostname = mail.qq.com

83 mydomain = qq.com

99 myorigin = $mydomain

113 inet_interfaces = all

164 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

264 mynetworks = 192.168.1.0/24, 127.0.0.0/8

296 relay_domains = $mydestination

(2)配置dovecot服务

配置dovecot主配置文件

[root@CentOS ~]# vim /etc/dovecot/dovecot.conf

24 protocols = imap pop3 lmtp

48 login_trusted_networks = 192.168.1.0/24

配置dovecot子配置文件

[root@CentOS~]# vim /etc/dovecot/conf.d/10-mail.conf

25    mail_location = mbox:~/mail:INBOX=/var/mail/%u

(3)重启邮件服务

[root@CentOS ~]# systemctl restart postfix
[root@CentOS ~]# systemctl restart dovecot

(4)配置DNS服务器

编辑主配置文件named.conf

[root@RHEL7 ~]# vim /etc/named.conf
options {
        listen-on port 53 { 192.168.1.151; };
        directory "/var/named";
};

zone "baidu.com" IN {
        type master;
        file "named.baidu.com";
};

zone "qq.com" IN {
        type master;
        file "named.qq.com";
};

区域文件的设定

named.baidu.com(正向)

[root@RHEL7 ~]# vim /var/named/named.baidu.com
$TTL    1D
@       IN      SOA     @       root.localhost.localdomain. (
                                                        0
                                                        1D
                                                        1H
                                                        3W
                                                        1H )
        IN      NS      ns.baidu.com.
        IN      MX      10 mail.baidu.com.
ns      IN      A       192.168.1.151
mail    IN      A       192.168.1.151

named.192.168.1(反向)

[root@RHEL7 ~]# vim /var/named/named.192.168.1
$TTL    1D
@       IN      SOA     @       root.localhost.localdomain. (
                                                        0
                                                        1D
                                                        1H
                                                        3W
                                                        1H )
        IN      NS      ns.baidu.com.
        IN      MX      10 mail.baidu.com.
151     IN      PTR     ns.baidu.com.
151     IN      PTR     mail.baidu.com.
151     IN      PTR     ns.qq.com.
151     IN      PTR     mail.qq.com.

named.qq.com(正向)

[root@RHEL7 ~]# vim /var/named/named.qq.com
$TTL    1D
@       IN      SOA     @       root.localhost.localdomain. (
                                                        0
                                                        1D
                                                        1H
                                                        3W
                                                        1H )
        IN      NS      ns.qq.com.
                                                        1D
                                                        1H
                                                        3W
                                                        1H )
        IN      NS      ns.qq.com.
        IN      MX      10 mail.qq.com.
ns      IN      A       192.168.1.151
mail    IN      A       192.168.1.151

重启named服务

[root@RHEL7 ~]# systemctl restart named

(5)将两台邮件服务器的DNS均设置为本机IP

[root@CentOS ~]# nmcli connection modify ens33 ipv4.dns 192.168.1.151
[root@CentOS7 ~]# nmcli connection modify ens33 ipv4.dns 192.168.1.151

 

 

 

 

猜你喜欢

转载自blog.csdn.net/weixin_43265596/article/details/86635110