作者 主題: Mail system for RHEL4.0 Total solution安裝筆記  (閱讀 90545 次)

0 會員 與 1 訪客 正在閱讀本文。

dandy

  • 懷疑的國中生
  • **
  • 文章數: 76
    • 檢視個人資料
    • http://11way.com/joom 失憶小站--失憶防止記錄器
****************************************************
Postfix 使用
1.SASL smtp認證(提供user在家或出外的smtp認證服務)
2.Procmail信件過濾(基本過濾)
3.Spamassassin自我學習的垃圾信過濾
4.Mailscanner信件掃瞄閘道
5.Sophos歐洲最大的掃毒軟體
6.SNMP(MRTG需用到)
7.MailScanner-MRTG(用來監控郵件處理及系統流量)
8.Openwebmail
9.dovecot

Mail system for RHEL4.0 Total solution安裝筆記
            --written by Dandy
*****************************************************
在此先強調,一個server重的是穩定而不是快也不是新,雖然新的版本會有研究的樂趣,但對公司而言不會是好事,這次是因為手賤,在online的狀況下去做fsck,所以導致/和/usr大量檔案受損,只得重裝系統.

前言,Redhat Enterprise Linux 4.0(RHEL4.0)使用Kernel 2.6.9-5,代號為Nahant,相對應的Fedora版本應該是FC3,這次改版最主要有幾個地方:
虛擬記憶體系統處理讀寫方式的改變(memory IO變快,更適合用來跑database了),支援HT(Hyper Thread)的CPU, LVM2的增強,更好的電源管理,
還有對USB設備的大量支援,在軟體方面,初初接觸,改了不少東西,像pop3跟imap整合到dovecot跟cyrus-imapd(兩個都可以跑pop3/imap)等.

再將以前的筆記整理如下:

1.所有相關的套件--Postfix,Procmail,SASL,Spamassasin在Redhat AS4.0都已內建,版本如下:
postfix-2.1.5-2.3.RHEL4.1
procmail-3.22-14
spamassassin-3.0.1-0.EL4
cyrus-sasl-2.1.19-5.EL4
剩下只有Mailscaner跟Sophos需download來安裝,請到以下download(今天是2005/3/18,版本可能會不同):

Sophos AntiVirus For Linux v3.88.0
http://downloads.sophos.com/dp/full/linux.intel.libc6.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 4.0則使用libc6.glibc2.2.tar.Z)
另外請下載IDE病毒碼,版本為3.91
http://www.sophos.com/downloads/ide/391_ides.zip

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

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

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

MailScanner MRTG--用來監控郵件處理流量
mailscanner-mrtg-0.10.00-1.noarch.rpm
http://belnet.dl.sourceforge.net/sourceforge/mailscannermrtg/mailscanner-mrtg-0.10.00-1.noarch.rpm

Openwebmail 2.41.1
http://openwebmail.org/openwebmail/download/redhat/rpm/release/openwebmail-2.51-1.i386.rpm
ftp://ftp-linux.cc.gatech.edu/pub/linux/distributions/smeserver/contribs/gswallow/SME7-Centos4/yum/perl-Text-Iconv-1.4-1.2.el4.rf.i386.rpm
---------------------------------------------------------------------------------------------------------------------------------------------
2.因postfix和sasl套件在RedHat Enterprise AS 4.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

-----------------------------------------------------------------------------------------------------------
<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.設定身份認證方式(saslauthd)

cyrus-sasl 在這次我放棄了由smtp啟動的方式,改為saslauthd這個daemon來啟動,原因是效能會好一點,有個專門的daemon在處理,總是會比較好,
幾乎不需要動到任何設定,很單純只要將saslauthd啟動就可以了,
#/etc/rc.d/init.d/saslauthd start

先測試一下
#testsaslauthd -u user -p 'password'
0: OK "Success."-->成功

相關的設定檔在
/etc/sysconfig/saslauthd

最主要的一行是MECH=shadow

# saslauthd -v
saslauthd 2.1.19
authentication mechanisms: getpwent kerberos5 pam rimap shadow ldap
可以使用的認證機制有getpwent kerberos5 pam rimap shadow ldap這幾種,可自行選用,預設值使用shadow,已經可以不用再使用PAM.

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

. 測試 SASL
測試的方法同樣是使用 telnet ,利用 telnet 指令連到 Postfix 主機端上,請執行如下的指令:
# telnet sun.xx.com 25
接著請輸入下列指令:
EHLO test.com
請注意 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 認證。
---------------------------------------------------------------------------------------------------------------------------------------------
5.設定outlook或outlook express,設定smtp外寄郵件伺服器需要認證.
---------------------------------------------------------------------------------------------------------------------------------------------
6.基本的信件過濾:postfix+procmail+spamassassin(使用MailScanner啟動Spamassassin請跳過此項)
最簡單的方式就是在/etc/procmailrc加入
:0fw
| /usr/bin/spamassassin

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

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

將病毒碼手動放到/usr/local/sav
]#mv 391_ides.zip /usr/local/sav

安裝完的目錄如下:
 執行檔- 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

---------------------------------------------------------------------------------------------------------------------------------------------
9.安裝MailScanner

MailScanner支援Postfix的詳細說明:
http://www.sng.ecs.soton.ac.uk/mailscanner/install/postfix.shtml
<ps:此為支援Postfix 2.x版的安裝方式,Redhat 9或其他預設的Postfix 1.x版並不適用>

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

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

<p.s.>會等待需多點時間,因為除了MailScanner外還會有其他必須要用到的套件,大部份是perl的套件

安裝完成後,MailScanner會自動幫你啟動,但是因為預設啟動的是sendmail,不是postfix,所以這時並未啟動,我們需要先設定MailScanner.
但在這邊我變更了一下安裝的順序,由於MailScanner會自動幫我們判別許多 pm package,並自動安裝,所以我把MailScanner的安裝移到前面來,這樣就可以省掉許多找套件並且避免新舊版本的衝突.
---------------------------------------------------------------------------------------------------------------------------------------------
10.安裝Perl SAVI Module

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

修改Makefile.PL如下:
'LIBS' => ['-L/usr/local/lib -R/usr/local/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
]#mv sophos-ide-update.pl /usr/local/bin
<ps>這個程式使用到Archive/Zip.pm,所以需安裝perl-Compress-Zlib跟perl-Archive-Zip,但之前的MailScanner已幫我們安裝

一定要執行一次,要不然MailScanner啟動Sophos時會抓不到IDE病毒碼.
]#sophos-ide-update.pl
檢查一下/usr/local/sav,發現多了一個388_ides.zip跟許多*.ide的檔案,原來這個程式的功能是幫我們下載388_ides.zip並且解壓縮,所以手動更新病毒碼的方式就是
把*ides.zip放到/usr/local/sav並且解壓縮出*.ide,可能由於sophos for linux本身是3.88,所以抓到的也是3.88的病毒碼,這時便可以將我們download下來的3.91換上去.

<ps>由於是由MailScanner來啟動postfix/spamassassin/sophos,所以自動啟動的postfix跟spamd請停掉

