CentOS 6 Mail Server設定(四) MailScanner & Clamav 安裝

如果需要過濾伺服器端的病毒信件,可以安裝MailScanner 加上 Clamav 達成此功能

MailScanner 官方網站

http://www.mailscanner.info/

Clamav 官方網站

http://www.clamav.net/lang/en/

安裝MailScanner

目前安裝的版本為 :  MailScanner-4.84.3-1.rpm.tar.gz

所需套件可利用下列指令安裝

yum install perl-Archive-Zip perl-DBI perl-DBD-SQLite perl-Filesys-Df perl-Net-CIDR perl-OLE-Storage_Lite  perl-Sys-Hostname-Long perl-Sys-SigAction perl-MIME-tools gcc

解壓縮  tar zxvf  MailScanner-4.84.3-1.rpm.tar.gz

3.  切換到  MailScanner-4.84.3-1 目錄

4.  ./install.sh ( 開始安裝MailScanner ,需要一點時間)

安裝好 MailScanner 後 使用 sendmail 就不需特別設定

設定開機自動啟動MailScanner  —>  指令 chkconfig MailScanner on ( 記得要把 postfix 設定開機不啟動)

5.MailScanner和postfix搭配使用時所需的設定:

修改 /etc/postfix/main.cf 裡面 這一行—-> header_checks = regexp:/etc/postfix/header_checks 將#註解拿掉

修改 /etc/postfix/ header_checks 加上這一行 ——–> /^Received:/ HOLD (這是為了讓Postfix收進來的mail 先儲存在某一個Directory裡面,等待MailScanner 來進行Scan )

修改 /etc/MailScanner/MailScanner.conf 如下:

Run As User = postfix—–>設定執行postfix 的使用者名稱

Run As Group = postdrop—–>設定執行postfix 的群組名稱

Incoming Queue Dir = /var/spool/postfix/hold—->內送郵件的佇列目錄,設定為postfix目前的佇列目錄下的hold目錄

Outgoing Queue Dir = /var/spool/postfix/incoming—>外送郵件的佇列目錄,設定為postfix目前的佇列目錄下的incoming目錄

MTA = postfix—->設定mailscanner 和 postfix 搭配使用

ps:可利用下面這一串指令查詢

postconf|grep -E ‘mail_owner|setgid_group|queue_directory’ —> 執行這一段指令

mail_owner = postfix —>這是執行postfix 的使用者名稱

queue_directory = /var/spool/postfix —>這是postfix的佇列目錄

setgid_group = postdrop —>這是執行postfix 的群組名稱

修改權限:

chown postfix.postdrop /var/spool/MailScanner/incoming
chown postfix.postdrop /var/spool/MailScanner/quarantine

以下為CentOS 6.x 才需要修改

(如果不修改經小弟測試,雖然可以正常啟動mailscanner但是無法做掃描郵件的動作)

修改 /usr/sbin/MailScanner 第一行最後加上 -U (如下)

#!/usr/bin/perl -I/usr/lib/MailScanner -U

安裝掃毒軟體 clamav

1. 下載 rpmforge-release

http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/

2.安裝 rpmforge-release

rpm -Uvh rpmforge-release-0.5.2-1.el6.rf.i686.rpm

利用 yum install clamd 安裝即可

更新病毒碼指令 —> freshclam

設定MailScanner 使用的掃描軟體 修改 /etc/MailScanner/MailScanner.conf

Virus Scanners = auto  改為 Virus Scanner = clamav

再重新啟動MailScanner 即可

下載EICAR病毒測試 ,若附件有病毒就會移除並且收到訊息(如下圖)

virus

 

參考網站:

MIS的背影:  fedora10-postfix-mail系統筆記

國外網站 : http://www.linuxmail.info/add-epel-centos-6/

並感謝  Jamyy  站長提供的解決方法(如下網址)

http://comments.gmane.org/gmane.mail.virus.mailscanner/77646



本篇瀏覽人數: 4549
本篇發表於 Cent OS篇。將永久鏈結加入書籤。

