廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 8141 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
love104 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x4
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[Linux] 轉貼-posfix+擋廣告信+防毒,完整解決方案
Postfix+MailScanner+Sophos+Spamassassin+Procmail+MailScanner-MRTG+openwebmail+snmp RH90&RHEL30安裝筆

****************************************************
Postfix 使用
1.SASL smtp認證(提供user在家或出外的smtp認證服務)
2.Procmail信件過濾(基本過濾)
3.Spamassassin自我學習的垃圾信過濾
4.Mailscanner信件掃瞄閘道
5.Sophos歐洲最大的掃毒軟體
6.SNMP(MRTG需用到)
7.MailScanner-MRTG(用來監控郵件處理及系統流量)
8.Openwebmail

mail system for RedHat 9.0 &RHEL3.0 Total solution安裝筆記
--written by Dandy
*****************************************************

1.所有相關的套件--Postfix,Procmail,SASL,Spamassasin在Redhat 9.0都已內建,版本如下:
postfix-1.1.11-11
procmail-3.22-9
spamassassin-2.44-11.8.x
cyrus-sasl-2.1.10-4
剩下只有Mailscaner跟Sophos需download來安裝,請到以下download(今天是2004/09/27,版本可能會不同):

Sophos AntiVirus For Linux v3.86.0
http://downloads.sophos.com/dp/full/l....glibc.2.2.tar.Z
(p.s.:Sophos依glibc分成數個版本,像libc5使用libc5.tar.Z,redhat 7.0之前的glibc2.2之前使用標準的libc6.glibc.tar.Z,
Redhat9.0&RedHat Enterprise 3.0則使用libc6.glibc2.2.tar.Z)

Perl SAVI Module--是一個Sophos本身的perl模組
http://www.csupomona.edu/~henson/...AVI-Perl/dist/

Sophos ide update --自動更新病毒碼
http://www.ijs.si/software/sophos-ide-u...update_1.2.tar.gz

Sophie--一個使用 Sophos Anti Virus Library 的掃毒介面(非必要安裝)
http://www.vanja.com/tools/sop...04rc2.tar.gz

Mailscanner 4.33.3-1 for RedHat Linux (and other RPM-based Linux distributions)
http://freshmeat.net/redir/mailscanner/17417...-4.33.3-1.rpm.tar.gz

MailScanner MRTG--用來監控郵件處理流量
mailscanner-mrtg-0.09.03-1.noarch
ftp://fr2.rpmfind.net/linux/sourceforge/m/ma/mailsc...tg-0.09.03-1.noarch.rpm

Openwebmail 2.41.1
http://openwebmail.org/openwebmail/download/red...bmail-2.41-1.i386.rpm
http://openwebmail.org/openwebmail/download/redhat/rp...-Iconv-1.2-RH80.i386.rpm
http://openwebmail.org/openwebmail/download/redhat/rpm...ss-Zlib-1.21-RH9.i386.rpm
http://openwebmail.org/openwebmail/download/redhat/rpm/pack...SpeedyCGI-2.21-RH9.i386.rpm

---------------------------------------------------------------------------------------------------------------------------------------------
2.因postfix和sasl套件在redhat9.0中已全部都有安裝,
先停掉原先預設的sendmail
]#/etc/rc.d/init.d/sendmail stop

將postfix加入啟動的服務
]#chkconfig --add postfix

啟動ntsysv,將sendmail換成postfix,這樣重新開機時便會是postfix,而不會是sendmail
]#ntsysv

再來設定 Postfix,編輯 /etc/postfix 目錄下的 main.cf 此設定檔。
請先使用文字編輯器開啟 /etc/postfix/main.cf 設定檔,在檔尾的部份開始新增設定,將以下加入main.cf

#SMTP sasl Auth
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated permit_auth_destination permit_mynetworks,check_relay_domain reject
smtpd_client_restrictions = permit_sasl_authenticated,reject_rbl_client relay.ordb.org
smtpd_sasl_security_options = noanonymous


#Block
#smtpd_sender_restrictions = reject_unknown_sender_domain
#smtpd_client_restrictions = check_client_access regexp:/etc/postfix/access, reject_rbl_client relay.ordb.org