---------------------------------------------------------------------------------------------------------------------------------------------
12. 安裝Sophie ,Sophie是一個使用 Sophos Anti Virus Library 的掃毒介面程式
http://www.vanja.com/tools/sophie/sophie-3.04rc2.tar.gz

解壓縮
]#tar zxvf sophos-ide-update_1.2.tar.gz
]#cd sophie-3.04rc2
]#./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
->maxproc 20改為0
]#/usr/local/bin/sophie -v

---------------------------------------------------------------------------------------------------------------------------------------------
13.設定MailScanner

vi /etc/postfix/main.cf
加入這行:
header_checks = regexp:/etc/postfix/header_checks

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

加入這行:
/^Received:/ HOLD
<此行用意是將所收到的信先暫存在/var/spool/postfix/hold目錄下,所以以下的Incoming Queue Dir要設成/var/spool/postfix/hold>

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

修改以下項目,請依自己需求修改,原先無tw選項,請自行將/etc/MailScanner/reports/en複製一份成tw,再行翻譯:
-----------------------------------------------------------
%report-dir% = /etc/MailScanner/reports/tw
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   (若檔案未經掃瞄,通知你的使用者不要去使用這個郵件。)
SpamAssassin Auto Whitelist = yes
Detailed Spam Report = yes         (可以由檔頭看出一封信的spam score)
-----------------------------------------------------------

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

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

修改/etc/rc.d/init.d/MailScanner,將MTA=sendmail改成MTA=postfix,若不修改,則MailScanner會單獨啟動而不會帶起postfix
]#vi /etc/rc.d/init.d/MailScanner

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

檢查MailScanner的啟動狀況
]#check_MailScanner
MailScanner running with pid 10084 10085 10089 10990
---------------------------------------------------------------------------------------------------------------------------------------
14.設定Spamassassin

原始的spamassassin的設定檔在/etc/mail/spamassassin裡,主要為local.cf
使用MailScanner時,MailScanner將設定檔改成/etc/MailScanner/spam.assassin.prefs.conf
SpamAssassin Prefs File = %etc-dir%/spam.assassin.prefs.conf
<p.s>切記下列兩項要#mark取消掉,否則會去使用/etc/mail/spamassassin的設定檔
#SpamAssassin Local Rules Dir = /etc/mail/spamassassin
#SpamAssassin Default Rules Dir = /etc/mail/spamassassin


下列參數是我的MailScanner.conf有關spamassassin設定,您可以參考一下:
Spam Score Character = * (以s代替spamassassin的分數,老實說,個人覺得score比較好用,你也可以用*代替)
SpamScore Number Instead Of Stars = yes   (用分數代替幾顆星,這是原本Spamassassin的方式)
Spam Checks = yes
Use SpamAssassin = yes
Detailed Spam Report = yes
SpamAssassin Auto Whitelist = yes   (自動加入Whitelist,就是非spam清單)
Required SpamAssassin Score = 6      (超過6分就動作)
High SpamAssassin Score = 10         (超過10就執行高度動作)
#SpamAssassin Local Rules Dir = /etc/mail/spamassassin
#SpamAssassin Default Rules Dir = /etc/mail/spamassassin

(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              0644
<以上4項設定auto whitelist跟bayes演算法的目錄跟檔案屬性,auto_whitelist原始設在/var/spool/MailScanner/spamassassin裡,可以不用更改,只改bayes就可以>
ok_locales                       zh en
ok_languages                  zh en
skip_rbl_checks 1               --如果不想使用RBL過濾規則的話,此項啟動,因RBL除真正是垃圾信外,還涉及一些被relay的轉信站,使用RBL可能會漏掉一些重要的信
#use_bayes 1                     --使用Bayes,其實不用動,內定就是使用Bayes演算法的
#lock_method flock            --此選項適用於SpamAssassin 3
#特別演算法,請參考以下的安裝
use_dcc          1
auto_learn      1
use_pyzor       1
use_razor2      1
always_add_headers 0
dcc_add_header 1
report_safe 0
use_terse_report 1
spam_level_stars 1
dns_available yes

(3)filename.rules.conf和filetype.rules.conf的設定,請自行修改,我只修改接收.chm的附檔,因為公司會用到,內定是阻檔wmv,asf,mpg等視訊檔案.
allow   \.chm$

---------------------------------------------------------------------------------------------------------------------------------------
在設定Spamassassin之前,我們可能也要先安裝Spamassassin所支援的下列模組,
這些工具都是利用 cryptographic hash 或 checksum 和特徵比對的方式,作為判斷垃圾信件的依據. 如果在垃圾信的判別上不是有很大的需求,以下可以不用裝,
使用內建的bayes auto lean,auto whitelist和rbl就已經可以阻絕90%以上的垃圾信
-------------Source package-----------------------
DCC(Distributed Checksum Clearinghouse)
http://www.rhyolite.com/anti-spam/dcc/source/dcc-dccd.tar.Z
Pyzor
http://cogent.dl.sourceforge.net/sourceforge/pyzor/pyzor-0.4.0.tar.bz2
Razor
http://ovh.dl.sourceforge.net/sourceforge/razor/razor-agents-sdk-2.03.tar.gz
http://internap.dl.sourceforge.net/sourceforge/razor/razor-agents-2.67.tar.gz

安裝 DCC
]#tar Zxvf dcc-dccd.tar.Z
]#cd dcc-dccd-1.2.72
]#./configure
]#make install
]#/usr/local/bin/cdcc 'info'

安裝Pyzor
]#tar jxvf pyzor-0.4.0.tar.bz2
]#cd pyzor-0.4.0
]#python setup.py build
]#python setup.py install
]#pyzor discover

安裝 Razor
]#tar zxvf razor-agents-sdk-2.03.tar.gz
]#cd razor-agents-sdk-2.03
]#perl Makefile.PL
]#make
]#make test
]#make install
]#cd ..
]#tar zxvf razor-agents-2.67.tar.gz
]#cd razor-agents-2.67
]#perl Makefile.PL
]#make
]#make test
maktest時,可能會有錯誤產生,請忽略,因為那可能跟Razor server連線有關.
]#make install
]#razor-client
]#razor-admin -create
]#razor-admin -register -user postmaster@your.domain

更改檔案屬性(因為安裝時可能權限變更而無法讀取)
]#chmod -R a+rX /usr/share/doc/pyzor \
/usr/lib/python2.3/site-packages/pyzor \
/usr/bin/pyzor /usr/bin/pyzord
--------------------------------------------------------------------
確認各參數正常運作,各相關模組也正常
]#spamassassin --lint --config-file=/etc/MailScanner/spam.assassin.prefs.conf -D
若出現
debug: bayes: no dbs present, cannot tie DB R/O: /var/spool/MailScanner/spamassassin/bayes_toks
則是bayes演算法的db未建立,執行以下自動學習便會在/var/spool/MailScanner/spamassassin/裡建立bayes_seen/bayes_toks等檔案,但是
spamassassin似乎2.x版跟3.x版的db結構不同,請試一下
]#sa-learn --sync
若是不行就得重建了,再寄個200封吧~

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

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

]# sa-learn  --prefs-file=/etc/MailScanner/spam.assassin.prefs.conf --showdots --spam --mbox /var/mail/spam
]# sa-learn  --prefs-file=/etc/MailScanner/spam.assassin.prefs.conf --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


