1、簡介說明
在安裝Procmail及Sanitizer后,系統都只能處理寄進服務器內的信件,無法處理利用郵件服務器來寄出病毒信,因此在安裝Procmail-Gateway修改sendmail.cf后可以在服務器寄信前攔截掉病毒信,減輕網絡的負荷。
2、確定procmail已安裝
檢查sendmail.cf中有下面的語句:
Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
T=DNS/RFC822/X-Unix,
A=procmail -t -Y -a $h -d $u
3、確定毒藥文件路徑及檔案存在
/etc/procmail/poisoned-files
4、確定陷阱文件路徑及檔案存在
/etc/procmail/html-trap.procmail
5、編寫系統回信警告通知文件
vi /etc/procmail/policy.txt
內容范例:
這封信是系統自動發出的訊息。
您的信件可能中毒,系統已加以隔離處理,請盡速掃毒后再重新寄此封信。
vi /etc/procmail/quarantined.txt
有人寄病毒信給您,系統已加以攔截,信件相關訊息如下。
6、確定檔案權限
touch /var/log/procmail.log <--檔案不存在時才touch
chmod 644 /var/log/procmail.log
touch /var/spool/mail/quarantine <--檔案不存在時才touch
chmod 644 /var/spool/mail/quarantine
touch /var/log/scores <--檔案不存在時才touch
chmod 644 /var/log/scores
7、修改procmailrc
vi /etc/procmailrc
范例文件如下:
MAILDIR=/var/mail
VERBOSE=off
PATH="/usr/bin:$PATH:/usr/local/bin"
#Nimda Virus
:0 Bh
* ^Content-Type: audio/x-wav;
* name="readme.exe"
/dev/null
SHELL=/bin/sh
POISONED_EXECUTABLES=/etc/procmail/poisoned-files
#寄信通知系統管理者,若需更多人請在postmaster后加逗點再輸入email即可
SECURITY_NOTIFY="postmaster"
#系統通知訊息發布人
SECURITY_NOTIFY_VERBOSE="postmaster"
#寄信通知寄件人
SECURITY_NOTIFY_SENDER=YES
#寄信通知寄件人訊息內容
SECURITY_NOTIFY_SENDER="/etc/procmail/policy.txt"
#寄信通知給收件人的訊息內容
SECURITY_NOTIFY_RECIPIENT="/etc/procmail/quarantined.txt"
#可放20字長度以下字符隨機數值,增加安全性
SECRET="sfd9734965q34o2ldgbl"
#檢疫隔離信件文件位置
SECURITY_QUARANTINE=/var/spool/mail/quarantine
#宏病毒掃描積分門坎,一般而言,中毒信件得分通常都會超過100分
POISONED_SCORE=100
#宏病毒掃描日志文件位置
SCORE_HISTORY=/var/log/scores
LOGFILE=/var/log/procmail.log
INCLUDERC=/etc/procmail/html-trap.procmail
8、修改sendmail.cf
vi /etc/sendmail.cf
在檔案最后加上以下的內容:
注意:復制/貼上以下內容有時會因為html tag的問題造成sendmail服務無法重新啟動,此時可下載完整sendmail.cf范例文件 (右鍵/另存目標)至本機再復制/貼上至服務器或上傳至服務器。
#在M
##### @(#)procmail.m4 8.11 (Berkeley) 5/19/1998 #####
Mprocmail, P=/usr/bin/procmail, F=DFMSPhnu9, S=11/31, R=21/31, T=DNS/RFC822/X-Unix,
A=procmail -f- -Y -m $h $f $u
# (空此行一定要先空tab)
# 在my name for error messages設定的后面加上下面兩行
# Avoid host map lookups if address has this pseudo-domain on it CPprocmail
# 在Ruleset 98后面加上下面設定
# Filter all mail through procmail
#
# Strip the pseudo-domain and continue (already gone through the filter)
R$*<@$+.procmail>$* $@ $1<@$2.>$3
R$*<@$+.procmail.>$* $@ $1<@$2.>$3
#
# No pseudo-domain, send to filtering mailer
R$*<@$+.>$* $#procmail $@/etc/procmail/filter.rc $:$1<@$2.procmail>$3
R$*<@$+>$* $#procmail $@/etc/procmail/filter.rc $:$1<@$2.procmail>$3
9、建立過濾檔filter.rc
vi /etc/procmail/filter.rc
范例文件內容如下:
LOGFILE=/var/log/procmail.log
NL="
"
LOGABSTRACT=no
POISONED_EXECUTABLES=/etc/procmail/poisoned-files
INCLUDERC=/etc/procmail/html-trap.procmail
:0 # re-send the message
! -oi -f "$@"