編輯/etc/postfix/access加入
/\.dynamic\..+\.tw/ REJECT We can't allow dynamic IP to relay!
-----------------------------------------------------------------------------------------------------------
<ps>
smtpd_sasl_auth_enable = yes //開啟 smtp 認證
broken_sasl_auth_clients = yes //保持client端的相容性,例如MSOE4
smtpd_recipient_restrictions = permit_sasl_authenticated permit_auth_destination rejec //表示允許 sasl 認證,允許認證目的主機,接收本postfix為最後一站的信件。
smtpd_client_restrictions = permit_sasl_authenticated //允許用戶端sasl認證
smtpd_sasl_security_options = noanonymous //允許任何非匿名的使用者
smtpd_sasl_local_domain = $myhostname //sasl的本地網域
smtpd_sender_restrictions = reject_unknown_sender_domain //阻擋網域名稱錯誤的主機
smtpd_client_restrictions = check_client_access regexp:/etc/postfix/access //阻擋動態IP的主機,在access裡設定
-----------------------------------------------------------------------------------------------------------
3.設定身份認證方式
SASL 所提供的密碼認證方式共分為四種:

* PAM :使用系統的 pam 模組做為認證,在Redhat上可使用此方式

* shadow :利用系統的 /etc/shadow 檔做為其身份認證的方式。但也因此則需要修改 /etc/shadow 檔的存取權限,需改為 644,安全性有較大問題 。

* pwcheck :方式同 shadow 認證,但不須修改 /etc/shadow 檔的存取權限,而須在每次開機時執行 pwcheck 。您也可在 /etc/rc.d/rc.local 檔中加入執行敘述,適用於FreeBSD。

* sasldb :SASL本身自帶的認證方法,是使用 sasl 資料庫來存放使用者的帳號與密碼,使用指令 saslpasswd 來新增或修改使用者帳號與密碼。
saslpasswd -c -u 11way.com dandy //新增sasl用戶
sasldblistusers //list sasl用戶

請修改/usr/lib/sasl/smtpd.conf,修改pwcheck_method: 為你要的方式,Redhat建議使用PAM,節省建sasl帳號時間.
pwcheck_method: PAM

<ps>若是RHEL 3.0,請將/usr/lib/sasl2/smtpd.conf copy到/usr/lib/sasl再做修改
---------------------------------------------------------------------------------------------------------------------------------------------
4.由於有chroot的問題,所以sasl認證會失敗,請修改 /etc/postfix/master.cf
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (50)
# ==========================================================================
smtp inet n - y - - smtpd
改成
smtp inet n n n - - smtpd

---------------------------------------------------------------------------------------------------------------------------------------------
5.postfix reload重新讀取postfix設定檔

. 測試 SASL
測試的方法同樣是使用 telnet ,利用 telnet 指令連到 Postfix 主機端上,請執行如下的指令:
# telnet sun.xx.com 25
接著請輸入下列指令:
EHLO master.planetnet.net
請注意 Postfix 所回應的訊息,如果您的設定均無誤,那麼應該會顯示出類似下列的訊息:
250-master.planetnet.net
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250-AUTH=LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250-XVERP
250 8BITMIME
最重要的兩行,在第六行與第七行,顯示目前 Postfix 系統所支援的認證協定。如果您執行的結果有出現這兩行即表示您的 Postfix 已可使用 SASL 認證。
---------------------------------------------------------------------------------------------------------------------------------------------
6.設定outlook或outlook express,設定smtp外寄郵件伺服器需要認證.
---------------------------------------------------------------------------------------------------------------------------------------------
7.基本的信件過濾:postfix+procmail+spamassassin(使用MailScanner啟動Spamassassin請跳過此項)
最簡單的方式就是在/etc/procmailrc加入
:0fw
| /usr/bin/spamassassin

或(大於2MB的信不檢查)
:0fw
* < 2000000
| /usr/bin/spamassassin

或使用獨立的常駐程式spamc(會有較高的效能)
:0fw
| /usr/bin/spamc -s 200000
---------------------------------------------------------------------------------------------------------------------------------------------
8.完整的信件過濾是由MailScanner代替postfix執行遞送程式,僅啟動MTA子程式,將所收到的郵件檔案先暫存在另外一個資料夾(mqueue.in或hold).
然後呼叫Spamassassin和Sophos來檢查垃圾信及病毒信後,MailScanner再進行後續處理(加上spam或virus或刪除等動作),然後再放回
/var/spool/mail原來的信件目錄.
---------------------------------------------------------------------------------------------------------------------------------------------
9.安裝Sophos AntiVirus For Linux ,Sophos提供的試用版並無使用限制,也可自動更新病毒碼,商業用途請購買使用授權,費用並不太高
下載後解開安裝:
]#tar zxvf llinux.intel.libc6.glibc.2.2.tar.Z
]#cd sav-install/
]#useradd sweep -g sweep
]# ./install.sh

安裝完的目錄如下:
執行檔- binaries in /usr/local/bin
掃毒引擎- the shared library in /usr/local/lib
病毒碼- the virus data in /usr/local/sav
說明文件- manual pages in /usr/local/man

