作者 主題: [分享]MailScanner-4.31.6-1 + clamav-0.75 + SpamAssassin-2.63 ( for Mandrake9.1 with postfix)  (閱讀 9647 次)

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

shalitee

  • 懷疑的國中生
  • **
  • 文章數: 55
    • 檢視個人資料
環境是Mandrake9.1+postfix
以下是依照目前環境所安裝的步驟...
所以有些安裝套件及錯誤訊息並不一定適用於所有環境
-------------------------------------------------------------

1.安裝clamav

# tar zxvf clamav-0.75.tar.gz
# cd clamav-0.75
# useradd clamav
# vi /etc/passwd
  修改把 clamav 的 shell 改成 /sbin/nologin
# ./configure --prefix=/usr     #安裝路徑設為/usr ,可自行定義.
# make
# make install
# vi /usr/etc/clamav.conf
  修改成下列設定
----------------------------------------------------------------
  #Example                            #把 Example 那行 mark 掉
  LogFile /tmp/clamd.log              #記得/tmp/clamd.log權限要設成writable
  DatabaseDirectory /usr/share/clamav
  LocalSocket /tmp/clamd
  StreamSaveToDisk                    #讓clamav可以掃描壓縮檔
  User clamav
  ScanMail                            #讓clamav可以掃描郵件
  ScanArchive
-----------------------------------------------------------------
# clamscan ./                #測試看看

# vi /etc/rc.d/rc.local
  增加
    /usr/sbin/clamd          #開機啟動clamd deamon

接下來設定病毒碼自動更新
# touch /var/log/clam-update.log
# chmod 600 /var/log/clam-update.log
# chown clamav /var/log/clam-update.log
# vi /usr/etc/freshclam.conf
   修改成下列設定
    UpdateLogFile /var/log/clam-update.log
# crontab -u clamav -e
   增加下列設定
   9 * * * * /usr/bin/freshclam -v     #每小時九分的時候由clamav使用者執行freshclam


2.安裝MailScanner

2-1.編譯MailScanner

# tar zxvf MailScanner-4.31.6-1.rpm.tar.gz
# cd MailScanner-4.31.6-1
# ./install.sh
# ............error!
編譯到最後會出現error無法進行安裝,此時需另外安裝三個套件,需依照順序安裝,否則會有相依性的問題

# rpm -ivh perl-IO-stringy-2.108-4mdk.noarch.rpm
# rpm -ivh perl-MailTools-1.58-1mdk.noarch.rpm
# rpm -ivh perl-MIME-tools-5.411-4mdk.noarch.rpm

安裝完上述套件之後,再重新執行
# ./install.sh

此時安裝完MailScanner,如有啟動錯誤訊息,請先跳過稍後再討論.

2-2.設定postfix以支援mailscanner.

# service postfix stop
# cp -rp /etc/postfix /etc/postfix.in
# vi /etc/postfix.in/main.cf    
   a.在頂端增加一行 defer_transports = smtp local virtual relay
   b.尋找
              queue_directory = /var/spool/postfix     #修改前
       改成
              queue_directory = /var/spool/postfix.in  #修改後
# cp -rp /var/spool/postfix /var/spool/postfix.in
# vi /etc/postfix/master.cf
   尋找
           smtp   inet   n   -   y   -   -   smtpd        #修改前
    在此行加上mark記號
        #smtp   inet   n   -   y   -   -   smtpd        #修改後

2-3.設定Mailscanner

修改/etc/MailScanner/MailScanner.conf 成下列設定
-------------------------------------------------------
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix.in/deferred
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix
--------------------------------------------------------

修改/etc/sysconfig/MailScanner
MTA = postfix

修該權限讓postfix可以寫入
# chown postfix.postfix /var/spool/MailScanner/incoming
# chown postfix.postfix /var/spool/MailScanner/quarantine

2-4.重新啟動Mailscanner

# service MailScanner start
會出現下列錯誤訊息    
# Starting MailScanner daemons:
         incoming postfix: [  OK  ]
         outgoing postfix: [  OK  ]
         MailScanner:       Can't locate Net/CIDR.pm in @INC (@INC contains: /usr/lib/MailScanner /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl . /usr/lib/MailScanner) at /usr/lib/MailScanner/MailScanner/Config.pm line 34.BEGIN failed--compilation aborted at /usr/lib/MailScanner/MailScanner/Config.pm line 34.
Compilation failed in require at /usr/sbin/MailScanner line 42.
BEGIN failed--compilation aborted at /usr/sbin/MailScanner line 42.
[  OK  ]

這是因為缺少了Net-CIDR-0.10.tar.gz,故安裝該套件
# tar zxvf Net-CIDR-0.10.tar.gz
# cd Net-CIDR-0.10
# perl Makefile.PL
# make
# make install

後續繼續啟動Mailscanner還是會有因為缺少套件而發生錯誤..所以直接將所有所需套件安裝完成
# perl -MCPAN -e shell
cpan>先依照提示訊息安裝新版CPAN   (自行參考訊息安裝)
cpan>install Archive::Zip                 (安裝套件)
cpan>install Convert::BinHex          (安裝套件)
cpan>quit                                      (離開cpan)

