Sendmail 配置實例介紹
Sendmail 配置實例介紹如下:
sina.com 10.0.0.20 163.com 10.0.0.30
MX:dns.sina.com (hostname) MX:smtp.163.com(hostname)
郵件服務器A(MTA) 郵件服務器B(MTA)
DNS解析系統
郵件客戶端A(MUA) 郵件客戶端B(MUA)
目標:
1.兩臺郵件服務器分別屬于sina.com和163.com;各集成smtp和pop3服務功能。
2.其中sina的郵件服務器被同時配置為DNS服務器集成DNS功能并能夠解析兩個域的所有主機。
3.最終兩臺服務器實現兩個域的郵件轉發,經過OUTLOOK測試成功
4.其他附加功能在后。
步驟:
1.配置DNS服務。基本配置:hostname=dns.sina.com;ipaddr=10.0.0.20
DNS服務相關文件為:
#/etc/named.conf中添加正向、反向解析區域:
zone "sina.com" IN {
type master;
file "sina.com.zone";
allow-update { none; };
};
zone "163.com" IN {
type master;
file "163.com.zone";
allow-update { none; };
};
zone "0.0.10.in-addr.arpa" IN {
type master;
file "sina.com.local";
allow-update { none; };
};
之后區域文件sina.com.zone、163.com.zone和163.com.local內容如下:
$TTL 86400
$ORIGIN sina.com.
@ 1D IN SOA dns.sina.com. root.sina.com. (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
1D IN NS dns.sina.com.
1D IN MX 5 dns.sina.com.
dns 1D IN A 10.0.0.20
smtp 1D IN CNAME dns
pop3 1D IN CNAME dns
$TTL 86400
$ORIGIN 163.com.
@ 1D IN SOA dns.sina.com. root.sina.com. (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
1D IN NS dns.sina.com.
1D IN MX 5 smtp.163.com.
smtp 1D IN A 10.0.0.30
pop3 1D IN CNAME smtp
$TTL 86400
@ IN SOA dns.sina.com. root.sina.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS dns.sina.com.
20 IN PTR smtp.sina.com.
20 IN PTR pop3.sina.com.
30 IN PTR smtp.163.com.
30 IN PTR pop3.163.com.
#service sendmail restart
解析測試。
#p#
2.配置sina的郵件服務。
更改/etc/mail/sendmail.mc文件,修改下列地方:
DaemonPortsOptions=Port=smtp,Addr=127.0.0.1, Name=MTA 更改為:
DaemonPortsOptions=Port=smtp,Addr=yourip或者0.0.0.0, Name=MTA
然后m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
更改/etc/mail/accesss文件,增加:
10 RELAY 或者
sina.com RELAY
163.com RELAY
完成后makemap hash /etc/mail/access.db 進行數據庫更新
修改/etc/mail/local-hosts-name文件,增加本地域和主機的FQDN,記住只是本地主機的FQDN和域名FQDN,不要添加其他域的,否則向外域發送郵件的時候會出現user unknown的錯誤:
dns.sina.com
sina.com
***service sendmail restart 此時的hostname是FQDN格式的計算機名
3. 配置163的郵件服務。(方法同上)
4. 如果要通過在圖形界面中使用客戶端,則還需要修改/etc/xinetd.d/ipop3文件,修改為disable=no
重啟動超級進程/etc/rc.d/init.d/xinetd restart。
之后的配置包括:
a.修改/etc/access,分別使用OK、REJECT、DISCARD等字段檢查是否允許relay。
b.修改/etc/aliases文件實現郵件轉發和郵件列表:
轉發:a: b 或 a: b@sina.com 或 a:b@163.com (遠程)
列表:a: b,c,d
局部轉發:直接vi 用戶目錄下的.forward文件,啟動服務即可。(不需要修改aliases文件)
#newaliases
#service sendmail restart
c.修改/etc/mail/virtuserable文件:
轉發c@sina.com d 或 c@sina.com d@163.com 均可
與aliases文件的區別在于其中c并不存在,而d存在。
但配置時需注意,若虛擬用戶是存在于虛擬域中的,則針對虛擬域需要更改/named.conf文件,添加虛擬區域記錄,同時要vi虛擬區域文件。
并且需要修改local-host-names以及access文件。
另外要注意,虛擬用戶應采用user@FQDN格式添加進virtusertable文件,而不應該采用僅user的格式。
d.編輯/etc/mail/userdb文件實現出站別名。
出站別名:a:mailname b@sina.com a所發送的郵件以b@sina.com的身份出去;
可以a的用戶身份登錄,telnet郵件服務器的25端口,向root發送一封信,查看root的郵件列表時會發現郵件是從b用戶發出的。
入站別名:a:maildrop b@sina.com 發給a 的郵件被轉發給b。
上面對于userdb文件的更改,不能夠在冒號后面留有空格,切記!
完成之后,更新user數據庫:
#cd /etc/mail
#makemap btree userdb.db
#service sendmail restart
e.配置帶有SMTP認證的Sendmail:
RedHat默認安裝的Sendmail是不具備對使用者身份進行認證的功能。這種配置容易使郵件服務器成為垃圾郵件的中轉站。并且會造成管理人員對郵件進行跟蹤的困難。但如果完全拒絕為可信賴區域以外的用戶轉發郵件會對用戶造成使用上的不便。
因此解決這個問題的方法就是配置發信的認證功能。驗證模塊采用cyrus-sasl安全驗證庫,因此在操作之前應該先檢查是否安裝cyrus-sasl。rpm –qa | grep cyrus。
有關的軟件包在***和第二張光盤中。
認證的配置:修改/etc/mail/sendmail.mc中的字段,取消“TRUST_AUTH_MECH”一行和下一行“define”處的注釋。(于sendmail.mc文件的第43、44和92行)然后m4 /etc/ mail/sendmail.mc>/etc/mail/sendmail.cf。
完成后重啟服務,執行命令sendmail –d0.1 –bv root | grep SASL,查看是否帶有SASL字段。
執行telnet dns.sina.com 25,然后elho localhost,看是否有認證信息
“250-AUTH GSSAPI LOGIN PLAIN”出現。若出現則可以使用客戶端進行認證測試。
通常選擇“發送服務器要求驗證”即可。
通過上文的實例演示,想必大家都能看懂,真正的掌握Sendmail 配置,希望對大家有幫助!
【編輯推薦】
- Sendmail簡單介紹
- 圖文并茂 講解Sendmail工作環境
- 深入了解 Linux下安裝DNS+Sendmail服務
- 如何在Sendmail里設置虛擬域
- Sendmail 配置文件(一)
- Sendmail 配置文件(二)
- Sendmail的安全篇之未授權人非法濫用