设为首页 收藏本站
查看: 1368|回复: 0

[经验分享] Redhat 5.4+Postfix+Amavisd-new+SpamAssassin+ClamAV

[复制链接]

尚未签到

发表于 2015-11-24 10:24:11 | 显示全部楼层 |阅读模式
Postfix+Amavisd-new+SpamAssassin+ClamAV2009年04月07日 00:48 来源:ChinaUnix博客 作者:dongjincai 编辑:周荣茂    一年之前我在 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 網卡
    作業系統:
    Redhat As 5.4
     5.4 Release
    假設 IP 為:88.88.88.88
    網域名稱為:ntut.idv.tw
    Starting:
    1.
    Postfix
    :
    1-1‧介紹:
     Postfix:
    http://www.postfix.org/
    MTA ( Mail Transfer Agent ) 是一套
    安全
    及設定便利都優於 sendmail 的郵件伺服器軟體。
   
   
   
    1-2‧設定檔說明:
   
     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‧實際設定:
    #vi /usr/local/etc/postfix/main.conf
   
    # Main Configuremyhostname = ntut.idv.twmydomain =
    ntut.idv.twmynetworks = 88.88.88.88/26, 127.0.0.0/8alias_maps =
    hash:/usr/local/etc/postfix/aliasesmail_spool_directory = /var/mail#
    Other configuertiondisable_vrfy_command = yesmailbox_size_limit =
    204800000smtpd_recipient_limit =300message_size_limit = 30720000#
    ClamAVcontent_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=yes127.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" instart)/usr/local/sbin/postfix start > /dev/null
    2>&1echo -n ' Postfix';;stop)/usr/local/sbin/postfix stop >
    /dev/null 2>&1echo -n ' Postfix
    stoped';;reload)/usr/local/sbin/postfix reload > /dev/null
    2>&1echo -n ' Postfix reloaded';;-h)echo "Usage: `basename $0` {
    start | stop | reload }";;*)/usr/local/sbin/postfix $1 > /dev/null
    2>&1echo -n ' Postfix $1';;esac
   
   
    2. Amavisd-new:
     2-1‧簡介:
     Amavisd-new:
    http://www.ijs.si/software/amavisd/
    是一支具有套高性能的郵件介面軟體,它就是介於:郵件伺服器軟體 ( 如:sendmail、postfix ) 及 內容檢查軟體 (
    如:ClamAV、SpamAssassin ) 之間的橋樑軟體,其角色就扮演就像是兩者之間的溝通者。 Amavisd-new 本身也是個簡易的
    MTA,也可以拿它來架設一個獨立的 Mail Gateway,提供多台 Mail Server 做信件過濾。除此之外,Amavisd-new
    還可以搭配十多種防毒程式來做病毒信的過濾。
   
   
   
    2-2‧設定檔說明:
     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‧實際設定:
    #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', \&ask_daemon,
    ["CONTSCAN {}\n", '/tmp/clamd'],qr/\bOK$/, qr/\bFOUND$/,
       qr/^.*?: (?!InfectedArchive)(.*) FOUND$/ ],
   
    3. SpamAssassin:
    3-1‧介紹:
     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‧設定檔說明:
     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‧實際設定:
    #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)、使用 Pyzorskip_rbl_checks 0use_razor2
     1use_dcc 1use_pyzor 1#
    Blacklist. 黑色清單,判定減 - 100 分blacklist_from *@sohu.com *@mailfb.com#
    Whitelist . 白色清單,判定加 +100 分whitelist_from *@yahoo.com.tw *@yahoo.com.hk
    *@yahoogroups.com.hkwhitelist_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.# - chineseok_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 0score HTML_COMMENT_8BITS 0score
    SUBJ_FULL_OF_8BITS 0score UPPERCASE_25_50 0score UPPERCASE_50_75 0score
    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‧介紹:
     ClamAV:
    http://www.clamav.net/
     ClamAV 全名是 ClamAntiVirus 採公開程式碼、免費授權等觀念,ClamAV 目前可以偵測超過 40,000
    種以上的病毒、蠕蟲、木馬程式,並且隨時更新病毒資料庫,有一組分佈在世界各地的病毒專家,24小時更新及維護病毒資料庫,任何人發現可疑病毒也可以隨時
    跟她們取得聯繫,立刻更新病毒碼,而且在最新的0.80rc3 版本之後,還能夠偵測到以 Jpeg
    漏洞所製作的病毒,以及「網路釣魚」的詐騙信件,這樣的防毒軟體竟然是免費的,只能說真是太棒了。
   
   
   
    4-2‧設定檔說明:
     於 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‧實際設定:
    #vi /usr/local/etc/clamd.conf
    LogFile /var/log/clamav/clamd.logLogFileMaxSize
    2MLogTimeLogSyslogLogVerbosePidFile
    /var/run/clamav/clamd.pidLocalSocket
    /var/run/clamav/clamdStreamSaveToDiskMaxDirectoryRecursion 20User
    clamavAllowSupplementaryGroupsScanMailScanArchiveScanRARArchiveMaxFileSize
    15MArchiveMaxRecursion 8ArchiveMaxFiles
    1500ClamukoScanOnOpenClamukoScanOnCloseClamukoScanOnExecClamukoIncludePath
    /homeClamukoMaxFileSize 1M重新载入postfix的配置文件
#/etc/init.d/postfix reload.
执行如下的测试指令

#telnet 127.0.0.1 10025
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 yourhost.example.com ESMTP Postfix
--> quit
221 Bye
Connection closed by foreign host.
如果出现了上面的信息就表示程式配置成功,可以使用它了。
如果你还想进一步测式看看你的邮件伺服器是否真的会通过amavisd-new来扫描病毒,就需要执行下面的命令交互测试。
-> $ telnet 127.0.0.1 10024
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 [127.0.0.1] ESMTP amavisd-new service ready
--> MAIL FROM:<test@example.com>
250 2.1.0 Sender test@example.com OK
--> RCPT TO:<postmaster>
250 2.1.5 Recipient postmaster OK
--> DATA
354 End data with <CR><LF>.<CR><LF>
--> Subject: test1
-->
--> test1
--> .

*** 250 2.6.0 Ok, id=31859-01, from MTA: 250 Ok: queued as 90B7F16F

--> MAIL FROM:<test@example.com>
250 2.1.0 Sender test@example.com OK
--> RCPT TO:<postmaster>
250 2.1.5 Recipient postmaster OK
--> DATA
354 End data with <CR><LF>.<CR><LF>
--> Subject: test2 - virus test pattern
-->
--> X5O!P%@AP[4PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H&#43;H*
--> .

you should get one of the following replies (or similar), depending on
the $final_virus_destiny and *virus_lovers* settings in amavisd.conf:
*** 550 5.7.1 Message content rejected, id=16968-01 - VIRUS: EICAR-AV-Test
*** 250 2.5.0 Ok, but 1 BOUNCE
*** 250 2.7.1 Ok, discarded, id=16984-01 - VIRUS: EICAR-AV-Test
*** 250 2.6.0 Ok, id=17041-01, from MTA: 250 Ok: queued as 3F1841A5F5

--> QUIT
221 2.0.0 [127.0.0.1] (amavisd) closing transmission channel
Connection closed by foreign host.
如果得到上面的信息,那么恭喜你了,你的病毒扫描程式运行很顺畅。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-142982-1-1.html 上篇帖子: postfix 日志过滤与linux 日志 模块rsyslog配置 下篇帖子: postfix安装(三)-- php安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表