郵件服務經過如下幾個協議來實現
簡單郵件傳輸協議(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將郵件接收到本身的家目錄linux
實現SMTP協議使用postfix,實現pop3和imap4協議使用dovecot,同時部署用於實現域名解析的bind服務器web
關閉防火牆vim
systemctl stop firewalld.service
模擬內網環境:使用系統光盤做yum源centos
mkdir /media/cdrom mount /dev/cdrom /media/cdrom
yum-config-manager --enable c7-media
yum -y install bind bind-libs bind-libs-lite bind-license bind-utils
備份配置文件: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; };
添加正反向區域(根據實際狀況配置)
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/nameddom
cp -p named.localhost zhongdianjizhi.com.zone cp -p named.localhost zhongdianjizhi.com.local
zhongdianjizhi.com.zonetcp
$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 ide
$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
named-checkzone "zhongdianjizhi.com.zone" /var/named/zhongdianjizhi.com.zone named-checkzone "118.168.192.in-addr.arpa" /var/named/zhongdianjizhi.com.local
hostnamectl set-hostname mail.zhongdianjizhi.com
將本機dns解析指向本機dns服務器post
vim /etc/resolv.conf nameserver 192.168.118.150
systemctl start named systemctl enable named
dig -t A mail.zhongdianjizhi.com @192.168.118.150 dig -x 192.168.118.150 @192.168.118.150
在centos7系統中postfix已經安裝,版本爲2.10.1
備份
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/
vim /etc/hosts
192.168.118.150 mail@zhongdianjizhi.com
systemctl start postfix systemctl enable postfix alternatives --display mta
useradd jym echo '123456' |passwd --stdin jym useradd boss echo '123456' |passwd --stdin boss
[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:boss@zhongdianjizhi.com 250 2.1.0 Ok rcpt to:jym@zhongdianjizhi.com 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.
yum install dovecot
備份
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
systemctl start dovecot systemctl enable 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: <boss@zhongdianjizhi.com> X-Original-To: jym@zhongdianjizhi.com Delivered-To: jym@zhongdianjizhi.com Received: from unknown (unknown [192.168.118.150]) by mail.zhongdianjizhi.com (Postfix) with SMTP id 86CAC2033DFF for <jym@zhongdianjizhi.com>; Sun, 30 Jun 2019 10:20:50 -0400 (EDT) Message-Id: <20190630142105.86CAC2033DFF@mail.zhongdianjizhi.com> Date: Sun, 30 Jun 2019 10:20:50 -0400 (EDT) From: boss@zhongdianjizhi.com 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