- 論壇徽章:
- 4
|
本帖最后由 3645636 于 2010-07-30 18:45 編輯
之前一直在使用postfix,也嘗過(guò)qmail,一段時(shí)間內(nèi)被postfix精密的配置參數(shù)所吸引,還有qmail的簡(jiǎn)略、實(shí)用,但大為惱火的是,Amavisd-new,MailScanner均不支持qmail,Qmail差不多已經(jīng)名存實(shí)忙了!接著又試用了Sendmail,起初被網(wǎng)上妖魔化的議論所迷惑,什么漏洞百出,哪個(gè)著實(shí)嚇退一批人的"配置文件",其實(shí)也沒(méi)有哪么玄乎!openbsd、freebsd、RHEL、Centos缺省的MTA都是sendmail,如果真的哪么差勁,為什么這些著名的Unix/Linux都要缺省去安裝sendmail包!milter的概念最早出現(xiàn)在sendmail,還有DKIM,postfix也隨后加入了milter支持,但不是原生態(tài)的,很多milter插件需要sendmail libmilter函數(shù)庫(kù)。也就是說(shuō),postfix要使用milter插件,必須要安裝有sendmail,比喻milter-limit。
postfix配置簡(jiǎn)單明了,第三方插件也很多,Anti-Spam、Anti-Virus…… sendmail都支持這些,遺憾的是sendmail暫不支持DovecotSASL
這些我使用的milter有milter-limit、milter-clamc、spamass-milter- milter-clamc去搭配Clamav查殺病毒
復(fù)制代碼- spamass-milter去呼叫Spamassassin探測(cè)垃圾郵件!
復(fù)制代碼- milter-limit可以控制用戶(hù)的發(fā)信頻率,比喻每五分鐘一封
復(fù)制代碼 使用系統(tǒng)自帶的rpm安裝,包括sendmail-devel,sendmail-cf等一并安裝上- #yum install sendmail* cyrus-sasl* cyrus-imapd
復(fù)制代碼 當(dāng)然你也可以不讓sendmail呼叫哪么多milter,使用Amavisd-new或MailScanner,配置都非常簡(jiǎn)單明了!但amavisd-new搭配sendmail的話(huà),要使用amaivsd-new-milter!
缺省的Sendmail只監(jiān)聽(tīng)本地的回環(huán)地址,無(wú)法發(fā)揮他的功效,需要修改一下sendmail.mc,配置文件集中在/etc/mail/目錄,注意我們使用了lmtp來(lái)投遞,注釋掉procmail相關(guān)的配置行。procmail也可以去調(diào)用Spamassassin- define(`confAUTH_OPTIONS', `A')dnl
- TRUST_AUTH_MECH(`LOGIN PLAIN')dnl
- define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl
- define(`confLOCAL_MAILER', `cyrusv2')dnl
- define(`CYRUSV2_MAILER_ARGS', `FILE /var/lib/imap/socket/lmtp')dnl
- DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
- dnl MAILER(procmail)dnl
- MAILER(cyrusv2)dnl
復(fù)制代碼 修改/usr/lib/sasl2/Sendmail.conf,內(nèi)容如下:修改/etc/sysconfig/saslauthd,驗(yàn)證方式為shadow確保/etc/cyrus.conf文件存在以下內(nèi)容,sendmail會(huì)使用lmtp來(lái)投遞郵件,默認(rèn)啟用了pop3 imap pop3ssl imapssl,如果需要就打開(kāi),不需要注釋掉即可.- lmtpunix cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=1
復(fù)制代碼 /etc/imapd.conf內(nèi)容如下- configdirectory: /var/lib/imap
- partition-default: /var/spool/imap
- admins: cyrus root
- sievedir: /var/lib/imap/sieve
- sendmail: /usr/sbin/sendmail
- hashimapspool: true
- sasl_pwcheck_method: saslauthd
- sasl_mech_list: PLAIN LOGIN
- #tls_cert_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
- #tls_key_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
- #tls_ca_file: /etc/pki/tls/certs/ca-bundle.crt
- allowanonymouslogin: no
復(fù)制代碼 啟動(dòng)相應(yīng)的服務(wù)
#service cyrud-imapd start
#service sendmail start
#service saslauthd start
觀(guān)察sendmail是否啟用了sasl驗(yàn)證.- [root@mail mail]# telnet localhost 25
- Trying 127.0.0.1...
- Connected to localhost.localdomain (127.0.0.1).
- Escape character is '^]'.
- 220 mail.jazz.com ESMTP Sendmail 8.13.8/8.13.8; Thu, 29 Jul 2010 15:13:40 +0800
- ehlo localhost
- 250-mail.jazz.com Hello localhost.localdomain [127.0.0.1], pleased to meet you
- 250-ENHANCEDSTATUSCODES
- 250-PIPELINING
- 250-8BITMIME
- 250-SIZE
- 250-DSN
- 250-ETRN
- [color=RoyalBlue]250-AUTH LOGIN PLAIN[/color]
- 250-DELIVERBY
- 250 HELP
復(fù)制代碼 使用任意的MUA進(jìn)行發(fā)信和收信測(cè)試
圖像 4.png (47.62 KB, 下載次數(shù): 158)
下載附件
2010-07-30 17:24 上傳
現(xiàn)在安裝spamassassin、clamav、milter-limit
可以使用rpm,或源碼,我使用了源碼
spamassassin安裝,perl Makefile.pl make make install,也可以使用yum install spamassassin,方便起見(jiàn),編譯clamav時(shí)注意有個(gè)milter模塊,但我并沒(méi)有使用clamav自帶的milter,而是使用milter-clamc
我只簡(jiǎn)要的記錄一下安裝milter-limit,milter-clamc模塊!
下載地址:http://www.milter.info/ 需要要同時(shí)下載libsnert
libsnert-1.73.17 milter-clamc-0.6.20 milter-limit 0.14.86- tar zxf libsnert-1.73.17.tar.gz
- tar zxf milter-limit-0.14.tar.gz
- tar zxf milter-clamc-0.6.tar.gz
- cd com/snert/src/lib/
- ./configure
- make build
- cd ../milter-limit #編譯milter-limit
- ./configure
- make build
- make install
- cd ../milter-clamc #編譯milter-clamc
- ./configure
- make build
- make install
復(fù)制代碼 編譯安裝spamass-milter,拿來(lái)它來(lái)呼叫spamassassin- tar zxf spamass-milter-0.3.1.tar.gz
- cd spamass-milter-0.3.1
- ./configure
- make
- make install
- cp contrib/spamass-milter-redhat.rc /etc/init.d/spamass-milter
- chmod a+x /etc/init.d/spamass-milter
復(fù)制代碼 #這個(gè)角本需要修改一下,只需要改一下/spamass-milter的實(shí)際路徑即可
clamav用源碼或rpm都可以,注意這里并沒(méi)有使用clamav的milter,而是使用了第三方的milter來(lái)呼叫clamav,因?yàn)橹С謙ag,你自己安裝之后便知道哪個(gè)好用。- ##啟動(dòng)spamassassin
- ##啟動(dòng)clamd
- ##啟動(dòng)spamass-milter
- ##啟動(dòng)milter-limit
- ##啟動(dòng)milter-clamc
- [root@mail spamass-milter-0.3.1]# /etc/init.d/spamd start
- 啟動(dòng) spamd: [確定]
- [root@mail spamass-milter-0.3.1]# /etc/init.d/clamd start
- Starting Clam AntiVirus Daemon: [確定]
- [root@mail spamass-milter-0.3.1]# /etc/init.d/spamass-milter start
- Starting spamass-milter: [確定]
- [root@mail spamass-milter-0.3.1]# /etc/init.d/milter-limit start
- Starting milter-limit [ OK ]
- 啟動(dòng)milter-clamc我們需要單獨(dú)加入一些參數(shù),稍后你就明白,當(dāng)然,你使用源碼自帶的角本也沒(méi)問(wèn)題,但后果是如果發(fā)現(xiàn)病毒文件,整封信件就刪除了,這里的policy=tag,也就是給染毒的信件打上標(biāo)記,標(biāo)記的名稱(chēng)是**Virus**,會(huì)加入發(fā)信主題,也就是**Vrius** Subject,而Clamav自帶的milter卻將郵件刪除,沒(méi)這么多選項(xiàng)!policy的其它參數(shù)請(qǐng)參考文檔。
- [root@mail spamass-milter-0.3.1]# /usr/local/sbin/milter-clamc \
- policy=tag \
- subject-tag=[**Virus**] \
- run-group=milter \
- run-user=milter
復(fù)制代碼 查看所有相關(guān)的進(jìn)程是否啟動(dòng)
[root@mail spamass-milter-0.3.1]# ps -A|grep milter
31865 ? 00:00:00 spamass-milter
31893 ? 00:00:00 milter-limit
31970 ? 00:00:00 milter-clamc
[root@mail spamass-milter-0.3.1]# ps -A|grep spamd
31806 ? 00:00:01 spamd
31807 ? 00:00:00 spamd
31808 ? 00:00:00 spamd
[root@mail spamass-milter-0.3.1]# ps -A|grep clamd
31841 ? 00:00:03 clamd
[root@mail spamass-milter-0.3.1]# ps -A|grep lmtp
31913 ? 00:00:00 lmtpd
[root@mail spamass-milter-0.3.1]# ps -A|grep sendmail
26629 ? 00:00:00 sendmail
26637 ? 00:00:00 sendmail
[root@mail spamass-milter-0.3.1]# ps -A|grep imapd
1560 ? 00:00:00 imapd
1567 ? 00:00:00 imapd
1613 ? 00:00:00 imapd
1614 ? 00:00:00 imapd
1615 ? 00:00:00 imapd
26997 ? 00:00:00 imapd
27012 ? 00:00:00 imapd
27013 ? 00:00:00 imapd
27014 ? 00:00:00 imapd
31974 ? 00:00:00 imapd
31975 ? 00:00:00 imapd
31976 ? 00:00:00 imapd
現(xiàn)在相應(yīng)的milter 已經(jīng)安裝完畢,只需要找到socket的位置即可,
#調(diào)用spamassassin的milter
[root@mail ~]# ls /var/run/spamass.sock
/var/run/spamass.sock
#調(diào)用clamav的milter
[root@mail ~]# ls /var/run/milter/milter-clamc.socket
/var/run/milter/milter-clamc.socket
#控制發(fā)信頻率的milter
[root@mail ~]# ls /var/run/milter/milter-limit.socket
/var/run/milter/milter-limit.socket
現(xiàn)在只需要將這些milter的相關(guān)信息寫(xiě)出sendmail.mc即可!- vi /etc/mail/sendmail.mc
- INPUT_MAIL_FILTER(`milter-clamc',`S=unix:/var/run/milter/milter-clamc.socket, T=C:20s;S:20s;R:20s;E:5m')dnl
- INPUT_MAIL_FILTER(`milter-limit',`S=unix:/var/run/milter/milter-limit.socket, T=C:10s;S:10s;R:10s;E:10s')dnl
- INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass.sock, F=, T=C:15m;S:4m;R:4m;E:10m')dnl
- define(`confINPUT_MAIL_FILTERS', `milter-limit,milter-clamc,spamassassin')dnl
復(fù)制代碼 測(cè)試,首先用垃圾郵件代碼進(jìn)行測(cè)試!
圖像 5.png (61.72 KB, 下載次數(shù): 95)
下載附件
2010-07-30 18:16 上傳
接下來(lái)我們看一下郵件的源碼:
圖像 6.png (73.04 KB, 下載次數(shù): 108)
下載附件
2010-07-30 18:24 上傳
使用病毒郵件進(jìn)行測(cè)試
圖像 7.png (54.36 KB, 下載次數(shù): 107)
下載附件
2010-07-30 18:28 上傳
查看郵件源碼
圖像 8.png (33.83 KB, 下載次數(shù): 99)
下載附件
2010-07-30 18:34 上傳
接下來(lái),我們?cè)贉y(cè)試milter-limit
控制用戶(hù)地址是192.168.0.1 每一分鐘只能發(fā)信一封信件- vi /etc/mail/access
- #Add
- milter-limit-Connect:192.168.0.1 1/1m
- cd /etc/mail
- make restart
復(fù)制代碼 一分鐘之內(nèi)發(fā)多封信件將拒絕,只能等于或小于1
圖像 9.png (10.09 KB, 下載次數(shù): 109)
下載附件
2010-07-30 18:41 上傳
圖像 10.png (46.54 KB, 下載次數(shù): 88)
下載附件
2010-07-30 18:45 上傳
|
|