<p.s.>後記--檢查一下經過Mailscanner所處理過的信件檔頭,應該會出現以下的訊息,若未出現host-MailScanner-SpamCheck,非廣告郵件, SpamAssassin 程式...的話,請檢查Detailed Spam Report = yes,
其中若分數一直=0沒變的話,表示spamassassin的設定檔錯誤,請檢查此兩項要取消
#SpamAssassin Local Rules Dir = /etc/mail/spamassassin
#SpamAssassin Default Rules Dir = /etc/mail/spamassassin
此項路徑要對:
SpamAssassin User State Dir =/var/spool/MailScanner/spamassassin
=======MailScanner處理過的信件檔頭===============
X-host-MailScanner-Information: Please contact the ISP for more information
X-host-MailScanner: Found to be clean
X-host-MailScanner-SpamCheck: 非廣告郵件, SpamAssassin 程式 (分數=3.8,
   被需要 6, AWL 0.00, FORGED_MUA_OUTLOOK 3.48, RCVD_IN_ORBS 0.50,
   RCVD_IN_OSIRUSOFT_COM 0.55, X_OSIRU_OPEN_RELAY 2.90)
X-host-MailScanner-SpamScore: 3
X-MailScanner-From: sender@host
Status:  
========================================

---------------------------------------------------------------------------------------------------------------------------------------
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.10.00-1.noarch.rpm

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

修改下列參數:
MTA = postfix
Incoming Queue Dir = /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

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

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

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

<ps>在RHEL4.0的apache由於將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
 
 ftp://ftp-linux.cc.gatech.edu/pub/linux/distributions/smeserver/contribs/gswallow/SME7-Centos4/yum/perl-Text-Iconv-1.4-1.2.el4.rf.i386.rpm
 
其中 perl-CGI和perl-suidperl-5.8.0, perl-Compress-Zlib應該在以上的安裝已經存在,所以再新增perl-Text-Iconv:
]#rpm -Uvh perl-Text-Iconv-1.4-1.2.el4.rf.i386.rpm
然後開始裝openwebmail
]#rpm -ivh openwebmail-2.51-1.i386.rpm

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

由於RHEL4.0跟FC3一樣,對系統安全性方面加強許多,採用了Linux Security Modules (LSM) framework來編譯kernel,所以支援了SELinux (Security-Enhanced Linux),這對kernel安全上有很大幫助,
但對於一些AP的使用上卻會造成使用上的困擾,在使用openwebmail時須先將其關閉
]#vi /etc/selinux/config
將SELINUX=enforcing改成
SELINUX=disabled

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

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

完畢後確認httpd運作中,開啟
http://your.host/cgi-bin/openwebmail/openwebmail.pl
即可使用openwebmail
---------------------------------------------------------------------------------------------------------------------------------------
18.SpeedyCGI安裝

很可惜,perl 5.8.4以後對於perl script有做嚴格的檢查,所以和目前的speedycgi 2.2是不相容的.

---------------------------------------------------------------------------------------------------------------------------------------
19.dovecot
RHEL4.0跟FC3一樣是採用dovecot做為收信協定管理,合併了imap/imaps/pop3/pop3s,並支援SSL/TLS,可限制每人連線session,總體連線session,
其設定檔在/etc/dovecot.conf,內有詳細的參數設定,簡單設定的參數有這幾項:
imap_listen =
  • -->在maillog裡的記錄是ipv6為 [::],ipv4為

pop3_listen =

login_dir = /var/run/dovecot-login
login = imap
login = pop3
mbox_locks = fcntl
auth = default
auth_mechanisms = plain
auth_userdb = passwd
auth_passdb = pam
auth_user = root

---------------------------------------------------------------------------------------------------------------------------------------
20.其他小細節

MailScanner有三個定時啟動的成序,可依環境自行搬到該執行的週期:
清除隔離檔案--預設每天一次
/etc/cron.daily/clean.quarantine
將$disabled = 1;改成0來使自動清除啟動,預設是保留檔案30天($days_to_keep   = 30;)

檢查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

由於在/var/log裡會有這兩行出現,
Mar 19 08:39:54 mail postfix/smtpd[3344]: sql_select option missing
Mar 19 08:39:54 mail postfix/smtpd[3344]: auxpropfunc error no mechanism availabl
查了一下是說如果SQL plugin有安裝,預設執會去檢查sql_select這個選項,可以把SQL plugin 給移除掉或者加入dummy sql_select option,
http://11way.com/joom 失憶小站--失憶防止記錄器

hsyah

  • 可愛的小學生
  • *
  • 文章數: 5
    • 檢視個人資料
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #1 於: 2005-03-23 10:58 »
可以請問一下開版大大我安裝  RHEL4.0  ws
後webmail 收發及寄信都沒問題, 使用outlook做smtp認證寄信ok

但是 使用outlook 收信一直有問題,會出現登入帳號及密碼
(我確定帳號及密碼都是正確)

以下是outlook 出現的錯誤代碼
--------------------------------------------------------------------------
登入您的郵件伺服器時發生錯誤。您的密碼被拒絕。 帳戶: 'xxx.xxx.221.22, 伺服器: 'xxxx.ath.cx', 通訊協定: POP3, 伺服器回應: '-ERR [SYS/PERM] Unable to locate maildrop: Mailbox does not exist', 連接埠: 110, 安全(SSL): 否, 伺服器錯誤: 0x800CCC90, 錯誤碼: 0x800CCC92
---------------------------------------------------------------------------

我查主機email log 的錯誤訊息

---------------------------------------------------------------------------
 pop3[4493]: Unable to locate maildrop for test: Mailbox does not exist
---------------------------------------------------------------------------

我也有使用sasl 檢查過了也是正常
#testsaslauthd -u user -p 'password'
0: OK "Success."-->成功

請問我要如何下手或是朝那個方向去做查修

我感覺好像是不是pop 只限於我本機接收,請問是否有那些地方要注意的

謝謝

damon

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 4227
    • 檢視個人資料
    • http://blog.damon.tw/
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #2 於: 2005-03-23 14:27 »
Unable to locate maildrop for test: Mailbox does not exist
查一下字典吧
另外請先弄懂smtp auth , pop3兩者之間的差別
建議您看一下基礎文件在來問問題

hsyah

  • 可愛的小學生
  • *
  • 文章數: 5
    • 檢視個人資料
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #3 於: 2005-03-23 16:13 »
smtp auth 是做send  mail 一些認證,  這一部份沒問題
webmail 可以正常收發對外的email 也正常
25 110 port 對外都正常可以提供服務

只是為何卻無法使用outlook收信但是可以送信
(已經和mail server 取得連線,但卻是一直無法認證密碼帳號成功)

我使用的是 cyrus-imap

test 的帳號及信箱都有建立也可以webmail 收發

