分享
 
 
 

Postfix + Amavisd-new + SpamAssassin + ClamAV

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

Descriptions:

一年之前我在 Mail Server 加裝 Virus 跟 Spam 的過濾機智,Virus 部份表現非常優異,幾乎替我擋掉了所有的病毒郵件,面對病毒信件的痛苦指數全部消失,而 Spam 卻誤擋了一些正常信,親朋好友報怨連連,在面對 Spam 功夫還未到家的狀態下,即決定停掉 Spam 部份的阻擋,只留下 ClamAV 的 Virus 過濾阻檔,近一年來網路上病毒信幾乎都被我的病毒過濾阻檔了,可是廣告信卻是氾濫,痛苦指數不小於病毒信件,所以下定決心好好研究廣告信之獵殺軟體 SpamAssassin ,網路上 Amavisd-new + SpamAssassin + ClamAV 的文章真的不是很多,大部份都是英文的,看起來有點吃力,不過為了防堵 Spam 小弟還是努力的找尋 Google 中可用的資料,以下是我個人整理的資料以方便日後使用學習及查詢。

Environment :

硬體: i386 PC Intel P3 500

記憶體網卡: 256M RAM + 一片 Intel 網卡

作業系統: FreeBSD 5.3 Release

假設 IP 為:88.88.88.88

網域名稱為:ntut.idv.tw

Starting:

1. Postfix:

1-1%26#8231;介紹:

Postfix:http://www.postfix.org/ MTA ( Mail Transfer Agent ) 是一套安全及設定便利都優於 sendmail 的郵件伺服器軟體。

1-2%26#8231;設定檔說明:

Postfix 於 FreeBSD Server 中用修改到的設定檔包括 main.conf、master.conf,開機啟動檔設定為 postfix.sh 設在 /usr/local/etc/rc.d 下,Mail 的 DB 檔為 /usr/local/etc/postfix 下的 aliases 所產生,執行 #postalias aliases 即會產生 aliases.db 檔。管理 postfix 指令 #postsuper -d 將某一封 queue message 刪掉 #postsuper -d ALL 刪除所有的 queue #postsuper -sv 檢查和修復 postfix 的信件檔。

1-3%26#8231;實際設定:

#vi /usr/local/etc/postfix/main.conf

# Main Configure

myhostname = ntut.idv.tw

mydomain = ntut.idv.tw

mynetworks = 88.88.88.88/26, 127.0.0.0/8

alias_maps = hash:/usr/local/etc/postfix/aliases

mail_spool_directory = /var/mail

# Other configuertion

disable_vrfy_command = yes

mailbox_size_limit = 204800000

smtpd_recipient_limit =300

message_size_limit = 30720000

# ClamAV

content_filter = smtp-amavis:[127.0.0.1]:10024

#vi /usr/local/etc/postfix/master.conf

smtp-amavis unix - - n - 2 smtp

-o smtp_data_done_timeout=1200

-o disable_dns_lookups=yes

127.0.0.1:10025 inet n - n - - smtpd

-o content_filter=

-o local_recipient_maps=

-o relay_recipient_maps=

-o smtpd_restriction_classes=

-o smtpd_client_restrictions=

-o smtpd_helo_restrictions=

-o smtpd_sender_restrictions=

-o smtpd_recipient_restrictions=permit_mynetworks,reject

-o mynetworks=127.0.0.0/8

-o strict_rfc821_envelopes=yes

#vi /usr/local/etc/postfix/aliases

virusalert: root

spamalert: root

#vi /usr/local/etc/rc.d/postfix.sh

case "$1" in

start)

/usr/local/sbin/postfix start /dev/null 2%26amp;1

echo -n ' Postfix'

;;

stop)

/usr/local/sbin/postfix stop /dev/null 2%26amp;1

echo -n ' Postfix stoped'

;;

reload)

/usr/local/sbin/postfix reload /dev/null 2%26amp;1

echo -n ' Postfix reloaded'

;;