# service MailScanner start
到此應該可以正確起動MailScanner,並測試收發信是否正常

3.安裝SpamAssassin

# perl -MCPAN -e shell
cpan> install Mail::SpamAssassin

安裝完成後,依照自己環境編輯/etc/mail/spamassassin/local.cf
範例:
----------------------------
allow_user_rules 1
rewrite_subject 1
subject_tag *SPAM*
required_hits 5.0
----------------------------

並在/etc/建立procmailrc 檔案...並依照自己環境編輯/etc/procmailrc
範例:
-----------------------------------------------------------------------------
:0fw
* < 200000                     #信件小於200K才進行掃描
| /usr/bin/spamc               #利用spam deamon呼叫spamassassin,執行速度快
-----------------------------------------------------------------------------

最後編輯/etc/postfix/main.cf,增加一行
mailbox_command = /usr/bin/procmail -f- -a "$USER"

# vi /etc/rc.d/rc.local
  增加
    /usr/bin/spamd -d -x -u nobody &     #開機時啟動spamd deamon

4.整合三者統一由mailscanner執行

編輯/etc/MailScanner/MailScanner.conf
修改為下列設定
-----------------------------------------------
Virus Scanning = yes
Virus Scanners = clamav
Use SpamAssassin = yes
-----------------------------------------------

編輯/usr/lib/MailScanner/clamav-autoupdate
修改為下列設定
$PackageDir = shift || "/usr/local";    #修改前
$PackageDir = shift || "/usr";          #修改後

****************************************************************
以上設定皆為基本設定..基本上是可以跑起來成功的
若要細部設定,就要自己慢慢去修改那些configue檔
--------------------------
小羽晴好可愛~~

fyfcc

  • 懷疑的國中生
  • **
  • 文章數: 41
    • 檢視個人資料
我在 cpan> install Convert::BinHex 出現以下錯誤不能繼續... 怎麼辦?
代碼: [選擇]
Running install for module Convert::BinHex
Running make for E/ER/ERYQ/Convert-BinHex-1.119.tar.gz
  Is already unwrapped into directory /root/.cpan/build/Convert-BinHex-1.119
  Has already been processed within this session
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl5.8.3 "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/comp2bin....Can't locate package Exporter for @Checker::ISA at t/comp2bin.t line 3.
Undefined subroutine &main::check called at t/comp2bin.t line 75.
t/comp2bin....dubious                                                        
        Test returned status 255 (wstat 65280, 0xff00)
Scalar found where operator expected at (eval 153) line 1, near "'int'  $__val"
        (Missing operator before   $__val?)
DIED. FAILED tests 1-9
        Failed 9/9 tests, 0.00% okay
Failed Test  Stat Wstat Total Fail  Failed  List of Failed
-------------------------------------------------------------------------------
t/comp2bin.t  255 65280     9   18 200.00%  1-9
Failed 1/1 test scripts, 0.00% okay. 9/9 subtests failed, 0.00% okay.
make: *** [test_dynamic] Error 2
  /usr/bin/make test -- NOT OK
Running make install
  make test had returned bad status, won't install without force

cpan>

shalitee

  • 懷疑的國中生
  • **
  • 文章數: 55
    • 檢視個人資料
引述: "fyfcc"
我在 cpan> install Convert::BinHex 出現以下錯誤不能繼續... 怎麼辦?
代碼: [選擇]
Running install for module Convert::BinHex
Running make for E/ER/ERYQ/Convert-BinHex-1.119.tar.gz
  Is already unwrapped into directory /root/.cpan/build/Convert-BinHex-1.119
  Has already been processed within this session
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl5.8.3 "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/comp2bin....Can't locate package Exporter for @Checker::ISA at t/comp2bin.t line 3.
Undefined subroutine &main::check called at t/comp2bin.t line 75.
t/comp2bin....dubious                                                        
        Test returned status 255 (wstat 65280, 0xff00)
Scalar found where operator expected at (eval 153) line 1, near "'int'  $__val"
        (Missing operator before   $__val?)
DIED. FAILED tests 1-9
        Failed 9/9 tests, 0.00% okay
Failed Test  Stat Wstat Total Fail  Failed  List of Failed
-------------------------------------------------------------------------------
t/comp2bin.t  255 65280     9   18 200.00%  1-9
Failed 1/1 test scripts, 0.00% okay. 9/9 subtests failed, 0.00% okay.
make: *** [test_dynamic] Error 2
  /usr/bin/make test -- NOT OK
Running make install
  make test had returned bad status, won't install without force

cpan>


我的是perl5.8.0版...跟你的不太相同..
不知道是否有影響??
或者直接去下載Convert-BinHex-1.119.tar.gz回來自己編譯..
看看會不會有錯誤.. 或者錯誤在哪裡...
--------------------------
小羽晴好可愛~~

fyfcc

  • 懷疑的國中生
  • **
  • 文章數: 41
    • 檢視個人資料
