Postfix 介紹
Postfix 是一套快速, 安全及容易管理的開源 Mail Transfer Agent (MTA),
也是 Sendmail 很好的替代品。
以下會介紹在 RHEL 及 CentOS 7 安裝 Postfix 及 Dovecot 作為 Email Server.
安裝
前置作業
在開始前, 如果系統內安裝了其他 MTA (例如 Sendmail 或 Exim), 那便需要將它們移除, 以下是移除 Sendmail 及 Exim 的方法:
查詢是否安裝過
rpm -qa | grep sendmail
rpm -qa | grep exim
移除
yum remove sendmail
yum remove exim
為了使安裝過程簡單一點, 關閉 SELinux, 開啟 /etc/sysconfig/selinux, 將:
SELINUX=enforcing
換成
SELINUX=disabled
重開機後生效
開始安裝 Postfix
yum install postfix
設定 Postfix
開啟 /etc/postfix/main.cf 修改以下設定:
# 系統的主機名稱
myhostname = smtp.3grass.me
# email伺服器的域名
mydomain = 3grass.me
# 指定本地發送郵件中來源和傳遞顯示的域名
myorigin = $mydomain
# 設置網路介面以便Postfix能接收到郵件
# 預設值是all,如果你的機器有多張網路卡,但又不想要全部都開放 relay,就可以指定只開放給某張網路卡
inet_interfaces = all
inet_protocols = all
# 指定哪些郵件地址允許在本地發送郵件
# 這是一組被信任的允許通過伺服器發送或傳遞郵件的IP地址。用戶試圖通過發送從此處未列出的IP地址的原始伺服器的郵件將被拒絕
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# 受信任SMTP的列表,具體的說,受信任的SMTP客戶端允許通過Postfix傳遞郵件
# 0.0.0.0 表示不限制
mynetworks = 0.0.0.0
# 設置郵箱路徑與用戶目錄有關,也可以指定要使用的郵箱風格
home_mailbox = Maildir/
mynetworks
這可以設定成檔案的方式或是直接以 IP/netmask 來做設定。例如:
mynetworks=192.168.1.0/24, 127.0.0.0/8
而如果要用檔案方式:
mynetworks = 127.0.0.0/8, hash:/etc/postfix/access
注意:
如果沒有設定 mynetworks 的話,記得把 mynetworks_style 改成host,
不然同一個子網域的 IP 都可以透過你的機器 relay 信件(當然如果所有子網域的使用者你都認識的話倒還ok)
如果有設定 mynetworks_style 以及 mynetwork 時,mynetworks 的設定會取代掉 mynetworks_style
測試發信
mail -s "title" ricky@mail.com <<< "bady"
SMTP防火牆設置
25 port全部開放
-A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
針對部分IP做開放
-A INPUT -p TCP -s 127.0.0.0/8 --dport 25 -j ACCEPT
-A INPUT -p TCP -s 210.71.253.255 --dport 25 -j ACCEPT