-h)

echo "Usage: `basename $0` { start | stop | reload }"

;;

*)

/usr/local/sbin/postfix $1 /dev/null 2%26amp;1

echo -n ' Postfix $1'

;;

esac

2. Amavisd-new:

2-1%26#8231;簡介:

Amavisd-new:http://www.ijs.si/software/amavisd/ 是一支具有套高性能的郵件介面軟體,它就是介於:郵件伺服器軟體 ( 如:sendmail、postfix ) 及 內容檢查軟體 ( 如:ClamAV、SpamAssassin ) 之間的橋樑軟體,其角色就扮演就像是兩者之間的溝通者。 Amavisd-new 本身也是個簡易的 MTA,也可以拿它來架設一個獨立的 Mail Gateway,提供多台 Mail Server 做信件過濾。除此之外,Amavisd-new 還可以搭配十多種防毒程式來做病毒信的過濾。

2-2%26#8231;設定檔說明:

Amavisd-new 於 FreeBSD 中的設定檔位置在 /usr/local/etc/amavisd.conf 裡,開機啟動檔為 #vi /etc/rc.conf 中加入 amavisd_enable="YES" 即可。隔離的信件將會被存在 /var/virusmails 目錄中,如果想即時得看到 Amavisd-new 的運作結果,或若因任何原因而無法啟動 Amavisd-new,您可以先暫時關閉 Amavisd-new #/usr/local/etc/rc.d/amavisd.sh stop,並以 Debug 模式來啟動 Amavisd-new: #amavisd debug

/usr/local/etc/amavisd.conf 之說明:

D_PASS:不做任何處理,直接傳送給收件者。

D_DISCARD:信件不會傳送給寄件者及收件者。

D_BOUNCE:不傳送給收件者,除了定義在 $viruses_that_fake_sender_re 病毒名稱外的信件,amavisd-new 皆會傳送 DSN 訊息給寄件者。

D_REJECT:不傳送給收件者,寄件者會收拒絕傳送的訊息。

$sa_auto_whitelist = 1; # 啟用自動學習白名單 White List

$sa_mail_body_size_limit = 200*1024; # 超過某個特定大小的郵件就不經過 SpamAssassin 的掃瞄。

$sa_tag_level_deflt = 4.0; # 超過這個分數標準者,才視為垃圾郵件打分數。

$sa_tag2_level_deflt = 6.3; # 超過這個分數標準者,才允許在郵件標頭加入 Spam 資訊。

$sa_kill_level_deflt = 10 ; # 超過這個標準者,就直接將信件備份後刪除。

2-3%26#8231;實際設定:

#vi /usr/local/etc/amavisd.conf

$MYHOME = '/var/amavis';

$mydomain = 'ntut.idv.tw';

$daemon_user = 'vscan';

$daemon_group = 'vscan';

$log_level = 0;

$DO_SYSLOG = 0; # 由 1 改 0

$sa_spam_subject_tag = '***SPAM*** ';

$sa_spam_modifies_subj = 1;

$virus_admin = "virusalert\@$mydomain";

$spam_admin = "spamalert\@$mydomain";

$mailfrom_notify_admin = "virusalert\@$mydomain";

$mailfrom_notify_recip = "virusalert\@$mydomain";

$mailfrom_notify_spamadmin = "spamalert\@$mydomain";

$inet_socket_bind = '127.0.0.1';

$forward_method = 'smtp:127.0.0.1:10025';

$notify_method = $forward_method;

$inet_socket_port = 10024;

$max_servers = 2;

$final_virus_destiny = D_BOUNCE; # (defaults to D_DISCARD)

$final_banned_destiny = D_BOUNCE; # (defaults to D_BOUNCE)

$final_spam_destiny = D_BOUNCE; # (defaults to D_BOUNCE)

$final_bad_header_destiny = D_PASS; # (defaults to D_PASS)