小弟想問, /etc/postfix , /etc/postfix.in 和 /var/spool/postfix , /var/spool/postfix.in 是必定要的嗎? 那我是否以後每次設定 main.cf 和 master.cf 都要兩個檔案夾改呢?
還有就是, 我是否以後都只起動 MailScanner , 不用單獨起動 postfix 呢? 因為我打 #postfix reload 時,  system 說 postfix hasn't been start.

謝謝!!

shalitee

  • 懷疑的國中生
  • **
  • 文章數: 55
    • 檢視個人資料
引述: "fyfcc"
小弟想問, /etc/postfix , /etc/postfix.in 和 /var/spool/postfix , /var/spool/postfix.in 是必定要的嗎? 那我是否以後每次設定 main.cf 和 master.cf 都要兩個檔案夾改呢?
還有就是, 我是否以後都只起動 MailScanner , 不用單獨起動 postfix 呢? 因為我打 #postfix reload 時,  system 說 postfix hasn't been start.

謝謝!!


檔案是必要的...
你可以去研究一下 MailScanner運作的流程...

http://www.ossii.com.tw/newsletter/ossii_newsletter_4.htm
http://www.vbird.org/somepaper/20030905-mailscanner-conf.htm
--------------------------
小羽晴好可愛~~

shalitee

  • 懷疑的國中生
  • **
  • 文章數: 55
    • 檢視個人資料
引述: "fyfcc"
小弟想問, /etc/postfix , /etc/postfix.in 和 /var/spool/postfix , /var/spool/postfix.in 是必定要的嗎? 那我是否以後每次設定 main.cf 和 master.cf 都要兩個檔案夾改呢?
還有就是, 我是否以後都只起動 MailScanner , 不用單獨起動 postfix 呢? 因為我打 #postfix reload 時,  system 說 postfix hasn't been start.

謝謝!!


補充一點....
postfix是要先自行啟動的..
試試看打$ service postfix restart
--------------------------
小羽晴好可愛~~

damon

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 4227
    • 檢視個人資料
    • http://blog.damon.tw/
當然是不一定
我之前就有講過,在postfix 1.x版才需要跑兩個postfix起來,在2.x版用hold功能就可以做到了,不需要跑兩個

fyfcc

  • 懷疑的國中生
  • **
  • 文章數: 41
    • 檢視個人資料
引述: "damon"
當然是不一定
我之前就有講過,在postfix 1.x版才需要跑兩個postfix起來,在2.x版用hold功能就可以做到了,不需要跑兩個


請指教!!!

damon

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 4227
    • 檢視個人資料
    • http://blog.damon.tw/
你搜尋找一下postfix MailScanner
有人貼過中文的教學,照舊版的官方網頁上的作法作的
再對照一下現在的官方網頁上的作法差別在哪就知道了
需要注意的是你自己知道你用的postfix是哪一版的

borrr

  • 可愛的小學生
  • *
  • 文章數: 15
    • 檢視個人資料
使用hold的方式,會使postfix多寫不少紀錄
查資料似乎沒提到有什麼方法可以不使hold寫syslog
請問有人知道嗎
謝謝

redfox

  • 懷疑的國中生
  • **
  • 文章數: 33
    • 檢視個人資料
引述: "shalitee"

並在/etc/建立procmailrc 檔案...並依照自己環境編輯/etc/procmailrc
範例:
-----------------------------------------------------------------------------
:0fw
* < 200000                     #信件小於200K才進行掃描
| /usr/bin/spamc               #利用spam deamon呼叫spamassassin,執行速度快
-----------------------------------------------------------------------------

最後編輯/etc/postfix/main.cf,增加一行
mailbox_command = /usr/bin/procmail -f- -a "$USER"

# vi /etc/rc.d/rc.local
  增加
    /usr/bin/spamd -d -x -u nobody &     #開機時啟動spamd deamon


請問是否應該是 -f 而不是 -f-
mailbox_command = /usr/bin/procmail -f -a "$USER"
另外 deamon 應該是 daemon
謝謝!
edFox Wrote. (=^ω^=)

shalitee

  • 懷疑的國中生
  • **
  • 文章數: 55
    • 檢視個人資料
引述: "redfox"
引述: "shalitee"

並在/etc/建立procmailrc 檔案...並依照自己環境編輯/etc/procmailrc
範例:
-----------------------------------------------------------------------------
:0fw
* < 200000                     #信件小於200K才進行掃描
| /usr/bin/spamc               #利用spam deamon呼叫spamassassin,執行速度快
-----------------------------------------------------------------------------

最後編輯/etc/postfix/main.cf,增加一行
mailbox_command = /usr/bin/procmail -f- -a "$USER"

# vi /etc/rc.d/rc.local
  增加
    /usr/bin/spamd -d -x -u nobody &     #開機時啟動spamd deamon


請問是否應該是 -f 而不是 -f-
mailbox_command = /usr/bin/procmail -f -a "$USER"
另外 deamon 應該是 daemon
謝謝!


是-f-沒錯...
感謝指正... :lol:
--------------------------
小羽晴好可愛~~