CentOS 6 Mail Server設定(四) MailScanner & Clamav 安裝 有 12 則回應

  1. 小黃 說道:

    想請問一下關於
    /etc/postfix/header_check/^Received:/HOLD
    這句的問題

    小弟我加上這句之後(是指後面的received:/hold),
    並且後續開啓了 mailscanner 與其他程式,
    所有寄件,他一直都給我扣留在/var/spool/postfix/maildrop 內
    不肯將扣留的郵件轉交給mailscanner 那邊檢查,進行 防毒與spam 的檢測
    這邊卡了我很久,一直搞不懂…

    每寄一次信,maildrop 就多一個文件(被扣留的信件)
    唯有把received:/hold #掉 之後,才給我一口氣把信件都掉到目標收件夾裡

    另外網域方面
    寄件者與收件者的自定義網址
    myhostname,mydomain 我也有修改
    修改後
    居然變成…寄件要寫上 1@cimfyp.hk 才寄得出去
    但是收件人卻看到寄件人是 1@fyp.local

    • 小黃 說道:

      = =看來是我搞錯了received:/hold 的用法
      應該是編輯 /etc/postfix/header_checks 才對

      但是網域還是搞不懂

      • 榮哥 說道:

        您好
        或許您可以檢查一下面的設定 (/etc/postifx/main.cf)
        myhostname:設定主機名稱
        mydestination :設定 能夠收信的主機名稱

    • 榮哥 說道:

      您好
      應該先編輯 /etc/postfix/main.cf 將 header_checks 功能打開
      然後在 編輯 /etc/postfix/header_checks 加上 Received: received:/hold讓postifx 接收到的郵件先存在/var/spool/postifx/hold 目錄等待mailscanner掃描
      然後在/etc/MailScanner/MailScanner.conf 中有設定 Incoming Queue = /var/spool/postfix/hold
      這樣應該就可以了

  2. 阿杰 說道:

    大大您好,看了您的文章,興起了小弟來架設mail server的興趣,但是目前遇到了個瓶頸,我都依照您的文章指示,一步一步做,在設定好MailScanner後要啟動MailScanner都正常,但是只要用restart就會出現錯誤…..
    # service MailScanner restart
    Shutting down MailScanner daemons:
    MailScanner: [ 失敗 ]
    incoming postfix: [ 確定 ]
    outgoing postfix: [ 確定 ]
    Waiting for MailScanner to die gracefully dead.
    Starting MailScanner daemons:
    incoming postfix: [ 確定 ]
    outgoing postfix: [ 確定 ]
    MailScanner: [ 確定 ]

    不知是哪裡出了問題,再麻煩大大幫忙解答,謝謝您

    • 榮哥 說道:

      您好

      可能要先檢查一下 再重新啟動mailscanner後,maillog 有沒有怪怪的訊息
      在著手去排除此問題

      • 阿杰 說道:

        目前的作法已經將有postdrop的地方改成postfix就解決了,
        例如:
        1. Run As Group = postdrop —> 改成postfix
        2. chown postfix.postdrop /var/spool/MailScanner/incoming
        chown postfix.postdrop /var/spool/MailScanner/quarantine
        將postdrop改成postfix就沒有錯誤訊息了,請問榮哥,postdrop跟postfix有啥不一樣嗎?謝謝

  3. BillyLin 說道:

    我也是遇到上面MailScanner無法啟動的訊息,照上面的做法還是一樣無法啟動,,怎麼辦?

  4. Snack 說道:

    榮哥您好:
    想請問,我把^Received:/HOLD加到到header_checks ,也有修改/usr/sbin/MailScanner(#!/usr/bin/perl -I/usr/lib/MailScanner -U),信件是有轉到/var/spool/postfix/hold,但MailScanner好像沒動作一樣,信件就卡在hold裡面出不去了,這有可能是什麼問題呢?

發表迴響

您的電子郵件位址並不會被公開。 必要欄位標記為 *

*

您可以使用這些 HTML 標籤與屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>