星期五, 7月 01, 2005

研討會結束 對postfix 的初體驗

實驗平台 Fedora core 3
Package: postfix-2.1.5-5

檢查是否有安裝rpm
#rpm -qa grep postfix
備份設定檔
#cp /etc/postfix/main.cf /etc/postfix/main.cf.bak
修改postfix的設定檔
#vi /etc/postfix/main.cf
將原來只在localhost listen 標記起來並對所有界面服務
#inet_interfaces = localhost
inet_interfaces = all

設定信任的內網
mynetworks = 192.168.0.0/24, 127.0.0.0/8
#service postfix restart
#netstat -tupln grep :25
此時postfix就在 port 25 listen
可以使用下列指令觀看postfix設定
#postconf
以下指令為觀看預設值
#postconf -d

Client傳送信件給Server的程序為
HELO / EHLO 網域名稱
MAIL FROM: 寄件者e-mail
RCPT TO: 收件者e-mail
DATA 信件內容然後以 . 為結束
QUIT 寄信完離開

針對 Client進行設限.....
請注意參數的部分由於要接續前面設定
....故要用以空白為首來開始撰寫代表續接
#vi /etc/postfix/main.cf
#針對client的ip/domain設限
smtpd_client_restrictions =
#允許內網不必檢查
permit_mynetworks,
#反解失敗就拒絕
reject_unknown_client,
#根據access清單拒絕client
#請先建立/etc/postfix/access檔案
#內容為 dynamic.hinet.net REJECT
#拒絕動態ip的client
#使用 #postmap hash:/etc/postfix/access 來建立DB
check_client_access hash:/etc/postfix/access,
#使用正規表示式拒絕名稱中有dynamic的主機連線
# 請先建立 /etc/postfix/access_re
#內容為 /dynamic/ REJECT
check_client_access regexp:/etc/postfix/access_re
reject_rbl_client cbl.abuseat.org,
#使用DNS Block List 黑名單機制
#如果 #host 57.41.61.66.cbl.abuseat.org --> 會出現 127.0.0.2
#代表 66.61.41.57 (host的時候要倒過來寫)這個 ip是廣告信server黑名單中的ip
#如果是正常的ip那會出現not found
#故利用此機制block spam mail server
reject_rbl_client sbl.spamhaus.org,
reject_rbl_client relays.ordb.org,
reject_rbl_client list.dsbl.org,
permit
#要求寄信前要提出helo的要求-------預設為no
smtpd_helo_required = yes
smtpd_helo_restrictions =
permit_mynetworks,
#拒絕不正確/未知的helo domain
reject_invalid_hostname,
reject_non_fqdn_hostname,
reject_unknown_hostname,
#拒絕外界但是宣稱是自己domain的helo
#請先建立 /etc/postfix/fake_helo
#內容 example.com REJECT
#利用#postmap hash:/etc/postfix/fake_helo 建立DB
check_helo_access hash:/etc/postfix/fake_helo
permit
#馬上拒絕不delay
smtpd_delay_reject = no
#根據Mail from來限制
smtpd_sender_restrictions =
permit_mynetworks,
#拒收來自於外界卻宣稱發自內部的信件
#建立 /etc/postfix/fake_from
#內容 example.com REJECT --> example.com 為自己公司的domain
#使用 #postmap hash:/etc/postfix/fake_from
check_sender_access hash:/etc/postfix/fake_from,
#拒絕不正確和未知的domain
reject_non_fqdn_sender,
reject_unknown_sender_domain,
permit
#只允許內網Relay
smtpd_recipient_restrictions =
permit_mynetworks,
reject_unauth_destination

#service postfix reload

Enjoy it ^^

P.S: 在Redhat 9.0中的postfix為postfix-1.1.12-1 有些許功能不支援

1 則留言:

Max 提到...

有鑑於有些廣告信都是以
edm@xxx.com
故加入一段
#vi /etc/postfix/hc
/^From:.*edm@/ REJECT
#vi /etc/postfix/main.cf
加入
header_checks = regexp:/etc/postfix/hc
#service postfix reload