使用postfix與dovecot服務部署郵件系統

self_discipline9發表於2020-11-27

電子郵件系統

電子郵件系統基於郵件協議來完成電子郵件的傳輸;

常見郵件協議:

SMTP簡單郵件傳輸協議(Simple Mail Transfer Protocol:用於傳送和中轉發出的電子郵件,25/TCP埠(預設)。

pop3郵局協議版本(Post Office Protocol 3)用於將電子郵件儲存到本地主機,110/TCP埠(預設)。

IMAP訊息訪問協議版本4(Internet Message Access Protocol 4)用於在本地主機上訪問郵件,143/TCP(預設)。

在電子郵件系統中,為使用者收發郵件的伺服器名為郵件使用者代理(Mail User Agent,MUA)。另外,既然電子郵件系統能夠讓使用者在離線的情況下依然可以完成資料的接收,肯定得有一個用於儲存使用者郵件的“信箱”伺服器,這個伺服器的名字為郵件投遞代理(Mail Delivery Agent,MDA),其工作職責是把來自於郵件傳輸代理(Mail Transfer Agent,MTA)的郵件儲存到本地的收件箱中。其中,這個M他的工作職責是轉發處理不同電子郵件服務供應商之間的郵件,把來自於MUA的郵件轉發到合適的MTA伺服器。例如,我們從新浪信箱向谷歌信箱傳送一封電子郵件,這封電子郵件的傳輸過程如圖所示。
在這裡插入圖片描述

部署基礎的電子郵件系統

在配置電子郵件服務前

伺服器:

1.配置伺服器主機名稱,需要保證伺服器主機名稱與發信域名保持一致;
2.清空iptables防火牆預設策略,並儲存策略狀態,避免因防火牆中預設存在的策略阻止了客戶端DNS解析域名及收發郵件;
3.為電子郵件系統提供域名解析,配置好後重啟bind服務,更改網路卡DNS地址為伺服器本機,重啟網路卡服務。
(1)配置伺服器主機名稱
[root@lizhiqiang Desktop]# vim /etc/hostname 
檢視當前伺服器主機名稱,看是否修改成功
[root@lizhiqiang Desktop]# hostname
 mail.lizhiqiang.com
 清空iptables防火牆預設策略
[root@lizhiqiang Desktop]# iptables -F
儲存iptables防火牆當前策略狀態
[root@lizhiqiang Desktop]# service iptables save
安裝bind服務,配置DNS域名解析
[root@lizhiqiang Desktop]# yum install -y bind-chroot
編輯bind服務主配置檔案
[root@lizhiqiang Desktop]# vim /etc/named.conf 
...
options {
        listen-on port 53 { any; };
...
        allow-query     { any; };
...
編輯bind服務的區域配置檔案
[root@lizhiqiang Desktop]# vim /etc/named.rfc1912.zones 
zone "linux.com" IN {
        type master;
        file "linux.com.zone";
        allow-update { none; };
};
進入儲存資料配置檔案以及相關模板檔案的目錄
[root@lizhiqiang Desktop]# cd /var/named/
複製正向解析模板,複製檔案保留原有許可權屬性
[root@lizhiqiang named]# cp -a named.localhost linux.com.zone 
編輯資料配置檔案
[root@lizhiqiang named]# vim linux.com.zone 
$TTL 1D
@       IN SOA  linux.com. lizhiqiang.linux.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns.linux.com.
ns      IN A    192.168.14.30
@       IN MX 10        mail.linux.com.
mail    IN A    192.168.14.30
重啟服務並加入啟動項
[root@lizhiqiang named]# systemctl restart named
[root@lizhiqiang named]# systemctl enable named
修改網路卡引數DNS為伺服器ip192.168.14.30
[root@lizhiqiang named]# nmtui
重啟網路卡服務
[root@lizhiqiang named]# systemctl restart network

配置Postfix服務

Postfix是一款由IBM資助研發的免費開源電子郵件服務程式,能夠很好地相容Sendmail服務程式,可以方便Sendmail使用者遷移到Postfix服務上。Postfix服務程式的郵件收發能力強於Sendmail服務,而且能自動增加、減少程式的數量來保證電子郵件系統的高效能與穩定性。另外,Postfix服務程式由許多小模組組成,每個小模組都可以完成特定的功能,因此可在生產工作環境中根據需求靈活搭配它們。

Postfix服務程式主配置檔案中的重要引數

引數作用
myhostname郵局系統的主機名
mydomain郵局系統的域名
myorigin從本機發出郵件的域名名稱
inet_interfaces監聽的網路卡介面
mydestination可接收郵件的主機名或域名
mynetworks設定可轉發哪些主機的郵件
relay_domains設定可轉發哪些網域的郵件

在(1)的基礎上配置postfix服務

(RHEL7預設已經安裝)
[root@lizhiqiang named]# yum install -y postfix  
編輯Postfix服務的主配置檔案
[root@lizhiqiang named]# vim /etc/postfix/main.cf    
 75 myhostname = mail.linux.com		#定義一個名為myhostname的變數,用來儲存伺服器的主機名稱
 83 mydomain = linux.com		#定義一個名為mydomain的變數,用來儲存郵件域的名稱
 99 myorigin = $mydomain		#呼叫前面的mydomain變數,用來定義發出郵件的域(呼叫變數的好處是避免重複寫入資訊,以及便於日後統一修改)。
 116 inet_interfaces = all		#定義網路卡監聽地址。可以指定要使用伺服器的哪些IP地址對外提供電子郵件服務;也可以乾脆寫成all,代表所有IP地址都能提供電子郵件服務
 164 mydestination = $myhostname, $mydomain		#定義可接收郵件的主機名或域名列表
 新建使用者peter(做郵件收發測試用)
[root@lizhiqiang named]# useradd peter
設定peter使用者密碼
[root@lizhiqiang named]# echo "14725836" | passwd --stdin peter
重啟並加入啟動項
[root@lizhiqiang named]# systemctl restart postfix.service 
[root@lizhiqiang named]# systemctl enable postfix.service 

配置Dovecot服務程式

Dovecot是一款能夠為Linux系統提供IMAP和POP3電子郵件服務的開源服務程式,安全性極高,配置簡單,執行速度快,而且佔用的伺服器硬體資源也較少。
dovecot服務的主配置檔案:/etc/dovecot/dovecot.conf 。
dovecot服務的子配置檔案:/etc/dovecot/conf.d/10-mail.conf。
Dovecot服務程式為了保證電子郵件系統的安全而預設強制使用者使用加密方式進行登入。

在(2)的基礎上配置Dovercot服務程式

[root@mail Desktop]# yum install -y dovecot		#安裝服務
[root@mail Desktop]# vim /etc/dovecot/dovecot.conf 		#編輯主配置檔案
 24 protocols = imap pop3 lmtp		#使得Dovecot服務程式支援的電子郵件協議修改為imap、pop3和lmtp
 25 disable_plaintext_auth = no		#允許使用者使用明文進行密碼驗證
 48 login_trusted_networks = 192.168.14.0/24		#設定允許登入的網段地址
[root@mail Desktop]# vim /etc/dovecot/conf.d/10-mail.conf 		#編輯dovecot服務的子配置檔案
 25 mail_location = mbox:~/mail:INBOX=/var/mail/%u		#指定要將收到的郵件存放到伺服器本地的位置
[root@mail Desktop]# su - peter	
[peter@mail ~]$ mkdir -p mail/.imap/INBOX		#建立用於儲存郵件的目錄,~/mail:INBOX = home/liwh/mail/.imap/INBOX
[peter@mail ~]$ exit
logout
[root@mail Desktop]# systemctl restart dovecot		重啟並加入啟動項
[root@mail Desktop]# systemctl enable dovecot

客戶使用電子郵件系統

客戶端:設定為僅主機模式,防火牆關閉;
在這裡插入圖片描述

在這裡插入圖片描述
設定客戶端
在這裡插入圖片描述
並且使服務端與客戶端可以ping通

客戶端:在這裡插入圖片描述
服務端:
在這裡插入圖片描述
可以使用Windows作業系統中自帶的Outlook軟體來進行測試(也可以使用其他電子郵件客戶端來測試,比如Foxmail)電子郵件系統是否已經能夠正常收發郵件。
這裡使用的是Foxmail,手動設定建立賬號
在這裡插入圖片描述

在這裡插入圖片描述
客戶端傳送郵件
在這裡插入圖片描述
服務端接收
在這裡插入圖片描述
在這裡插入圖片描述
服務端傳送:
在這裡插入圖片描述
客戶端接收:
在這裡插入圖片描述
設定使用者別名郵箱

使用者別名功能是一項簡單實用的郵件賬戶偽裝技術,可以用來設定多個虛擬信箱的賬戶以接受傳送的郵件,從而保證自身的郵件地址不被洩露,還可以用來接收自己的多個信箱中的郵件。

編輯aliases郵件別名服務的配置檔案:/etc/aliases。裡面定義了大量的使用者別名,這些使用者別名大多數是Linux系統本地的系統賬戶,而在冒號(:)間隔符後面的root賬戶則是實際用來接收這些賬戶郵件的人。使用者別名可以是Linux系統內的本地使用者,也可以是完全虛構的使用者名稱字。

newaliases命令:讓使用者別名配置檔案的設定立即生效。、

給root設定tony別名
在這裡插入圖片描述
傳送給tony,root接收
在這裡插入圖片描述

在這裡插入圖片描述

相關文章