iT邦幫忙

0

新版 linux clamav的 for centos 5.4 sendmail的設定?

你好,我用sendmail

我是參考蔡由世神父的文章
http://www.savs.hcc.edu.tw/~chuavv/articles/ClamAV-tw.html

我用yum安裝 os centos5.4在atrpm下戴的

裡面有說一些clamav-milter的東西

service clamav-milter start

可是我好像沒有,好像和clamav綁在一起了
我只有 service clamav start

裡頭有說 在sendmail.mc加入這個
INPUT_MAIL_FILTER(clamav-milter',S=local:/var/run/clamav/clamav-milter.sock,F=, T=S:4m;R:4m')dnl
define(ConfINPUT\_MAIL\_FILTERS',clamav-milter')dnl

但我啟動clamav會出現找不到local:/var/run/clamav/clamav-milter.sock

所以我把它改成/var/run/clamav/clamd.socket
但也不行,

所以把它改成/var/run/clamav/clamd.pid
才能正常執行sendmial
不知這樣正不正確

因為clamav改版很大我上網找的文章很多設定都不太一樣

我也弄不清楚clamav-milter是什麼東西,可否了解的人詳加指導一下多謝了

4
sl6xx
iT邦研究生 5 級 ‧ 2010-07-15 16:42:05
最佳解答

您好,在您的原post有回過您...
因為已經很久不用sendmail,所以只能用推測的。那個mailter裡面提到的應該就是socket的作法。我不清楚atrpm包的clamav設定檔是如何,因為我們的clamav用的rpmforge是這個套件庫提供的。rpmforge的clamd會有一個/etc/clamd.conf檔,裡面會指定這個socket的位置。以我們的server為例:
LocalSocket /var/run/clamav/clamd.sock
看您要改clamd的socket位置還是要改那個milter的設定,兩者應該是要一致才行。

rpmforge的clamd會有一個/etc/clamd.conf檔,裡面會指定這個socket的位置。以我們的server為例:
LocalSocket /var/run/clamav/clamd.sock

您好我也有看到這個
但我有上面有說過我的作法

裡頭有說 在sendmail.mc加入這個
INPUT_MAIL_FILTER(clamav-milter',S=local:/var/run/clamav/clamav-milter.sock,F=, T=S:4m;R:4m')dnl
define(ConfINPUT\_MAIL\_FILTERS',clamav-milter')dnl

但我啟動clamav會出現找不到local:/var/run/clamav/clamav-milter.sock

所以我把它改成/var/run/clamav/clamd.socket
但也不行,

所以把它改成/var/run/clamav/clamd.pid
才能正常執行sendmial
不知這樣正不正確


蔡神父說的這個檔
/var/run/clamav/clamav-milter.sock
我在var/run/clamav/
下面找不到clamav-milter.sock這個檔案

所以想說改成相近的名稱試試
/var/run/clamav/clamd.socket
但執行sendmail會有錯誤

所以我才改/var/run/clamav/clamd.pid
就沒錯了
但我根本不知道clamd.pid是什麼東西,
所以根本也不知道到底做對了沒,有無防毒功能

看您要改clamd的socket位置還是要改那個milter的設定,兩者應該是要一致才行

其實我不懂clamd和miter和socket有何不同

我只知道clamd是clamav的執行檔,請指導一下,謝謝您了

4
jackwan
iT邦研究生 4 級 ‧ 2010-07-15 11:12:59

下面這一道步驟做了嗎? 因為您上面沒寫到..
rpm -Uvh clamav-server-0.96.1-1.i686.rpm clamav-0.96.1-1.i686.rpm clamav-milter-0.96.1-1.i686.rpm

我用yum 裝 atrpm的clamav
所以沒有這個步驟

6
逮丸逮丸
iT邦大師 1 級 ‧ 2010-07-15 22:09:51

參考一下我的舊文分享: How to Install and configure Clamav-milter on Fedora 7
再看了一下自己的舊設定,有關clamav-milter要注意的:

  1. 這是我所裝與 clam 相關的套件:

    <pre class="c" name="code">$ rpm -qa |grep clam
    clamav-update-0.92.1-1.fc7
    clamav-filesystem-0.92.1-1.fc7
    clamav-lib-0.92.1-1.fc7
    clamav-milter-0.92.1-1.fc7
    clamav-milter-sysv-0.92.1-1.fc7
    clamav-data-0.92.1-1.fc7