phantom

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 2185
    • 檢視個人資料
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #4 於: 2005-03-23 16:33 »
Unable to locate maildrop for test: Mailbox does not exist
這句話看懂了嗎?
Linux 非萬能, 沒 Linux 萬萬不能.
root = God
apt-get install ultimate-horsepower

hsyah

  • 可愛的小學生
  • *
  • 文章數: 5
    • 檢視個人資料
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #5 於: 2005-03-23 16:59 »
我回去再使用 imtest 此工具來測試 Cyrus-IMAP 的認證是否有正常運作
我怕是不是認證設定錯誤

dandy

  • 懷疑的國中生
  • **
  • 文章數: 76
    • 檢視個人資料
    • http://11way.com/joom 失憶小站--失憶防止記錄器
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #6 於: 2005-03-23 22:15 »
引述: "hsyah"
我回去再使用 imtest 此工具來測試 Cyrus-IMAP 的認證是否有正常運作
我怕是不是認證設定錯誤


不是認證的問題,也不要用imtest 來測,這很單純就是告訴你信箱不存在,信箱在那裡?在/var/spool/mail裡面,看看是不是權限的問題.
http://11way.com/joom 失憶小站--失憶防止記錄器

hsyah

  • 可愛的小學生
  • *
  • 文章數: 5
    • 檢視個人資料
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #7 於: 2005-03-24 00:43 »
在/var/spool/test  也有,權限問題我也檢查過了沒問題
Cyrus-IMAP目前我是考慮先換其他pop3 來先行使用應應急
Cyrus-IMAP事後再慢慢研究,再此先謝謝各位了

likerain

  • 憂鬱的高中生
  • ***
  • 文章數: 104
    • 檢視個人資料
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #8 於: 2005-03-24 10:25 »
Sophos這套是要錢錢的嗎

aerocat

  • 可愛的小學生
  • *
  • 文章數: 23
    • 檢視個人資料
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #9 於: 2005-03-28 20:12 »
引述: "hsyah"
在/var/spool/test  也有,權限問題我也檢查過了沒問題
Cyrus-IMAP目前我是考慮先換其他pop3 來先行使用應應急
Cyrus-IMAP事後再慢慢研究,再此先謝謝各位了


你的問題應該是在dovecot.conf中的設定未開啟pop3服務,
請尋找
#protocols = imap pop3
將 "#"拿掉

aerocat

  • 可愛的小學生
  • *
  • 文章數: 23
    • 檢視個人資料
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #10 於: 2005-03-28 20:18 »
to dandy:
我對dovecot 是門外漢, 有一個問題請教
請問現在有了dovecot 可以提供pop3s 跟 imaps 服務, 還有需要使用cyrus-sasl嗎?
以你的作法是將認證服務交給sasl, 而dovecot只做pop3 ,
這樣的作法的出發點是什麼?
穩定性?
安全性?
相容性?

dandy

  • 懷疑的國中生
  • **
  • 文章數: 76
    • 檢視個人資料
    • http://11way.com/joom 失憶小站--失憶防止記錄器
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #11 於: 2005-03-29 00:25 »
引述: "aerocat"
to dandy:
我對dovecot 是門外漢, 有一個問題請教
請問現在有了dovecot 可以提供pop3s 跟 imaps 服務, 還有需要使用cyrus-sasl嗎?
以你的作法是將認證服務交給sasl, 而dovecot只做pop3 ,
這樣的作法的出發點是什麼?
穩定性?
安全性?
相容性?


cyrus-sasl跟cyrus-imap是不一樣的東西,sasl是提供應用程式支援認證用的lib,因為標準smtp不使用認證,所以才會有搭配sasl的動作,這一環節是送信;而收信的部份,原本pop3就有提供認證,所以不用搭配sasl,倒是若了安全起見,可以搭配ssl來加密,也是可以使用 imap協定來讓使用者到server來"看"信,但以企業經驗,一般user不會去管理自己的信箱,到最後結果一定是爆掉,所以又要搭配mail quota來管理,所以我選擇使用pop3.而dovecot只不過是將這幾個收信協定:pop3,imap,pop3s,imaps整合在一個管理環境上,同樣cyrus-imap提供了相同的功能,上一個問題是使用了cyrus-imap,而不是dovecot.
http://11way.com/joom 失憶小站--失憶防止記錄器

calvinchiou

  • 懷疑的國中生
  • **
  • 文章數: 34
    • 檢視個人資料
    • http://www.mirror.idv.tw
Re: Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #12 於: 2005-04-08 23:50 »
引述: "dandy"
****************************************************
由於在/var/log裡會有這兩行出現,
Mar 19 08:39:54 mail postfix/smtpd[3344]: sql_select option missing
Mar 19 08:39:54 mail postfix/smtpd[3344]: auxpropfunc error no mechanism availabl
查了一下是說如果SQL plugin有安裝,預設執會去檢查sql_select這個選項,可以把SQL plugin 給移除掉或者加入dummy sql_select option,


前輩:
這兩行在我log會出現,但是dummy sql_select option要在那個設定檔加入?
或者是移除SQL plugin要移除那個rpm?

ethanliu

  • 懷疑的國中生
  • **
  • 文章數: 41
    • 檢視個人資料
    • http://www.creativecrap.com
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #13 於: 2005-04-09 03:30 »
引用
Unable to locate maildrop for test: Mailbox does not exist


前幾日安裝 CentOS4 時有遇到相同的問題
後來找到的答案是新的 cyrus-imap 的信箱格式不同 (儲存的位置可能也不一樣?)
改以 dovecot 取代 cyrus-imap 則一切正常

flin1009

  • 可愛的小學生
  • *
  • 文章數: 4
    • 檢視個人資料
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #14 於: 2005-04-11 09:55 »
請問 dandy 兄,有試過在 RHEL4 安裝 MailWantch for MailScanner嗎?
小弟有遇到一個狀況,如下連結,
http://phorum.study-area.org/viewtopic.php?t=30942
如果有的話,可以提供個意見,或看法嗎?

ethanliu

  • 懷疑的國中生
  • **
  • 文章數: 41
    • 檢視個人資料
    • http://www.creativecrap.com
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #15 於: 2005-04-11 12:23 »
引述: "flin1009"
請問 dandy 兄,有試過在 RHEL4 安裝 MailWantch for MailScanner嗎?
小弟有遇到一個狀況,如下連結,
http://phorum.study-area.org/viewtopic.php?t=30942
如果有的話,可以提供個意見,或看法嗎?


http://phorum.study-area.org/viewtopic.php?t=28352&highlight=MailWatch

flin1009

  • 可愛的小學生
  • *
  • 文章數: 4
    • 檢視個人資料
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #16 於: 2005-04-11 14:42 »
感謝 ethanliu 兄,
我的 MailWatch 無法使用的問題,
在改了 MailWatch.pm 之後,
就解決了。 :D