<ps>如果在redhat 9.0下裝了llinux.intel.libc6.tar.Z的版本,後面要安裝的Sophie會產生找不到SAVIsweepFile in -lsavi的錯誤,當然其他的相關系統也就無法運作
---------------------------------------------------------------------------------------------------------------------------------------------
10.安裝Perl SAVI Module

]#tar zxvf SAVI-Perl-0.15.tar
]#cd SAVI-Perl-0.15

修改Makefile.PL如下:
'LIBS' => ['-L/usr/local/Sophos/lib -R/usr/local/Sophos/lib -lsavi'],

作一個link讓-lsavi能work:
]#cd /usr/local/lib
]#ln -s libsavi.so.3.2.07.071 libsavi.so (版本號可能會有少許差異)

安裝測試:
]#perl Makefile.PL
]#make
]#make test
]#make install

OK,現在說明一下MailScanner和Sophos的關係,Sophos本身掃毒程式除了病毒引擎ide之外,另外還有自己的mail gate界面和自己的掃毒程式sweep,
MailScanner支援Sophos的方式有以下兩種:
1.Virus Scanners = sophos --收信時呼叫sweep來掃瞄
2.Virus Scanners = sophossavi --直接呼叫SAVI透過sophos的lib來做掃瞄
可能是因為第二種方式比較快,所以MailScanner官方網站建議使用SAVI,若用第一種方式,需修改Incoming Queue Dir 和Qutgoing Queue Dir 的路徑

---------------------------------------------------------------------------------------------------------------------------------------------
11. 安裝 Sophos ide update 自動更新病毒碼:

解壓縮到/usr/local/bin
]#tar zxvf sophos-ide-update_1.2.tar.gz

將sophos-ide-update.pl複制到/usr/local/bin

一定要執行一次,要不然MailScanner啟動Sophos時會抓不到IDE病毒引擎.
<ps>由於是由MailScanner來啟動postfix/spamassassin/sophos,所以自動啟動的postfix跟spamd請停掉

---------------------------------------------------------------------------------------------------------------------------------------------
11-1. 安裝Sophie ,Sophie是一個使用 Sophos Anti Virus Library 的掃毒介面程式,若server未提供file server的服務,mail server是用不到的.

解壓縮到/usr/local/bin
]#tar zxvf sophie-3.04rc2.tar.gz

]#./configure --with-savilib=/usr/local/lib
]#make
]#mv sophie /usr/local/bin
會產生sophie 這個 binary file(可執行檔),將這個檔案搬到/usr/local/bin
將原目錄下的 etc/sophie.cfg 和sophie.savi 複製到 /etc 之下,
並且將 sophie.cfg內的maxproc 的參數調整為 0,
然後就可以執行 sophie -v 看有沒有抓到掃毒引擎和病毒碼了,

]#cd etc
]#mv sophie.cfg sophie.savi /etc
]#cd /etc
]#vi sophie.cfg
->maxprox 20改為0
]#/usr/local/bin/sophie -v

---------------------------------------------------------------------------------------------------------------------------------------------
12.安裝MailScanner

MailScanner支援Postfix的詳細說明:
http://www.sng.ecs.soton.ac.uk/mai...l/postfix.shtml
先別高興,這是支援Postfix 2.x版的安裝方式,由於Redhat 9預設的Postfix 1.x版並不支援header_checks map: HOLD的map方式,
所以以下會分成兩個版本來進行.

先解壓縮
]#tar zxvf MailScanner-4.33.3-1.rpm.tar.gz

安裝(在此再次強調,安裝linux時最好選擇Everything,將所有套件全部裝進去,以rh8.0/9.0來說,才不過佔了4-5G,比起後來缺東缺西的痛苦,會快樂得多)
]#./install.sh

<p.s.>會等待需多點時間,因為除了MailScanner外還會有其他必須要用到的套件,大部份是perl的套件
---------------------------------------------------------------------------------------------------------------------------------------------
13-1.MailScanner for Postfix 2.x的設定方式
安裝完成後,MailScanner會自動幫你啟動,但是因為預設啟動的是sendmail,不是postfix,所以這時並未啟動,先設定MailScanner.
vi /etc/postfix/main.cf
加入這行:
header_checks = regexp:/etc/postfix/header_checks

然後在/etc/postfix下增加一個header_checks檢查檔:
]#vi /etc/postfix/header_checks

加入這行:
/^Received:/ HOLD

編輯MailScanner的設定檔
]#vi /etc/MailScanner/MailScanner.conf