['Clam Antivirus-clamd',

\%26amp;ask_daemon, ["CONTSCAN {}\n", '/tmp/clamd'],

qr/\bOK$/, qr/\bFOUND$/,

qr/^.*?: (?!InfectedArchive)(.*) FOUND$/ ],

3. SpamAssassin:

3-1%26#8231;介紹:

SpamAssassin ( SA ):http://www.spamassassin.org 最近看到 SpamAssassin 它已經納入 Open-Source Apache SpamAssassin 的計劃中,所以網址也更改為:http://spamassassin.apache.org。使用 FreeBSD Ports 安裝完 Amavisd-new 之後就會自動加裝 SpamAssassin,的確蠻方便,以目前垃圾郵件過濾軟體來看, Spamssassin 應該是現今 Open-Source 中最強之首選。

SpamAssassin 它是利用 Perl 來進行文字分析以達到過濾垃圾郵件之目的。它的判斷方式是藉由評分方式,若這封郵件符合某種特徵,則加以評分。最後加總總得分若高於我們制定的標準,則判定為垃圾郵件,即進入垃圾信處理過程。SA 也內建了各種條件式 Rule-based,來為信件「評分」,判別是否為垃圾郵件。我們可自訂 Rule 讓 Spam Filter 更精準。

SpamAssassin 內建了一個自動學習引擎,採用知名的 Bayesian 貝氏運算法,只要經過適當的訓練,就能有很好的效果。為了彌補不足的地方,SpamAssassin 還可以搭配 DCC 與 Razor 這兩個分散式垃圾郵件特徵資料庫來使用。在最近剛發行的 3.0.0 版,更加入了 Sender Policy Framework 與 Spam URI Realtime Blocklists 的支援,這兩項功能對於防堵垃圾郵件將有更大的助益。

3-2%26#8231;設定檔說明:

SpamAssassin 於 FreeBSD 中設定檔位置在 /usr/local/etc/mail/spamassassin/local.cf 裡,這個設定檔屬於全域的 spam 設定,也就是系統管理員對整個 Mail Server 上訂定的 Rules ,除此之外也可以使用個人專屬的 Spam 設定,其設定檔是放於個人的家目錄下的 ~/.spamassassin/user_prefs 這個檔。若於想於開機時同時啟動 SapmAssassin, 請於 #vi /etc/rc.conf 中加入 spamd_enable="YES" 即可。http://www.yrex.com/spam/spamconfig.php 這個網站的 php 程式可幫你產生 local.cf 檔,產生後的 local.cf 直接 copy 到你的 local.cf 內即可。在預設上,spamd 會監聽TCP 783 這個 Port。

自訂 Mail::SpamAssassin Rules,每一條 rule 都由三部分構成:target、describe 以及 score。

target: 指定比對的範圍包含:

header - 標頭

body - 解碼且過濾 HTML tags 後的本文

url - 網址

rawbody - 解碼後的本文 ( 可能包含 HTML tags )

full - 未解碼的全文、meta - 組合 )

describe: 是對此條規則的描述 ( 可以省略 )

score: 則是配分 ( 預設配分為 1 分 )

3-3%26#8231;實際設定:

#vi /usr/local/etc/mail/spamassassin/local.cf

# SpamAssassin config file for version 2.5x

# generated by http://www.yrex.com/spam/spamconfig.php (version 1.01)

# How many hits before a message is considered spam. 得分多少以上就會被判定為垃圾郵件.

required_hits 10

# Whether to change the subject of suspected spam. 在垃圾郵件上之標題上加上註記.

rewrite_header Subject ****SPAM(_SCORE_)****

# Encapsulate spam in an attachment.

# 要如何處理垃圾郵件。因為郵件還會經過防毒程式的處理,所以必須設定為 0。

# 0:將資訊寫入郵件表頭。

# 1:將垃圾郵件轉為附件。

# 2:將垃圾郵件轉為純文字附件。

report_safe 0

# Use terse version of the spam report. 用精簡的方式來回報垃圾給管理者

use_terse_report 0