其實並沒裝到與 clamd 相關的套件,就能讓 clamav-milter 跑。

  1. 檢查一下 clamav-milter 套件裡的檔案分佈在何處?

    <pre class="c" name="code">$ rpm -ql clamav-milter
    /etc/clamd.d/milter.conf
    /usr/sbin/clamav-milter
    /usr/share/doc/clamav-milter-0.92.1
    /usr/share/doc/clamav-milter-0.92.1/INSTALL
    /usr/share/doc/clamav-milter-0.92.1/README.fedora
    /usr/share/man/man8/clamav-milter.8.gz
    /var/log/clamd.milter
    /var/run/clamav-milter
    /var/run/clamav-milter/clamav.sock

所以重要的是看 /etc/clamd.d/milter.conf 裡的 socket 設定,
才是 sendmail.mc 裡要指到的地方!
但是卻又不一定
是因為要看:

&lt;pre class="c" name="code">$ rpm -ql clamav-milter-sysv
/etc/rc.d/init.d/clamav-milter
/etc/sysconfig/clamav-milter

裡面的 socket 指到哪裡?
我的實例是 /etc/sysconfig/clamav-milter

&lt;pre class="c" name="code">CLAMAV_FLAGS="  --config-file=/etc/clamd.d/milter.conf \
                --quiet \
                --dont-wait \
                --noreject \
                --force-scan \
                --max-children=25 \
                --local \
                --outgoing \
                local:/var/run/clamav-milter/clamav.sock \
"

是在那最後一行定義 socket 執行在何處
sendmail.mc 裡的設定才一定要與此一致

3.以上是我舊的設定時的實際狀況,與蔡神父的環境稍有不同,
但基本上跟 clamd 有沒有開,甚至有沒有裝都沒有關係!

4.我也是利用 http://download.fedora.redhat.com/pub/fedora/linux/updates/testing/ 重新 Build rpm 才能有最新的 clamav 來安裝。

5.較新版本的環境沒裝過試過,但基本要注意的,就是那 sysconfig 裡的設定檔,才會是真正決定 milter 的 socket 所在。

看更多先前的回應...收起先前的回應...

新版應查

&lt;pre class="c" name="code">rpm -ql clamav-milter-upstart

您好感謝您的熱心,但您說的太深我看不懂

可否針對我的問題來做解答呢?

蔡神父說的這個檔
/var/run/clamav/clamav-milter.sock
我在var/run/clamav/
下面找不到clamav-milter.sock這個檔案

所以想說改成相近的名稱試試
/var/run/clamav/clamd.socket
但執行sendmail會有錯誤

所以我才改/var/run/clamav/clamd.pid
就沒錯了
但我根本不知道clamd.pid是什麼東西,
所以根本也不知道到底做對了沒,有無防毒功能

我現在應該要怎麼做才好?

/var/run/clamav/clamav-milter.sock
是在 /etc/init.d/clamav-milter start 後才會出現的。
至於 /var/run/clamav/clamav-milter.sock 定義是在哪邊,
樓上的一些回覆是以為在 /etc/clamd.conf 的裡面,這並不正確。
依上述討論,應是在 /etc/sysconfig/clamav-milter
您需用 less /etc/sysconfig/clamav-milter 來看一下內容,
是不是有 local:/var/run/clamav-milter/clamav.sock 類似的字樣?

您也需要了解一下基本有關 rpm 的指令,
才好知道 您所裝的 rpm 套件,
都把檔案裝在什麼地方,再去看清楚設定。

雖然同樣是 clamav 的相關套件,
但各自做出的 rpm 的內容或所指到的設定檔會各有不同的情況。

rpm -qa |grep clam
是要查裝了哪些 clam 開頭的套件,
您最好貼出執行顯示的結果。

然後在 rpm -ql 各別套件名稱,
才能看出到底是哪一個套件是與 clamav-milter 有關,
並看其設定檔在何處?內容為何?
才容易真正解決問題。

def123452002提到:
/var/run/clamav/clamd.pid

這個檔案只是記錄啟動 clamd 時,該工作的 process id,
處理程序的流水編號是什麼,
通常是在 停止、重啟動時 /etc/init.d/clamd stop 時,
讀此檔案來結束該程序用的。

我要發表回答

立即登入回答