修改以下項目,請依自己需求修改:
-----------------------------------------------------------
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
Run As User = postfix
Run As Group = postfix
MTA = postfix
Expand TNEF = no (Sophos/McAfee設定為 "no",其它是"yes")
Use SpamAssassin = yes
SpamAssassin User State Dir =/var/spool/MailScanner/spamassassin
Virus Scanning = yes
Virus Scanners = sophossavi
Sophos IDE Dir = /usr/local/sav
Sophos Lib Dir = /usr/local/lib
Monitors For Sophos Updates = /usr/local/sav/*ides.zip
Deliver Unparsable TNEF = yes (使用outlook的user可能需要)
Allow IFrame Tags = yes (允許IFrame標籤的信件)
Allow Script Tags = yes (允許Script標籤的信件,一些像outlook內有信紙功能的郵件需插入Script Tags)
Allow Object Codebase Tags = yes (允許 HTML中的 <Object Codebase=...> 標籤包含在郵件中)
Attachment Encoding Charset = ISO-8859-1 (將感染通知訊息以附件寄送,並編碼為ISO-8859-1,若Warning Is Attachment = no,不以附件寄送,可能產生亂碼)
Still Deliver Silent Viruses = no (通知收信者有人寄送Silent Virus[偽造地址病毒]給你)
Quarantine Silent Viruses = no (不隔離Silent Virus,以免佔空間)
Mark Infected Messages = no (通知收信者去閱讀那些替代原本被感染的附件的感染報告檔案)
Mark Unscanned Messages = no (若檔案未經掃瞄,通知你的使用者不要去使用這個郵件。)
Rebuild Bayes Every = 3600
SpamAssassin Auto Whitelist = yes
-----------------------------------------------------------

增加目錄
]#mkdir /var/spool/postfix/hold --MailScanner 該掃描的郵件目錄
]#mkdir /var/spool/MailScanner/spamassassin
]#chown postfix.postfix /var/spool/postfix/hold

修改/var/spool/MailScanner裡目錄的屬性
]#chown postfix.postfix /var/spool/MailScanner/incoming
]#chown postfix.postfix /var/spool/MailScanner/quarantine
]#chown postfix.postfix /var/spool/MailScanner/spamassassin

關掉postfix,啟動MailScaner,
]#/etc/rc.d/init.d/postfix stop
]#/etc/rc.d/init.d/MailScanner start

工作原理如下:

SMTP 25--->MailScanner啟動Postfix MTA--->HOLD Queue(/var/spool/postfix/hold)
--->Spam & Virus Check--->MDA(Procmail)--->/var/spool/mail
|
|--->/var/spool/MailScanner/spamassin or quarantine & send notify

---------------------------------------------------------------------------------------------------------------------------------------------
13-2.MailScanner for Postfix 1.x的設定方式

Mailscanner在postfix 1.x跟2.x的工作原理稍有不同,由於Postfix 1.x不支援MailScanner啟動Postfix的Hold Queue動作,
因此要啟動兩個postfix,分別做為incoming跟delivery的動作,工作原理如下:

SMTP 25--->Postfix.in->Queue in /var/spool/postfix.in--->MailScanner啟動
--->Spam & Virus Check--->Postfix--->MDA(Procmail)--->/var/spool/mail
|
|--->/var/spool/MailScanner/spamassin or quarantine & send notify

所以會看到兩個postfix的master process,MailScanner for Postfix 2.x版只有一個.

9998 ? S 0:00 [master]
10001 ? S 0:00 \_ [pickup]
10003 ? S 0:01 \_ [nqmgr]
10065 ? S 0:00 [master]
10070 ? S 0:00 \_ [pickup]
10071 ? S 0:00 \_ [nqmgr]
10084 ? S 0:00 [MailScanner]
10085 ? S 2:46 \_ [MailScanner]
10089 ? S 3:05 \_ [MailScanner]

先copy一份postfix的設定檔
]#cp -rp /etc/postfix /etc/posfix.in

修改/etc/postfix.in/main.cf,加入此行,以確保incoming的postfix不拒收任何信,並將queue_directory由/var/spool/postfix改為postfix.in
defer_transports = smtp local virtual relay
queue_directory = /var/spool/postfix.in

將正常的Postfix的SMTP功能停掉,以確保所有的SMTP都是走incoming postfix進出的:
修改 /etc/postfix/master.cf,修改此行,前面加上"#":
#smtp inet n n n - - smtpd

接下來將 /var/spool/postfix, 複製一份postfix.in,作為incoming postfix的目錄
]#cp -rp /var/spool/postfix /var/spool/postfix.in

增加spamassassin的目錄
mkdir /var/spool/MailScanner/spamassassin

修改/var/spool/MailScanner裡目錄的屬性
]#chown postfix.postfix /var/spool/MailScanner/incoming
]#chown postfix.postfix /var/spool/MailScanner/quarantine
]#chown postfix.postfix /var/spool/MailScanner/spamassassin


編輯MailScanner的設定檔
]#vi /etc/MailScanner/MailScanner.conf

修改以下項目,請依自己需求修改:
-----------------------------------------------------------
Incoming Queue Dir = /var/spool/postfix.in/deferred
Outgoing Queue Dir = /var/spool/postfix/incoming
Run As User = postfix
Run As Group = postfix
MTA = postfix
Expand TNEF = no (Sophos/McAfee設定為 "no",其它是"yes")
Use SpamAssassin = yes
SpamAssassin User State Dir =/var/spool/MailScanner/spamassassin
Virus Scanning = yes
Virus Scanners = sophossavi
Sophos IDE Dir = /usr/local/sav
Sophos Lib Dir = /usr/local/lib
Monitors For Sophos Updates = /usr/local/sav/*ides.zip
Deliver Unparsable TNEF = yes (使用outlook的user可能需要)
Allow IFrame Tags = yes (允許IFrame標籤的信件)
Allow Script Tags = yes (允許Script標籤的信件,一些像outlook內有信紙功能的郵件需插入Script Tags)
Allow Object Codebase Tags = yes (允許 HTML中的 <Object Codebase=...> 標籤包含在郵件中)
Attachment Encoding Charset = ISO-8859-1 (將感染通知訊息以附件寄送,並編碼為ISO-8859-1,若Warning Is Attachment = no,不以附件寄送,可能產生亂碼)
Still Deliver Silent Viruses = no (通知收信者有人寄送Silent Virus[偽造地址病毒]給你)
Quarantine Silent Viruses = no (不隔離Silent Virus,以免佔空間)
Mark Infected Messages = no (通知收信者去閱讀那些替代原本被感染的附件的感染報告檔案)
Mark Unscanned Messages = no (若檔案未經掃瞄,通知你的使用者不要去使用這個郵件。)
Rebuild Bayes Every = 3600
SpamAssassin Auto Whitelist = yes
-----------------------------------------------------------

關掉postfix,啟動MailScaner,
]#/etc/rc.d/init.d/postfix stop
]#/etc/rc.d/init.d/MailScanner start

檢查MailScanner的啟動狀況
]#check_MailScanner
MailScanner running with pid 10084 10085 10089 10990
---------------------------------------------------------------------------------------------------------------------------------------
14-1.設定Spamassassin,在此又發生一個問題,RedHat 9.0所附的Spamassassin是
spamassassin-2.44-11.8.x,此版似乎不支援下列幾個參數,包含sa-learn跟bayes也無法使用:

#use_bayes 1
#bayes_path /var/spool/MailScanner/spamassassin
#auto_learn 1
#use_razor2 1
#use_dcc 1
#use_pyzor 1
#always_add_headers 0
#report_safe 0

所以呢,設定到此,再次分成兩部份來討論,如果是不想使用sa-learn自動學習和bayes貝氏過濾法的user,MailScanner還有Auto Whiltelist可以用,
加上一些手動的規則設定,應該也足以應付大部份的spam,如果想昇級,設定參數和方式會有所不同,以下分述:

(1)由於spamassassin是由MailScanner來控制啟動,所以設定檔local.cf現在改成MailScanner的設定檔spam.assassin.prefs.conf
下列參數可能會對我們的設定有幫助:
Spam Score Character = * (以s代替spamassassin的分數,老實說,個人覺得score比較好用,你也可以用*代替)
SpamScore Number Instead Of Stars = yes (用分數代替幾顆星,這是原本Spamassassin的方式)
Spam Checks = yes
Use SpamAssassin = yes
SpamAssassin Auto Whitelist = yes (自動加入Whitelist,就是非spam清單)
Required SpamAssassin Score = 6 (超過6分就動作)
High SpamAssassin Score = 10 (超過10就執行高度動作)

(2)spam.assassin.prefs.conf的設定
auto_whitelist_path /var/spool/MailScanner/spamassassin/auto-whitelist
auto_whitelist_file_mode 0600
#bayes_path /var/spool/MailScanner/spamassassin/bayes
#bayes_file_mode 0600
ok_locales zh en
ok_languages zh en
skip_rbl_checks 1 --如果不想使用RBL過濾規則的話,此項啟動,因RBL除真正是垃圾信外,還涉及一些被relay的轉信站,使用RBL可能會漏掉一些重要的信
#use_bayes 1 --使用Bayes

(3)filename.rules.conf的設定,請自行修改,我只修改接收.chm的附檔,因為公司會用到.
allow \.chm$

---------------------------------------------------------------------------------------------------------------------------------------
14-2.安裝新版的Spamassassin
下載新版的spamassassin-3.0.0-0_18 for RH9

ftp://ftp.pbone.net/mirror/atrpms.physik.fu-berlin.de/dist/...n-3.0.0-0_18.rh9.at.i386.rpm

]#rpm -Uvh spamassassin-3.0.0-0_18.rh9.at.i386.rpm

在設定Spamassassin之前,我們可能也要先安裝Spamassassin所支援的下列模組,
這些工具都是利用 cryptographic hash 或 checksum 和特徵比對的方式,作為判斷垃圾信件的依據.
-------------RPM package-----------------------
DCC(Distributed Checksum Clearinghouse)
ftp://ftp.pbone.net/mirror/atrpms.physik.fu-berli....2.53-6.rh9.at.i386.rpm

Pyzor
ftp://ftp.pbone.net/mirror/atrpms.physik.fu-berlin.d....4.0-2.rh9.at.noarch.rpm
http://download.atrpms.net/production/package...s-59-1.at.noarch.rpm
-------------RPM package-----------------------
Razor
ftp://ftp.pbone.net/mirror/atrpms.physik.fu-berlin.de/dis...ents-2.61-7.rh9.at.i386.rpm

另外再加這幾個rpm,Spamassassin才裝得上
ftp://ftp.pbone.net/mirror/www.spenneberg.org/Firewall/Am...-SSLeay-1.25-rh9_1.i386.rpm
http://crash.fce.vutbr.cz/crash-hat/1/perl-Net...ay-1.25-1.noarch.rpm
ftp://ftp.pbone.net/mirror/atrpms.physik.fu-berlin.de/dist/rh9/p...t-SSL-0.95-1.rh9.at.noarch.rpm
ftp://ftp.pbone.net/mirror/atrpms.physik.fu-berlin.de/dis...-DNS-0.46-2.rh9.at.i386.rpm

開始設定:

(1)先設定/etc/mail/spamassassin/local.cf
-----------------------------------------------------------------------------
use_bayes 1
bayes_path /var/spool/MailScanner/spamassassin/bayes
auto_learn 1
skip_rbl_checks 0
use_razor2 1
use_dcc 1
use_pyzor 1
always_add_headers 0
dcc_add_header 0
report_safe 0
use_terse_report 0
spam_level_stars 1
dns_available yes

ok_languages zh en
ok_locales zh en

whitelist_from *@Newsletters.Microsoft.com

# From addr like <some chinese>@mydomain,將以下的mai\l.com\.tw改成您的domain
header __FROM_8BIT_LOCAL From:addr =~ /[a-zA-Z0-9_-]*[\x80xff][a-zA-Z0-9_-]*\@mail\.com\.tw/i
header __TO_8BIT_LOCAL To:addr =~ /[a-zA-Z0-9_-]*[\x80-\xff][a-zA-Z0-9_-]*\@mail\.com\.tw/i
header __CC_8BIT_LOCAL Cc:addr =~ /[a-zA-Z0-9_-]*[\x80-\xff][a-zA-Z0-9_-]*\@mail\.com\.tw/i
meta LOCAL_8BIT_USER (__FROM_8BIT_LOCAL || __TO_8BIT_LOCAL || __CC_8BIT_LOCAL)
describe LOCAL_8BIT_USER From or To a chinese@mydomain
score LOCAL_8BIT_USER 3.0
-----------------------------------------------------------------------------

確認各參數正常運作,各相關模組也正常
]#spamassassin --lint -D

(2)再來設定MailScanner.conf,下列參數可能是您有興趣的:
Spam Score Character = * (以s代替spamassassin的分數,老實說,個人覺得score比較好用,你也可以用*代替)
SpamScore Number Instead Of Stars = yes (用分數代替幾顆星,這是原本Spamassassin的方式)
Spam Checks = yes
Use SpamAssassin = yes
SpamAssassin Auto Whitelist = yes (自動加入Whitelist,非spam清單)
Required SpamAssassin Score = 6 (超過6分就動作)
High SpamAssassin Score = 10 (超過10分就執行高度動作)
Rebuild Bayes Every = 0 (每隔幾秒重建Bayes資料庫)
Wait During Bayes Rebuild = no (是否需等待重建完成)

(3)spam.assassin.prefs.conf的設定

auto_whitelist_path /var/spool/MailScanner/spamassassin/auto-whitelist
auto_whitelist_file_mode 0600
bayes_path /var/spool/MailScanner/spamassassin/bayes
bayes_file_mode 0600
ok_locales zh en
ok_languages zh en
skip_rbl_checks 1 --如果不想使用RBL過濾規則的話,此項啟動,因RBL除真正是垃圾信外,還涉及一些被relay的轉信站,使用RBL可能會漏掉一些重要的信
use_bayes 1 --使用Bayes

(4)filename.rules.conf的設定
allow \.chm$

(5)自動學習
先建立兩個帳號,spam跟nospam
]#useradd spam
]#useradd nospam

以後是垃圾信就轉信到spapm的帳號,非垃圾信被加上{spam?}就轉到nospam去,然後用下列指令學習:

]# sa-learn -D --showdots --spam --mbox /var/mail/spam
]# sa-learn -D --showdots --ham --mbox /var/mail/nospam

也可以使用以下的Script:
######################################
#!/bin/sh
SPAM=/var/mail/spam
NOTSPAM=/var/mail/nospam

LOGFILE=/var/log/learn.spam.log
PREFS=/etc/MailScanner/spam.assassin.prefs.conf
SALEARN=/usr/bin/sa-learn

date >> $LOGFILE
if [ -f $SPAM ]; then
BOX=${SPAM}.processing
mv $SPAM $BOX
sleep 5 # Wait for writing current message to complete
$SALEARN --prefs-file=$PREFS --spam --mbox $BOX >> $LOGFILE 2>&1
rm -f $BOX
fi

if [ -f $NOTSPAM ]; then
BOX=${NOTSPAM}.processing
mv $NOTSPAM $BOX
sleep 5 # Wait for writing current message to complete
$SALEARN --prefs-file=$PREFS --ham --mbox $BOX >> $LOGFILE 2>&1
rm -f $BOX
fi
######################################
把以上的內容存成spam-learn。
] # chmod 755 spam-learn
] # mv spam-learn /etc/cron.daily
] # /etc/init.d/crond restart

---------------------------------------------------------------------------------------------------------------------------------------
15.SNMP的設定
snmp從RH9.0後就改為net-snmp,所以跟之前設定略有差別,請修改下列設定檔:
]#vi /etc/snmp/snmpd.conf

com2sec local localhost public
com2sec mynetwork 192.168.0.0/24 public
group MyRWGroup v1 local
group MyROGroup v1 mynetwork
group MyRWGroup v2c local
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
view all included .1 80
access MyROGroup "" any noauth prefix all none none
access MyRWGroup "" any noauth prefix all all all
syslocation Unknown (edit /etc/snmp/snmpd.conf)
syscontact Root (configure /etc/snmp/snmp.local.conf)
pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat

<ps>請注意,mailscanner-mrtg使用v2c的界面取得數據,group MyRWGroup v2c local此行一定要有.

修改完請重新啟動,/etc/rc.d/init.d/snmpd restart
測試snmp,
]#snmpwalk localhost -c public -v 1

測試mailscanner-mrtg使用的v2c uptime
]#snmpwalk -v 2c -c public localhost uptime

---------------------------------------------------------------------------------------------------------------------------------------
16.Mailscanner-MRTG

rpm -ivh mailscanner-mrtg-0.09.03-1.noarch
可能會稍微久一點.

修改設定檔
vi /etc/MailScanner/mailscanner-mrtg.conf

修改下列參數:
MTA = postfix
Incoming Queue Dir = /var/spool/postfix.in/deferred或/var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MailScanner Work Directory = /var/spool/MailScanner/incoming-->/var/
Spool Directory = /var/spool/mailscanner-mrtg-->/var/
------------------------------------
<ps>此兩項是用df指令來穫得磁碟空間,所以要求實際mount point,可以看看原來MailScanner Work Directory和Spool Directory
是在那個磁區底下,直接設定即可,因為其重點在於監控這兩個目錄所在空間是否不足,官方網站提出使用tmpfs另外分出兩個掛載點,
個人覺得並不是非常好的解法,因為無法提供正確空間的使用數據,僅能夠消除錯誤的log而已,請參考.
以我的例子,此兩個目錄都在/var的mount point上,所以都設成/var.
------------------------------------
Use SNMP = yes
SNMP Community = public
------------------------------------
若SNMP未啟動,會有cpu ,memory,iptraffic 三項圖形無法穫得數據.

<ps>mailscanner-mrtg所提供的數據由/usr/sbin/mailscanner-mrtg而來,共有下列幾項:
loadavg : 主機平均負載
cpu : CPU 使用率
memory : 記憶體用量
iptraffic : 伺服器網路流量
inqueue : 等待傳送出去的檔案數量
outqueue : 等待傳出的檔案數量
quarantine : 隔離區的檔案/信件數量
rootusage : 在根目錄(/)上的磁碟用量
spoolusage : 在Spool Filesystem上的磁碟用量
tmpfsusage : 在Work Filesystem上的磁碟用量
mailscanner : MailScanner 子程序數量
mta : MTA 遞送程序
mail :信件遞送
mailbytes : 郵件傳輸量
virus : 未通過病毒或內容檢測的信件
spam : 垃圾郵件數量
virusratio : 病毒或內容禁止信件佔所有郵件的比率
spamratio : 垃圾信件佔所有郵件的比率
batchsize : 每一批次平均處理的信件數量
speed : 處理速度

再來修改/etc/mrtg/mailscanner-mrtg.cfg
Workdir: /var/www/html/mailscanner-mrtg <--流量網頁產生目錄
IconDir: /mrtg/
WriteExpires: Yes
Interval: 5
Refresh: 300
Language: big5 <--設定為中文

產生index.html網頁
]# indexmaker --output=/var/www/html/mailscanner-mrtg/index.html /etc/mrtg/mailscanner-mrtg.cfg

<ps>在RH9.0有個indexmaker的bug,原文如下:
This is caused by an incompatibility between MRTG and PERL 5.8 which MRTG uses to generate files.
The MRTG site claims this was fixed in version 2.9.22, but this version of MRTG seems to fail under RedHat.
Indexmaker MRTG_LIB Errors With RedHat 9 and 8.0
RedHat versions 8 and 9 give an error like this when running indexmaker.
簡單來說就是perl5.8和mrtg-2.9.17-13的相容性問題,不過還是可以用,如過覺得礙眼,請修改這個檔案:
]#vi /usr/lib/mrtg2/MRTG_lib.pm
將@ISA = qw(Exporter $VERSION);
改為
@ISA = qw(Exporter);
若另有Malformed UTF-8 character (unexpected end of string) at /usr/bin/../lib/mrtg2/locales_mrtg.pm line 614的錯誤,是另外一個locale的bug,
請先執行 export LANG=C 再重跑 mrtg 命令。

再來測試參數檔,需連續run三次才不會有錯誤產生.
mrtg /etc/mrtg/mailscanner-mrtg.cfg

不過若有錯誤產生,主要是SNMP跟tmpfs的參數未設好,請再仔細檢查.

完成後可以在以下看到流量:
http://your.mail.com/...ner-mrtg

<ps>在RHEL3.0由於將MRTG有獨立設定存取模組,所以請修改以下檔案,可以解決mrtg icon無法出來的問題:
]#vi /etc/httpd/conf.d/mrtg.conf
Allow from localhost -->Allow from all

從localhost改為全部可以瀏覽

---------------------------------------------------------------------------------------------------------------------------------------
17.Openwebmail安裝
openwebmail需要先安裝下列4個套件:
perl-CGI
perl-Compress-Zlib
perl-Text-Iconv
perl-suidperl
其中 perl-CGI和perl-suidperl-5.8.0應該已經存在,所以再新增其他兩個:
]#rpm -Uvh perl-Text-Iconv-1.2-RH80.i386.rpm
]#rpm -Uvh perl-Compress-Zlib-1.21-RH9.i386.rpm
然後開始裝openwebmail
]#rpm -ivh openwebmail-2.41-1.i386.rpm

裝完後請修改/var/www/cgi-bin/openwebmail/etc/defaults/dbm.conf,修改下列三項:
dbm_ext .db
dbmopen_ext .db
dbmopen_haslock yes

然後執行起始設定:
]#/var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init

若要設定中文界面為預設界面,請修改下列檔案:
]#vi /var/www/cgi-bin/openwebmail/etc/openwebmail.conf
-->default_language zh_TW.Big5

---------------------------------------------------------------------------------------------------------------------------------------
18.其他小細節

MailScanner有三個定時啟動的成序,可依環境自行搬到該執行的週期:
清除隔離檔案--預設每天一次
/etc/cron.daily/clean.quarantine

檢查MailScanner--預設每小時一次
/etc/cron.hourly/check_MailScanner

更新病毒碼--預設每小時一次
/etc/cron.hourly/update_virus_scanners

若Apache的MRTG出來的網頁以UTF為主,切換麻煩的話, 請修改/etc/httpd/conf/httpd.conf
將AddDefaultCharset ISO-8859-1修改如下
AddDefaultCharst Big5
語言順序
LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ltz ca es sv tw
改成
LanguagePriority tw en da nl et fr de el it ja kr no pl pt pt-br ltz ca es sv
---------------------------------------------------------------------------------------------------------------------------------------



獻花 x0 回到頂端 [樓 主] From:台灣數位聯合 | Posted:2005-08-02 10:09 |
mnbmnb5266
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x5 鮮花 x46
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

真是多謝您的教學了,防病毒一直是個關鍵的問題啊,現在終於不用像以前那麼發愁了


我的收藏
https://pan.baidu.com/s/1QUJ9lr_VzxXKRJAlBJgUQA
提取码:am2c
獻花 x0 回到頂端 [1 樓] From:加拿大Rogers | Posted:2010-08-26 23:29 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.103897 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言