- 电子邮件系统E-Mail(Electronic Mail System)是一种通过电子通信手段进行信息交换的系统。
- 用户代理UA(User Agent)是电子邮件系统的客户端部分,为用户提供接口用于管理邮件。(如:Outlook、Foxmail、QQ邮箱)
- 邮件传输代理MTA(Mail Transfer Agent)主要负责邮件的传输工作,通过SMTP等传递邮件到对方邮箱的MTA。(如Postfix)
- 邮件投递代理MDA(Mail Delivery Agent)主要将接收到的邮件存储到用户的邮箱中。(如Dovecot)
- SMTP(Simple Mail Transfer Protocol)是发送邮件的核心协议,定义邮件传输的规则和流程,默认TCP25端口,ssl用465端口
- POP3(Post Office Protocol - Version 3)主要用于用户从邮件服务器上下载邮件到本地设备,默认TCP110端口,ssl用995端口
- IMAP(Internet Message Access Protocol)允许用户在邮件服务器对邮件进行管理操作,默认TCP143端口,ssl用993端口
优化系统和准备安装包
1.关闭防火墙和SELINUX
systemctl disable --now firewalld
sed -i.bak s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
2.调整内核参数
cat >> /etc/security/limits.conf << EOF
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nporc 65535
EOF
3.更改主机名
echo Mail > /etc/hostname
reboot
4.下载相关包
yum -y install postfix dovecot bind bind-utils bind-chroot
DNS服务搭建
1.备份相关配置文件
cp -p /etc/named.conf /etc/named.conf.bak
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak
2.修改主配置文件
sed -i 's/listen-on port 53 { 127.0.0.1; }/listen-on port 53 { any; }/g' /etc/named.conf
sed -i 's/allow-query { localhost; };/allow-query { any; };/g' /etc/named.conf
3.编辑区域配置文件
cat > /etc/named.rfc1912.zones << EOF
zone "testcloud.bg" IN {
type master;
file "testcloud.bg.zone";
};
zone "122.168.192.in-addr.arpa" {
type master;
file "122.168.192.zone";
};
EOF
4.编辑数据配置文件
cat > /var/named/122.168.192.zone << EOF
$TTL 3H
@ IN SOA testcloud.bg root.testcloud.bg (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.testcloud.bg.
NS mail.testcloud.bg.
MX 10 mail.testcloud.bg.
10 PTR mail.testcloud.bg.
210 PTR dns.testcloud.bg.
214 PTR js.testcloud.bg.
22 PTR zabbix.testcloud.bg.
78 PTR monitor.testcloud.bg.
220 PTR harbor.example.net.
EOF
cat > /var/named/testcloud.bg.zone << EOF
$TTL 3H
@ IN SOA testcloud.bg root.testcloud.bg (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.testcloud.bg.
NS mail.testcloud.bg.
MX 10 mail.testcloud.bg.
mail IN A 192.168.122.77
dns A 192.168.122.77
zabbix A 192.168.122.22
monitor A 192.168.122.78
js A 192.168.122.214
EOF
5.设置属组
chown named:named /etc/named*
chown -R named:named /var/named/
6.启动服务
systemctl enable --now named
7.验证服务
systemctl status named
cat > /etc/resolv.conf << EOF
search testcloud.bg
nameserver 192.168.122.77
nameserver 114.114.114.119
EOF
ping mail.testcloud.bg
Postfix模块
- smtpd 用于响应用户的请求
- cleanup 用于检测语法
- pickup 用于分检邮件
- smtp 类似于客户端,传输邮件
- qmgr 队列管理器用于不同邮件状态的管理
Postfix搭建
1..修改Postfix配置文件
cp -p /etc/postfix/main.cf /etc/postfix/main.cf.bak
vim /etc/postfix/main.cf
myhostname = Mail #邮件服务器主机名
mydomain = testcloud.bg #邮件域
myorigin = $mydomain #往外发送邮件的邮件域
inet_interfaces = all #监听的网络
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain #服务的对象
home_mailbox = Maildir/ #邮件存放的目录
mynetworks = 0.0.0.0/0, 127.0.0.0/8 #接收所有网段
2.语法检查
postfix check
#启动服务
systemctl enable --now postfix
systemctl status postfix
3.生成密钥和证书文件
openssl genrsa -out ca.key 2048 #生成密钥
openssl req -new -x509 -days 3650 -key ca.key -out ca.pem #生成证书
openssl genrsa -out mail.key 2048 #生成邮件密钥
openssl req -new -key mail.key -out mail.csr #生成邮件请求文件
openssl x509 -req -in mail.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out mail.pem -days 3650 #生成邮件证书
chmod 400 mail.pem mail.key
cp mail.pem /etc/pki/tls/certs/
cp mail key /etc/pki/tls/certs/
4.配置Postfix发件SSL
#修改配置文件
cp /etc/postfix/master.cf /etc/postfix/master.cf_ssl.bak
vim /etc/postfix/master.cf
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes
#修改配置文件
vim /etc/postfix/main.cf
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/mail.pem
smtpd_tls_key_file = /etc/pki/tls/certs/mail.key
#验证
postfix check
systemctl restart postfix
ss -lntp | grep 465
5.邮件测试
#创建测试用户
useradd -g mail -s /sbin/nologin user1
useradd -g mail -s /sbin/nologin user2
echo 'Abc123' | passwd --stdin user1
echo 'Abc123' | passwd --stdin user2
telnet mail.testcloud.bg 25
helo testclod.bg #声明主机
mail from:"test"<user1@testcloud.bg> #声明发件人地址
rcpt to:<user2@testcloud.bg> #声明收件人地址
data #撰写正文
are you receive mail?
. #正文结束标志
quit #退出
Dovecot搭建
1.修改Dovecot配置文件
#主配置文件
cp -p /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.bak
vim /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp
login_trusted_networks = 0.0.0.0/0
mail_location = maildir:~/Maildir
ssl = no
disable_plaintext_auth = no
listen = *, ::
vim /etc/dovecot/conf.d/10-auth.conf #允许明文验证
disable_plaintext_auth = no
auth_mechanisms = plain login
vim /etc/dovecot/conf.d/10-ssl.conf #关闭ssl验证
ssl = no
vim /etc/dovecot/conf.d/10-logging.conf #启动日志记录文件
info_log_path = /var/log/dovecot_info.log
debug_log_path = /var/log/dovecot_debug.log
systemctl enable --now dovecot #验证服务
systemctl status dovecot
2.配置Dovecot收件SSL
#修改配置文件
vim /etc/dovecot/dovecot.conf
ssl = yes
disable_plaintext_auth = yes
#修改配置文件
vim /etc/dovecot/conf.d/10-ssl.conf
ssl = yes
ssl_cert = /etc/pki/tls/certs/mail.pem
ssl_key = /etc/pki/tls/certs/mail.key
vim /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = yes
#验证
systemctl restart dovecot
ss -lntup | grep 995
3.测试接收邮件
telnet mail.testcloud.bg
user user1 #登录用户
pass Abc123 #登录密码
list #列出邮件列表
retr 1 #查看邮件编号为1的邮件
quit #退出
-
Window系统配置dns或者hosts文件
-
使用foxmail测试