一、築基期之郵件服務簡介
郵件服務通過以下幾個協議來實現
簡單郵件傳輸協議(SMTP),用來發送或中轉發出的電子郵件,佔用tcp 25端口。
郵局協議 第三版(POP3),用於把服務器上的郵件存儲到本地主機,佔用tcp 110端口。
互聯網信息訪問協議 第四版(IMAP4),用於在本地主機上訪問郵件,佔用tcp 143端口。
瞭解了三種協議,現在再來看看郵件服務的基本概念
郵件傳輸:MT 郵件傳輸代理:MTA
郵件投遞:MD 郵件投遞代理:MDA
郵件用戶:MU 郵件用戶代理:MUA
在一臺郵件服務器上,用戶要寫一封郵件,是通過MUA(郵件用戶代理)來寫郵件的;寫好郵件後將郵件提交本地SMTPD服務(MTA);SMTPD服務對郵件進行分類,本地的郵件直接通過lmtp(本地郵件傳輸協議)放在本地;需要遠程發送的郵件通過smtp客戶端發送遠程SMTP主機的服務端;遠程SMTPD將郵件通過MDA發送到本地郵局,接收方通過MUA將郵件接收到自己的家目錄
實現SMTP協議使用postfix,實現pop3和imap4協議使用dovecot,同時部署用於實現域名解析的bind服務器
二、開光期之部署named服務
2.1、環境準備
關閉防火牆
systemctl stop firewalld.service
2.2、配置bind服務以提供域名解析
模擬內網環境:使用系統光盤作yum源
2.2.1、掛載鏡像至/media目錄下
mkdir /media/cdrom
mount /dev/cdrom /media/cdrom
2.2.2、啓用c7-media源
yum-config-manager --enable c7-media
2.2.3、使用c7-media源安裝bind
yum -y install bind bind-libs bind-libs-lite bind-license bind-utils
2.2.4、配置bind
備份配置文件:cp /etc/named.conf{,.bak}
修改全局配置中的監聽地址,加上本機可與外網通信的地址
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
};
2.2.5、配置bind解析郵件服務
添加正反向區域(根據實際情況配置)
vim /etc/named.rfc1912.zones
zone "zhongdianjizhi.com" IN {
type master;
file "zhongdianjizhi.com.zone";
allow-update { none; };
};
zone "118.168.192.in-addr.arpa" {
type master;
file "zhongdianjizhi.com.local";
allow-update { none; };
};
定義區域解析庫文件(配置A記錄與MX記錄)
cd /var/named
cp -p named.localhost zhongdianjizhi.com.zone
cp -p named.localhost zhongdianjizhi.com.local
zhongdianjizhi.com.zone
$TTL 1D
@ IN SOA @ zhongdianjizhi.com. (
201901 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.118.150
MX 10 mail.zhongdianjizhi.com.
mail A 192.168.118.150
mail AAAA fe80::3f32:be25:88e8:79b1
zhongdianjizhi.com.local
$TTL 1D
@ IN SOA @ zhongdianjizhi.com. (
201901 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.118.150
MX 10 mail.zhongdianjizhi.com.
150 PTR mail.zhongdianjizhi.com.
AAAA fe80::3f32:be25:88e8:79b1
2.2.6、檢查配置文件是否有語法錯誤
named-checkzone "zhongdianjizhi.com.zone" /var/named/zhongdianjizhi.com.zone
named-checkzone "118.168.192.in-addr.arpa" /var/named/zhongdianjizhi.com.local
2.2.7、修改主機名,指定本機DNS
hostnamectl set-hostname mail.zhongdianjizhi.com
將本機dns解析指向本機dns服務器
vim /etc/resolv.conf
nameserver 192.168.118.150
2.2.8、啓動named服務(bind是包名,服務名爲named)
systemctl start named
systemctl enable named
2.2.9、測試解析
dig -t A mail.zhongdianjizhi.com @192.168.118.150
dig -x 192.168.143.130 @192.168.118.150
三、融合期之postfix部署
在centos7系統中postfix已經安裝,版本爲2.10.1
3.1、配置postfix
備份
cp /etc/postfix/main.cf{,.bak}
配置文件main.cf
#第76行 修改郵局主機名
myhostname = mail.zhongdianjizhi.com
#第83行 修改郵局域名
mydomain = zhongdianjizhi.com
#第99行 修改寄出郵件域名
myorigin = $mydomain
#第114行 修改監聽所有網卡
inet_interfaces = all
#第119行 開啓同時使用ipv4和ipv6協議
inet_protocols = all
#第164行 修改可接收郵件的主機名和域名
mydestination = $myhostname, $mydomain
mynetworks = 192.168.118.0/24, 127.0.0.0/8
home_mailbox = Maildir/
3.2、編輯/etc/hosts文件
vim /etc/hosts
192.168.118.150 [email protected]
3.3、啓動服務,並檢查MTA是否運行
systemctl start postfix
systemctl enable postfix
alternatives --display mta
3.4、創建虛擬用戶
useradd jym
echo '123456' |passwd --stdin jym
useradd boss
echo '123456' |passwd --stdin boss
3.5、測試postfix發郵件
[root@mail ~]# telnet mail.zhongdianjizhi.com 25
Trying 192.168.118.150...
Connected to mail.zhongdianjizhi.com.
Escape character is '^]'.
220 mail.zhongdianjizhi.com ESMTP Postfix
mail from:[email protected]
250 2.1.0 Ok
rcpt to:[email protected]
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
this is test mail.
.
250 2.0.0 Ok: queued as 43A6B2033E0D
quit
221 2.0.0 Bye
Connection closed by foreign host.
四、金丹期之dovecot部署
4.1、安裝
yum install dovecot
4.2、配置
備份
cp /etc/dovecot/dovecot.conf{,.bak}
配置dovecot.conf
sed -i '24s/^#//g' /etc/dovecot/dovecot.conf
sed -i '48s/#login_trusted_networks =/login_trusted_networks = 192.168.118.150\/24/g'
修改子配置文件10-mail.conf
sed -i '24s/^#//g' /etc/dovecot/conf.d/10-mail.conf
4.3、啓動
systemctl start dovecot
systemctl enable dovecot
4.4、測試dovecot收郵件
[root@mail named]# telnet mail.zhongdianjizhi.com 110
Trying 192.168.118.150...
Connected to mail.zhongdianjizhi.com.
Escape character is '^]'.
+OK [XCLIENT] Dovecot ready.
user jym
+OK
pass 123456
+OK Logged in.
list
+OK 6 messages:
1 559
2 559
3 559
4 2564
5 2564
6 469
.
retr 6
+OK 469 octets
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: from unknown (unknown [192.168.118.150])
by mail.zhongdianjizhi.com (Postfix) with SMTP id 86CAC2033DFF
for <[email protected]>; Sun, 30 Jun 2019 10:20:50 -0400 (EDT)
Message-Id: <[email protected]>
Date: Sun, 30 Jun 2019 10:20:50 -0400 (EDT)
From: [email protected]
this is test mail.
.
五、元嬰期之繼續修行
本次部署的郵件服務適用於內部網絡,郵件服務用於消息通知,發件與收件由腳本完成,用於連接互聯網的郵件服務建議配置webmail(Extmail與Extman)來收發件,win平臺使用LDAP來管理用戶認證,linux平臺使用Courier-authlib與MySQL來管理用戶認證,同時務必關閉開放式中繼。
參考文章:
https://blog.51cto.com/12227558/2074095
https://blog.51cto.com/13728740/2141927