# Enable the Bayes system. 使用貝氏學習系統

use_bayes 1

# Enable Bayes auto-learning. 開起貝氏自動學習功能

auto_learn 1

# Enable or Disable network checks. 略過 RBLs 之檢查、使用 Razor version 2、使用 DCC (Distributed Checksum Clearinghouse)、使用 Pyzor

skip_rbl_checks 0

use_razor2 1

use_dcc 1

use_pyzor 1

# Blacklist. 黑色清單,判定減 - 100 分

blacklist_from *@sohu.com *@mailfb.com

# Whitelist . 白色清單,判定加 +100 分

whitelist_from *@yahoo.com.tw *@yahoo.com.hk *@yahoogroups.com.hk

whitelist_from rika@rika.idv.tw

# Mail using languages used in these country codes will not be marked

# as being possibly spam in a foreign language.

# - chinese

ok_languages zh en

# Mail using locales used in these country codes will not be marked

# as being possibly spam in a foreign language.

ok_locales zh en

# Disabled scores. 防止中文主旨和中文收件者誤判,建議再加上下列幾行

score HEADER_8BITS 0

score HTML_COMMENT_8BITS 0

score SUBJ_FULL_OF_8BITS 0

score UPPERCASE_25_50 0

score UPPERCASE_50_75 0

score UPPERCASE_75_100 0

# local domain from but ip not match. 網域和 ip 不符,疑為垃圾信件

header __FROM_TEATIME Received =~ /from ntut.idv.tw/i

header __FROM_TEATIME_IP Received =~ /\[88\.88\.88\.88\]/

meta FROM_TEATIME_BUT_IP_ERROR (__FROM_TEATIME)

describe FROM_TEATIME_BUT_IP_ERROR From ntut.idv.tw but ip not match

score FROM_TEATIME_BUT_IP_ERROR 8

4. ClamAV:

4-1%26#8231;介紹:

ClamAV:http://www.clamav.net/ ClamAV 全名是 ClamAntiVirus 採公開程式碼、免費授權等觀念,ClamAV 目前可以偵測超過 40,000 種以上的病毒、蠕蟲、木馬程式,並且隨時更新病毒資料庫,有一組分佈在世界各地的病毒專家,24小時更新及維護病毒資料庫,任何人發現可疑病毒也可以隨時跟她們取得聯繫,立刻更新病毒碼,而且在最新的0.80rc3 版本之後,還能夠偵測到以 Jpeg 漏洞所製作的病毒,以及「網路釣魚」的詐騙信件,這樣的防毒軟體竟然是免費的,只能說真是太棒了。

4-2%26#8231;設定檔說明:

於 FreeBSD OS 中設定檔位置 /usr/local/etc/clamd.conf,開機啟動檔設於 #vi /etc/rc.conf 裡加入 clamav_clamd_enable="YES" 自動更新病毒碼同樣也於 #vi /etc/rc.conf 裡加入 clamav_freshclam_enable="YES" freshclam 會每兩個小時會跟 ClamAntiVirus Server check 一次有無新病毒碼可更新。

4-3%26#8231;實際設定:

#vi /usr/local/etc/clamd.conf

LogFile /var/log/clamav/clamd.log

LogFileMaxSize 2M

LogTime

LogSyslog

LogVerbose

PidFile /var/run/clamav/clamd.pid

LocalSocket /var/run/clamav/clamd

StreamSaveToDisk

MaxDirectoryRecursion 20

User clamav

AllowSupplementaryGroups

ScanMail

ScanArchive

ScanRAR

ArchiveMaxFileSize 15M

ArchiveMaxRecursion 8

ArchiveMaxFiles 1500

ClamukoScanOnOpen

ClamukoScanOnClose

ClamukoScanOnExec

ClamukoIncludePath /home

ClamukoMaxFileSize 1M

最後更新日:2004/11/29

最後更新:

http://freebsd.ntut.idv.tw/document/postfix_amavisd-new_spamassassin_clamav.html

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有