ethanliu

  • 懷疑的國中生
  • **
  • 文章數: 41
    • 檢視個人資料
    • http://www.creativecrap.com
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #17 於: 2005-04-11 21:19 »
:oops: 其實我有回覆您早先那一篇發問
(相信你有收到一個回覆通知,但是回來又沒看到回覆)
回貼的便是 MailWatch 上的兩篇討論
http://sourceforge.net/forum/forum.php?thread_id=1219333&forum_id=298819
http://sourceforge.net/forum/forum.php?thread_id=1213254&forum_id=298819

但是就在我 po 完的同時突然發現已有人回答過了
因為 MailWatch 搜尋出來就那幾篇
我想說你應該已經看過了,於是之前回覆的那篇就自爆了  :P

ansonkung

  • 懷疑的國中生
  • **
  • 文章數: 43
    • 檢視個人資料
Re: Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #18 於: 2005-06-10 12:07 »
引述: "dandy"

安裝 Razor
]#tar zxvf razor-agents-sdk-2.03.tar.gz
]#cd razor-agents-sdk-2.03
]#perl Makefile.PL
]#make
]#make test
]#make install


小弟在安裝時 make test 出現了一個錯誤 , 請問是那個地方有問題, 找好久找不到

make[1]: Leaving directory `/home/anson/mail/razor-agents-sdk-2.03/Time-HiRes-01.20'
make[1]: Entering directory `/home/anson/mail/razor-agents-sdk-2.03/URI-1.19'
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, '../blib/lib', '../blib/arch')" t/*.t
t/abs............ok
t/clone..........ok
t/data...........ok
t/escape.........ok
t/file...........ok
t/generic........ok
t/heuristic......FAILED test 7
        Failed 1/15 tests, 93.33% okay
t/http...........ok
t/ldap...........ok
t/mailto.........ok
t/mix............ok
t/news...........ok
t/old-absconf....ok
t/old-base.......ok
t/old-relbase....ok
t/pop............ok
t/query..........ok
t/rfc2732........ok
t/roy-test.......ok
t/rsync..........ok
Failed Test   Stat Wstat Total Fail  Failed  List of Failed
-------------------------------------------------------------------------------
t/heuristic.t               15    1   6.67%  7
Failed 1/20 test scripts, 95.00% okay. 1/349 subtests failed, 99.71% okay.
make[1]: *** [test_dynamic] Error 255
make[1]: Leaving directory `/home/anson/mail/razor-agents-sdk-2.03/URI-1.19'
make: *** [test] Error 2

denise

  • 憂鬱的高中生
  • ***
  • 文章數: 91
    • 檢視個人資料
Re: Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #19 於: 2005-06-10 16:09 »
引述: "calvinchiou"
引述: "dandy"
****************************************************
由於在/var/log裡會有這兩行出現,
Mar 19 08:39:54 mail postfix/smtpd[3344]: sql_select option missing
Mar 19 08:39:54 mail postfix/smtpd[3344]: auxpropfunc error no mechanism availabl
查了一下是說如果SQL plugin有安裝,預設執會去檢查sql_select這個選項,可以把SQL plugin 給移除掉或者加入dummy sql_select option,


前輩:
這兩行在我log會出現,但是dummy sql_select option要在那個設定檔加入?
或者是移除SQL plugin要移除那個rpm?


我也找不到dummy sql_select option...所以只好移除掉...
# rpm -e libdbi-dbd-mysql

jason_linux

  • 可愛的小學生
  • *
  • 文章數: 14
    • 檢視個人資料
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #20 於: 2005-10-28 20:03 »
請問一下:
為什麼我只要再 /etc/postfix/header_checks加上這一段敘述:
 /^Received:/ HOLD
就會無法收發信??

jason_linux

  • 可愛的小學生
  • *
  • 文章數: 14
    • 檢視個人資料
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #21 於: 2005-10-28 20:27 »
另外還有一點請問一下:
因為MailScanner是使用/etc/MailScanner/spam.assassin.prefs.conf做參數參考,原本的spamassassin的local.cf設定檔有可以直接把垃圾信刪除的功能,那在spam.assassin.prefs.conf好像沒看到,不曉得該如何做到?

cameron

  • 可愛的小學生
  • *
  • 文章數: 2
    • 檢視個人資料
Re: Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #22 於: 2005-11-04 11:22 »
我有一个问题想请教,我在RHEL4 上面配置好了SENDMAIL和DOVECOT, SENDMAIL能正常收发,DOVECOT运行也正常,而且我还用PROCMAIL把SENDMAIL保存邮件的位置/var/spool/mail/username改写到了~/Maildir/Maildir,可DOVECOT怎么也认不了,请指教,应该怎么样才能让DOVECOT能读到SENDMAIL保存的邮件. 谢谢!


cameron
xmg_001@163.com

Mail system for RHEL4.0 Total solution安裝筆記
            --written by Dandy
*****************************************************
在此先強調,一個server重的是穩定而不是快也不是新,雖然新的版本會有研究的樂趣,但對公司而言不會是好事,這次是因為手賤,在online的狀況下去做fsck,所以導致/和/usr大量檔案受損,只得重裝系統.

前言,Redhat Enterprise Linux 4.0(RHEL4.0)使用Kernel 2.6.9-5,代號為Nahant,相對應的Fedora版本應該是FC3,這次改版最主要有幾個地方:
虛擬記憶體系統處理讀寫方式的改變(memory IO變快,更適合用來跑database了),支援HT(Hyper Thread)的CPU, LVM2的增強,更好的電源管理,
還有對USB設備的大量支援,在軟體方面,初初接觸,改了不少東西,像pop3跟imap整合到dovecot跟cyrus-imapd(兩個都可以跑pop3/imap)等.

再將以前的筆記整理如下:

1.所有相關的套件--Postfix,Procmail,SASL,Spamassasin在Redhat AS4.0都已內建,版本如下:
postfix-2.1.5-2.3.RHEL4.1
procmail-3.22-14
spamassassin-3.0.1-0.EL4
cyrus-sasl-2.1.19-5.EL4
剩下只有Mailscaner跟Sophos需download來安裝,請到以下download(今天是2005/3/18,版本可能會不同):

Sophos AntiVirus For Linux v3.88.0
http://downloads.sophos.com/dp/full/linux.intel.libc6.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 4.0則使用libc6.glibc2.2.tar.Z)
另外請下載IDE病毒碼,版本為3.91
http://www.sophos.com/downloads/ide/391_ides.zip

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

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

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

MailScanner MRTG--用來監控郵件處理流量
mailscanner-mrtg-0.10.00-1.noarch.rpm
http://belnet.dl.sourceforge.net/sourceforge/mailscannermrtg/mailscanner-mrtg-0.10.00-1.noarch.rpm

Openwebmail 2.41.1
http://openwebmail.org/openwebmail/download/redhat/rpm/release/openwebmail-2.51-1.i386.rpm
ftp://ftp-linux.cc.gatech.edu/pub/linux/distributions/smeserver/contribs/gswallow/SME7-Centos4/yum/perl-Text-Iconv-1.4-1.2.el4.rf.i386.rpm
---------------------------------------------------------------------------------------------------------------------------------------------
2.因postfix和sasl套件在RedHat Enterprise AS 4.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

-----------------------------------------------------------------------------------------------------------
<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.設定身份認證方式(saslauthd)

cyrus-sasl 在這次我放棄了由smtp啟動的方式,改為saslauthd這個daemon來啟動,原因是效能會好一點,有個專門的daemon在處理,總是會比較好,
幾乎不需要動到任何設定,很單純只要將saslauthd啟動就可以了,
#/etc/rc.d/init.d/saslauthd start

先測試一下
#testsaslauthd -u user -p 'password'
0: OK "Success."-->成功

相關的設定檔在
/etc/sysconfig/saslauthd

最主要的一行是MECH=shadow

# saslauthd -v
saslauthd 2.1.19
authentication mechanisms: getpwent kerberos5 pam rimap shadow ldap
可以使用的認證機制有getpwent kerberos5 pam rimap shadow ldap這幾種,可自行選用,預設值使用shadow,已經可以不用再使用PAM.

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

. 測試 SASL
測試的方法同樣是使用 telnet ,利用 telnet 指令連到 Postfix 主機端上,請執行如下的指令:
# telnet sun.xx.com 25
接著請輸入下列指令:
EHLO test.com
請注意 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 認證。
---------------------------------------------------------------------------------------------------------------------------------------------
5.設定outlook或outlook express,設定smtp外寄郵件伺服器需要認證.
---------------------------------------------------------------------------------------------------------------------------------------------
6.基本的信件過濾:postfix+procmail+spamassassin(使用MailScanner啟動Spamassassin請跳過此項)
最簡單的方式就是在/etc/procmailrc加入
:0fw
| /usr/bin/spamassassin

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

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

將病毒碼手動放到/usr/local/sav
]#mv 391_ides.zip /usr/local/sav

安裝完的目錄如下:
 執行檔- 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

---------------------------------------------------------------------------------------------------------------------------------------------
9.安裝MailScanner

MailScanner支援Postfix的詳細說明:
http://www.sng.ecs.soton.ac.uk/mailscanner/install/postfix.shtml
<ps:此為支援Postfix 2.x版的安裝方式,Redhat 9或其他預設的Postfix 1.x版並不適用>

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

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

<p.s.>會等待需多點時間,因為除了MailScanner外還會有其他必須要用到的套件,大部份是perl的套件

安裝完成後,MailScanner會自動幫你啟動,但是因為預設啟動的是sendmail,不是postfix,所以這時並未啟動,我們需要先設定MailScanner.
但在這邊我變更了一下安裝的順序,由於MailScanner會自動幫我們判別許多 pm package,並自動安裝,所以我把MailScanner的安裝移到前面來,這樣就可以省掉許多找套件並且避免新舊版本的衝突.
---------------------------------------------------------------------------------------------------------------------------------------------
10.安裝Perl SAVI Module

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

修改Makefile.PL如下:
'LIBS' => ['-L/usr/local/lib -R/usr/local/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
]#mv sophos-ide-update.pl /usr/local/bin
<ps>這個程式使用到Archive/Zip.pm,所以需安裝perl-Compress-Zlib跟perl-Archive-Zip,但之前的MailScanner已幫我們安裝

一定要執行一次,要不然MailScanner啟動Sophos時會抓不到IDE病毒碼.
]#sophos-ide-update.pl
檢查一下/usr/local/sav,發現多了一個388_ides.zip跟許多*.ide的檔案,原來這個程式的功能是幫我們下載388_ides.zip並且解壓縮,所以手動更新病毒碼的方式就是
把*ides.zip放到/usr/local/sav並且解壓縮出*.ide,可能由於sophos for linux本身是3.88,所以抓到的也是3.88的病毒碼,這時便可以將我們download下來的3.91換上去.

<ps>由於是由MailScanner來啟動postfix/spamassassin/sophos,所以自動啟動的postfix跟spamd請停掉

---------------------------------------------------------------------------------------------------------------------------------------------
12. 安裝Sophie ,Sophie是一個使用 Sophos Anti Virus Library 的掃毒介面程式
http://www.vanja.com/tools/sophie/sophie-3.04rc2.tar.gz

解壓縮
]#tar zxvf sophos-ide-update_1.2.tar.gz
]#cd sophie-3.04rc2
]#./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
->maxproc 20改為0
]#/usr/local/bin/sophie -v

---------------------------------------------------------------------------------------------------------------------------------------------
13.設定MailScanner

vi /etc/postfix/main.cf
加入這行:
header_checks = regexp:/etc/postfix/header_checks

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

加入這行:
/^Received:/ HOLD
<此行用意是將所收到的信先暫存在/var/spool/postfix/hold目錄下,所以以下的Incoming Queue Dir要設成/var/spool/postfix/hold>

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

修改以下項目,請依自己需求修改,原先無tw選項,請自行將/etc/MailScanner/reports/en複製一份成tw,再行翻譯:
-----------------------------------------------------------
%report-dir% = /etc/MailScanner/reports/tw
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   (若檔案未經掃瞄,通知你的使用者不要去使用這個郵件。)
SpamAssassin Auto Whitelist = yes
Detailed Spam Report = yes         (可以由檔頭看出一封信的spam score)
-----------------------------------------------------------

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

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

修改/etc/rc.d/init.d/MailScanner,將MTA=sendmail改成MTA=postfix,若不修改,則MailScanner會單獨啟動而不會帶起postfix
]#vi /etc/rc.d/init.d/MailScanner

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

檢查MailScanner的啟動狀況
]#check_MailScanner
MailScanner running with pid 10084 10085 10089 10990
---------------------------------------------------------------------------------------------------------------------------------------
14.設定Spamassassin

原始的spamassassin的設定檔在/etc/mail/spamassassin裡,主要為local.cf
使用MailScanner時,MailScanner將設定檔改成/etc/MailScanner/spam.assassin.prefs.conf
SpamAssassin Prefs File = %etc-dir%/spam.assassin.prefs.conf
<p.s>切記下列兩項要#mark取消掉,否則會去使用/etc/mail/spamassassin的設定檔
#SpamAssassin Local Rules Dir = /etc/mail/spamassassin
#SpamAssassin Default Rules Dir = /etc/mail/spamassassin


下列參數是我的MailScanner.conf有關spamassassin設定,您可以參考一下:
Spam Score Character = * (以s代替spamassassin的分數,老實說,個人覺得score比較好用,你也可以用*代替)
SpamScore Number Instead Of Stars = yes   (用分數代替幾顆星,這是原本Spamassassin的方式)
Spam Checks = yes
Use SpamAssassin = yes
Detailed Spam Report = yes
SpamAssassin Auto Whitelist = yes   (自動加入Whitelist,就是非spam清單)
Required SpamAssassin Score = 6      (超過6分就動作)
High SpamAssassin Score = 10         (超過10就執行高度動作)
#SpamAssassin Local Rules Dir = /etc/mail/spamassassin
#SpamAssassin Default Rules Dir = /etc/mail/spamassassin

(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              0644
<以上4項設定auto whitelist跟bayes演算法的目錄跟檔案屬性,auto_whitelist原始設在/var/spool/MailScanner/spamassassin裡,可以不用更改,只改bayes就可以>
ok_locales                       zh en
ok_languages                  zh en
skip_rbl_checks 1               --如果不想使用RBL過濾規則的話,此項啟動,因RBL除真正是垃圾信外,還涉及一些被relay的轉信站,使用RBL可能會漏掉一些重要的信
#use_bayes 1                     --使用Bayes,其實不用動,內定就是使用Bayes演算法的
#lock_method flock            --此選項適用於SpamAssassin 3
#特別演算法,請參考以下的安裝
use_dcc          1
auto_learn      1
use_pyzor       1
use_razor2      1
always_add_headers 0
dcc_add_header 1
report_safe 0
use_terse_report 1
spam_level_stars 1
dns_available yes

(3)filename.rules.conf和filetype.rules.conf的設定,請自行修改,我只修改接收.chm的附檔,因為公司會用到,內定是阻檔wmv,asf,mpg等視訊檔案.
allow   \.chm$

---------------------------------------------------------------------------------------------------------------------------------------
在設定Spamassassin之前,我們可能也要先安裝Spamassassin所支援的下列模組,
這些工具都是利用 cryptographic hash 或 checksum 和特徵比對的方式,作為判斷垃圾信件的依據. 如果在垃圾信的判別上不是有很大的需求,以下可以不用裝,
使用內建的bayes auto lean,auto whitelist和rbl就已經可以阻絕90%以上的垃圾信
-------------Source package-----------------------
DCC(Distributed Checksum Clearinghouse)
http://www.rhyolite.com/anti-spam/dcc/source/dcc-dccd.tar.Z
Pyzor
http://cogent.dl.sourceforge.net/sourceforge/pyzor/pyzor-0.4.0.tar.bz2
Razor
http://ovh.dl.sourceforge.net/sourceforge/razor/razor-agents-sdk-2.03.tar.gz
http://internap.dl.sourceforge.net/sourceforge/razor/razor-agents-2.67.tar.gz

安裝 DCC
]#tar Zxvf dcc-dccd.tar.Z
]#cd dcc-dccd-1.2.72
]#./configure
]#make install
]#/usr/local/bin/cdcc 'info'

安裝Pyzor
]#tar jxvf pyzor-0.4.0.tar.bz2
]#cd pyzor-0.4.0
]#python setup.py build
]#python setup.py install
]#pyzor discover

安裝 Razor
]#tar zxvf razor-agents-sdk-2.03.tar.gz
]#cd razor-agents-sdk-2.03
]#perl Makefile.PL
]#make
]#make test
]#make install
]#cd ..
]#tar zxvf razor-agents-2.67.tar.gz
]#cd razor-agents-2.67
]#perl Makefile.PL
]#make
]#make test
maktest時,可能會有錯誤產生,請忽略,因為那可能跟Razor server連線有關.
]#make install
]#razor-client
]#razor-admin -create
]#razor-admin -register -user postmaster@your.domain

更改檔案屬性(因為安裝時可能權限變更而無法讀取)
]#chmod -R a+rX /usr/share/doc/pyzor \
/usr/lib/python2.3/site-packages/pyzor \
/usr/bin/pyzor /usr/bin/pyzord
--------------------------------------------------------------------
確認各參數正常運作,各相關模組也正常
]#spamassassin --lint --config-file=/etc/MailScanner/spam.assassin.prefs.conf -D
若出現
debug: bayes: no dbs present, cannot tie DB R/O: /var/spool/MailScanner/spamassassin/bayes_toks
則是bayes演算法的db未建立,執行以下自動學習便會在/var/spool/MailScanner/spamassassin/裡建立bayes_seen/bayes_toks等檔案,但是
spamassassin似乎2.x版跟3.x版的db結構不同,請試一下
]#sa-learn --sync
若是不行就得重建了,再寄個200封吧~

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

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

]# sa-learn  --prefs-file=/etc/MailScanner/spam.assassin.prefs.conf --showdots --spam --mbox /var/mail/spam
]# sa-learn  --prefs-file=/etc/MailScanner/spam.assassin.prefs.conf --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


<p.s.>後記--檢查一下經過Mailscanner所處理過的信件檔頭,應該會出現以下的訊息,若未出現host-MailScanner-SpamCheck,非廣告郵件, SpamAssassin 程式...的話,請檢查Detailed Spam Report = yes,
其中若分數一直=0沒變的話,表示spamassassin的設定檔錯誤,請檢查此兩項要取消
#SpamAssassin Local Rules Dir = /etc/mail/spamassassin
#SpamAssassin Default Rules Dir = /etc/mail/spamassassin
此項路徑要對:
SpamAssassin User State Dir =/var/spool/MailScanner/spamassassin
=======MailScanner處理過的信件檔頭===============
X-host-MailScanner-Information: Please contact the ISP for more information
X-host-MailScanner: Found to be clean
X-host-MailScanner-SpamCheck: 非廣告郵件, SpamAssassin 程式 (分數=3.8,
   被需要 6, AWL 0.00, FORGED_MUA_OUTLOOK 3.48, RCVD_IN_ORBS 0.50,
   RCVD_IN_OSIRUSOFT_COM 0.55, X_OSIRU_OPEN_RELAY 2.90)
X-host-MailScanner-SpamScore: 3
X-MailScanner-From: sender@host
Status:  
========================================

---------------------------------------------------------------------------------------------------------------------------------------
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.10.00-1.noarch.rpm

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

修改下列參數:
MTA = postfix
Incoming Queue Dir = /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

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

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

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

<ps>在RHEL4.0的apache由於將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
 
 ftp://ftp-linux.cc.gatech.edu/pub/linux/distributions/smeserver/contribs/gswallow/SME7-Centos4/yum/perl-Text-Iconv-1.4-1.2.el4.rf.i386.rpm
 
其中 perl-CGI和perl-suidperl-5.8.0, perl-Compress-Zlib應該在以上的安裝已經存在,所以再新增perl-Text-Iconv:
]#rpm -Uvh perl-Text-Iconv-1.4-1.2.el4.rf.i386.rpm
然後開始裝openwebmail
]#rpm -ivh openwebmail-2.51-1.i386.rpm

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

由於RHEL4.0跟FC3一樣,對系統安全性方面加強許多,採用了Linux Security Modules (LSM) framework來編譯kernel,所以支援了SELinux (Security-Enhanced Linux),這對kernel安全上有很大幫助,
但對於一些AP的使用上卻會造成使用上的困擾,在使用openwebmail時須先將其關閉
]#vi /etc/selinux/config
將SELINUX=enforcing改成
SELINUX=disabled

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

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

完畢後確認httpd運作中,開啟
http://your.host/cgi-bin/openwebmail/openwebmail.pl
即可使用openwebmail
---------------------------------------------------------------------------------------------------------------------------------------
18.SpeedyCGI安裝

很可惜,perl 5.8.4以後對於perl script有做嚴格的檢查,所以和目前的speedycgi 2.2是不相容的.

---------------------------------------------------------------------------------------------------------------------------------------
19.dovecot
RHEL4.0跟FC3一樣是採用dovecot做為收信協定管理,合併了imap/imaps/pop3/pop3s,並支援SSL/TLS,可限制每人連線session,總體連線session,
其設定檔在/etc/dovecot.conf,內有詳細的參數設定,簡單設定的參數有這幾項:
imap_listen =
  • -->在maillog裡的記錄是ipv6為 [::],ipv4為

pop3_listen =

login_dir = /var/run/dovecot-login
login = imap
login = pop3
mbox_locks = fcntl
auth = default
auth_mechanisms = plain
auth_userdb = passwd
auth_passdb = pam
auth_user = root

---------------------------------------------------------------------------------------------------------------------------------------
20.其他小細節

MailScanner有三個定時啟動的成序,可依環境自行搬到該執行的週期:
清除隔離檔案--預設每天一次
/etc/cron.daily/clean.quarantine
將$disabled = 1;改成0來使自動清除啟動,預設是保留檔案30天($days_to_keep   = 30;)

檢查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

由於在/var/log裡會有這兩行出現,
Mar 19 08:39:54 mail postfix/smtpd[3344]: sql_select option missing
Mar 19 08:39:54 mail postfix/smtpd[3344]: auxpropfunc error no mechanism availabl
查了一下是說如果SQL plugin有安裝,預設執會去檢查sql_select這個選項,可以把SQL plugin 給移除掉或者加入dummy sql_select option,[/quote]

cameron

  • 可愛的小學生
  • *
  • 文章數: 2
    • 檢視個人資料
运行openwebmail出错?
« 回覆 #23 於: 2005-11-04 12:54 »
我下载楼上的提供的openwebmail RPM包在RHEL4上面安装完后,可运行时出下列错误:
Software error:
Can't locate Text/Iconv.pm in @INC (@INC contains: /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/5.8.5 /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.4/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.3/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.2/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.1/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.0/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.4/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.3/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.2/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.1/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.0/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl /var/www/cgi-bin/openwebmail) at /var/www/cgi-bin/openwebmail/shares/iconv.pl line 7.
BEGIN failed--compilation aborted at /var/www/cgi-bin/openwebmail/shares/iconv.pl line 7.

For help, please send mail to the webmaster (root@localhost), giving this error message and the time and date of the error.

Software error:
[Fri Nov  4 12:33:52 2005] openwebmail.pl: Can't locate Text/Iconv.pm in @INC (@INC contains: /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/5.8.5 /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.4/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.3/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.2/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.1/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.0/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.4/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.3/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.2/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.1/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.0/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl /var/www/cgi-bin/openwebmail) at /var/www/cgi-bin/openwebmail/shares/iconv.pl line 7.
[Fri Nov  4 12:33:52 2005] openwebmail.pl: BEGIN failed--compilation aborted at /var/www/cgi-bin/openwebmail/shares/iconv.pl line 7.
Compilation failed in require at /var/www/cgi-bin/openwebmail/openwebmail.pl line 47.

For help, please send mail to the webmaster (root@localhost), giving this error message and the time and date of the error.

请各位多指教, 先谢谢了.

dandy

  • 懷疑的國中生
  • **
  • 文章數: 76
    • 檢視個人資料
    • http://11way.com/joom 失憶小站--失憶防止記錄器
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #24 於: 2005-11-07 14:58 »
引述: "jason_linux"
請問一下:
為什麼我只要再 /etc/postfix/header_checks加上這一段敘述:
 /^Received:/ HOLD
就會無法收發信??


因為這行的用意是把postfix所收到的信,hold起來等待MailScanner檢查,您的MailScanner如果沒有正常啟動,就會沒辦法push信收發
http://11way.com/joom 失憶小站--失憶防止記錄器

dandy

  • 懷疑的國中生
  • **
  • 文章數: 76
    • 檢視個人資料
    • http://11way.com/joom 失憶小站--失憶防止記錄器
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #25 於: 2005-11-07 15:04 »
引述: "jason_linux"
另外還有一點請問一下:
因為MailScanner是使用/etc/MailScanner/spam.assassin.prefs.conf做參數參考,原本的spamassassin的local.cf設定檔有可以直接把垃圾信刪除的功能,那在spam.assassin.prefs.conf好像沒看到,不曉得該如何做到?


由於這樣設定都是以MailScanner為主軸來帶動spamassassin跟postfix,所以大部份的設定在MailScanner.conf就可以搞定,將這兩行看一下

Spam Actions = deliver
High Scoring Spam Actions = delete

把Spam Actions = deliver改成delete就可以達到您要的功能,另外,由於是評分制,所以您可以自行定義多少分是High Scoring spam,多少分是一般Spam,然後再由上面那兩行決定deliver或delete,一般來說,High Scoring spam幾乎百分百是垃圾了,所以delete是default.
http://11way.com/joom 失憶小站--失憶防止記錄器

boolean

  • 可愛的小學生
  • *
  • 文章數: 6
    • 檢視個人資料
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #26 於: 2005-11-09 16:53 »
安裝Sophie ,Sophie是一個使用 Sophos Anti Virus Library 的掃毒介面程式
===>會發生找不到libsavi的情況
我有做#ln -s libsavi.so.3.2.07.071 libsavi.so (版本號可能會有少許差異)
===>找不到問題^___^||

boolean

  • 可愛的小學生
  • *
  • 文章數: 6
    • 檢視個人資料
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #27 於: 2005-11-12 00:03 »
auto_learn 1
always_add_headers 0
dcc_add_header 1
score RCVD_IN_RSL 0
這幾個我把他remark,因為會造成spamassassin初始化時會有4個issue
我覺得這個跟我mailscanner常常把信丟在/var/mail/spool/hold有關

djs1101

  • 可愛的小學生
  • *
  • 文章數: 23
    • 檢視個人資料
Mail system for RHEL4.0 Total solution安裝筆記
« 回覆 #28 於: 2005-11-20 17:30 »
引述: "boolean"
安裝Sophie ,Sophie是一個使用 Sophos Anti Virus Library 的掃毒介面程式
===>會發生找不到libsavi的情況
我有做#ln -s libsavi.so.3.2.07.071 libsavi.so (版本號可能會有少許差異)
===>找不到問題^___^||


我的也是,也嘗試在加入
LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH
可是也是出現同樣的錯誤訊息,
為什麼?

tk0936

  • 可愛的小學生
  • *
  • 文章數: 3
    • 檢視個人資料
可詳細說明dcc連線的方法嗎?
« 回覆 #29 於: 2006-02-10 19:32 »
照您上面的安裝方法:
安裝 DCC
]#tar Zxvf dcc-dccd.tar.Z
]#cd dcc-dccd-1.2.72
]#./configure
]#make install
]#/usr/local/bin/cdcc 'info'
 
後:dcc無法連線:maillog會出現:
Feb 10 19:45:36 redhat4 dccproc[18324]: no working DCC servers dcc1.dcc-servers.net dcc2.dcc-servers.net dcc3.dcc-servers.net ... at 208.201.249.233 142.27.70.

可以詳細說明如何連上dcc的server!相信會造福很多人!謝謝!