科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道linux-qmail 病毒/垃圾邮件处理

linux-qmail 病毒/垃圾邮件处理

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

 自从安装qmail邮件系统后,使用上一直没有问题,可是后来部分帐户每天都会出现大量的垃圾邮件(所说的广告),病毒邮件(附件是木马等病毒),大量的垃圾邮件使邮件队列出现诸塞现象。后来安装了clamav杀毒软件,定时每天临晨对邮件队列进行一次杀毒,对病毒邮件和垃圾邮件全部转移到我自己定义的一个文件夹中。

来源:chinaitlab 2010年3月8日

关键字: linux安全 系统安全

  • 评论
  • 分享微博
  • 分享邮件

  自从安装qmail邮件系统后,使用上一直没有问题,可是后来部分帐户每天都会出现大量的垃圾邮件(所说的广告),病毒邮件(附件是木马等病毒),大量的垃圾邮件使邮件队列出现诸塞现象。后来安装了clamav杀毒软件,定时每天临晨对邮件队列进行一次杀毒,对病毒邮件和垃圾邮件全部转移到我自己定义的一个文件夹中。经过几天的观察效果一般。最后还是决定重新制作一套时时杀毒并且具有防火墙功能的邮件杀毒系统。经过一边研究(google很多次,虽然网上有很多的案例,各有千秋。不过大部分都是相互转载,也就是说大部分雷同。我测试没有一套可以生效,并且很多都是比较老的。最后查看官方文档。总算制作完成。写出来对有需要的人提供帮助。)一边琢磨。废话不说。开始。

  实现的前提条件,你有一套收发都没有问题的qmail系统,我以前文档有这套qmail系统的安装配置过程。

  实现的功能:对进入邮件队列的邮件第一步杀毒,第二步打分,审核是否是垃圾邮件。第三步通过。

  实现以上功能需要的软件如下:

  全部可以从官方下载

  clamav-0.95.2.tar.gz 杀毒软件最新版,

  qmail-scanner-2.06.tgz邮件队列扫描软件

  q-s-2.06st-20090419.patch.gz 邮件队列扫描软件的补丁文件

  perl-suidperl-5.8.0-55.1.i586.rpm

  http://dag.wieers.com/rpm/rpmforge.php

  spamassassin-3.0.6-1.el4.rf.i386.rpm 过滤垃圾邮件的防火墙

  DB_File-1.820.tar.gz

  Mail-SPF-v2.006.tar.gz

  MIME-Base64-3.08.tar.gz

  Time-HiRes-1.9719.tar.gz

  Sys-Syslog-0.27.tar.gz

  安装 perl-Time-HiRes-1.38-3.i386.rpm

  rpm -ivh perl-Time-HiRes-1.38-3.i386.rpm

  安装杀毒软件

  创建用户

  useradd -s /bin/false clamav

  安装:

  ./configure --prefix/usr/local/clamav

  make

  make install

  配置如下:

  编辑:clamd.conf 杀毒配置文件

  在 Example 前面加 #

  LogFile /var/log/clamd.log

  LogVerbose yes

  TemporaryDirectory /var/tmp

  DatabaseDirectory /usr/local/clamav/share/clamav

  LocalSocket /tmp/clamd

  FixStaleSocket true

  User clamav

  ScanMail yes

  ScanHTML yes

  ScanArchive yes

  配置:freshclam.conf 升级配置文件

  在 Example 前面加 #

  DatabaseDirectory /usr/local/clamav/share/clamav

  UpdateLogFile /var/log/freshclam.log

  LogVerbose yes

  PidFile /var/run/clamav/freshclam.pid 注意clamav目录全县修改

  DatabaseOwner clamav

  DatabaseMirror database.clamav.net

  DatabaseMirror db.cn.clamav.net

  DatabaseMirror database.clamav.net

  DatabaseMirror clamav.irontec.com

  DatabaseMirror clamav.inet6.fr

  DatabaseMirror clamav.netopia.pt

  DatabaseMirror clamav.sonic.

  Checks 4

  完成配置

  执行 /usr/local/clamav/bin/freshclam -d -c 6 -l /var/log/freshclam.log 6

  启动杀毒软件每天更新6次

  我是安装到/usr/local/clamav 下,然后将clamscan杀毒程序软连接到/usr/local/bin下,以配合扫描程序可以直接找到调用。

  安装

  spamassassin-3.0.6-1.el4.rf.i386.rpm

  用它来过滤邮件

  先安装如下

  DB_File-1.820.tar.gz

  Mail-SPF-v2.006.tar.gz

  MIME-Base64-3.08.tar.gz

  Time-HiRes-1.9719.tar.gz

  Sys-Syslog-0.27.tar.gz

  全部使用如下:

  perl Makefile

  make

  make test

  make install

  rpm安装spamassassin

  rpm -ivh spamassassin-3.0.6-1.el4.rf.i386.rpm就完成。

  配置

  #修改起动脚本使spamassassin支持vpopmail

  #修改如下一行:

  vi /etc/init.d/spamassassin

  SPAMDOPTIONS"-d -c -m5 -H -x -u vpopmail -v"

  vi /etc/sysconfig/spamassassin

  SPAMDOPTIONS"-d -c -m5 -H -x -u vpopmail -v"

  #spamassassin的过滤模板在/etc/mail/spamassassin/local.cf,修改为:

  vi /etc/mail/spamassassin/local.cf

  # These values can be overridden by editing ~/.spamassassin/user_prefs.cf

  # (see spamassassin(1) for details)

  # These should be safe assumptions and allow for simple visual sifting

  # without risking lost emails.

  required_score 7.0以7.0为分界限,评分超过7.0的就会在邮件标题开头加入 ******SPAM*****字样,已提示为垃圾邮件,不过也有被误认为的时候。所以建议不要做对垃圾邮件删除。

  rewrite_header Subject ********SPAM********

  report_safe 1

  use_bayes 1

  auto_learn 1

  skip_rbl_checks 0

  rewrite_subject 1

  report_header 1

  use_terse_report 1

  defang_mime 1

  dns_available yes

  dcc_add_header 1

  #use_pyzor 1 (Only if you have installed pyzor)

  #use_razor2 (Only if you have installed razor2)

  use_dcc 1

  #ok_languages zh en

  #ok_locales en ko

  ok_languages all

  ok_locales all

  score HEAD_ILLEGAL_CHARS 0

  score SUBJ_ILLEGAL_CHARS 0

  score DATE_IN_PAST_03_06 0

  score UPPERCASE_25_50 0

  score UPPERCASE_50_75 0

  score UPPERCASE_75_100 0

  score X_MSMAIL_PRIORITY_HIGH 0

  score X_PRIORITY_HIGH 0

  score TO_TXT 100

  score RATWARE_HASH_2 100

  score RATWARE_HASH_2_V2 100

  score BAYES_99 0.1

  score BAYES_80 0.1

  score BAYES_60 0.1

  score FROM_ILLEGAL_CHARS 0.1

  score MIME_BASE64_TEXT 0.1

  score NO_RDNS_DOTCOM_HELO 0.1

  score CHINA_HEADER 0.1

  score NO_REAL_NAME 0.2

  score HTML_MESSAGE 0.2

  score MIME_HTML_ONLY 0.2

  score MIME_HTML_ONLY_MULTI 0.2

  score FORGED_MUA_OUTLOOK 0.2

  score FORGED_HOTMAIL_RCVD 0.2

  score FORGED_OUTLOOK_TAGS 0.2

  score MAILTO_TO_SPAM_ADDR 0.2

  header RCVD_IN_CASA_CBLLESS eval:check_rbl('CBLLESS','cblless.anti-spam.org.cn.','127.0.8.5')

  describe RCVD_IN_CASA_CBLLESS Relay has be listed in CASA CBL-, http://anti-spam.org.cn/

  tflags RCVD_IN_CASA_CBLLESS net

  scoreRCVD_IN_CASA_CBLLESS 4.0

  配置完成。以上具体解释请看相关文档。

  #使用CCERT 中文垃圾邮件过滤规则集Chinese_rules.cf

  wget -N -P /usr/share/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf

  #启动SpamAssassin

  service spamassassin start

  #定期自动更新中文反垃圾邮件规则

  crontab –e

  0 0 1 * * (wget -N -P /usr/share/spamassassin http://www.ccert.edu.cn/spam/sa/Chinese_rules.cf)

  #建立SpamAssassin的学习系统

  sa-learn --sync -D -p user_prefs

  安装邮件队列扫描程序:

  qmail-scanner-2.06.tgz

  q-s-2.06st-20090419.patch.gz

  首先安装

  rpm -ivh perl-suidperl-5.8.0-55.1.i586.rpm

  否则会出现

  Error was:

  Can't do setuid

  创建用户

  useradd –g qscand –s /bin/false qscand

  解压打补丁

  tar zxvf qmail-scanner-2.06.tgz

  gunzip q-s-2.06st-20090419.patch.gz

  patch -p0 < q-s-2.06st-20090419.patch 打补丁

  安装:

  ./configure --qmail-queue-binary /var/qmail/bin/qmail-queue --setuidgid-path /usr/local/bin/setuidgid --admin postmaster --domain domain.com.cn --notify sender,admin --local-domains domain.com.cn --lang en_GB --debug yes --unzip yes --scanners clamscan,fast_spamassassin --virus-to-delete yes --sa-forward postmaster@domain.com.cn --sa-reject yes --sa-subject "*** SPAM *** "

  以上个别配置解释;

  --admin : 邮件帐户名,可以任意存在的

  --domain:邮件帐户的域名,

  以上会自动生成一个邮件帐户,可以用来接收被删除的垃圾邮件。

  --local-domains :你所有的邮件域名。

  --scanners :杀毒程序名,垃圾邮件过滤程序名。

  其他参数就不详细说了,./configure --help下有解释

  通过输入2个 Y ,如无问题,会出现 install 1

  开始安装

  ./configure --qmail-queue-binary /var/qmail/bin/qmail-queue --setuidgid-path /usr/local/bin/setuidgid --admin postmaster --domain domain.com.cn --notify sender,admin --local-domains domain.com.cn --lang en_GB --debug yes --unzip yes --scanners clamscan,fast_spamassassin --virus-to-delete yes --sa-forward postmaster@domain.com.cn --sa-reject yes --sa-subject "*** SPAM *** " install yes

  看看是否在/var/qmail/bin/qmail-scanner-queue.pl是否存在

  chown qscand:qscand /var/qmail/bin/qmail-scanner-queue.pl

  chmod 4755 /var/qmail/bin/qmail-scanner-queue.pl

  然后用一个普通用户登陆,执行/var/qmail/bin/qmail-scanner-queue.pl -z

  如果没有Can't do setuid出现,完成

  然后修改vpopmail的配置文件,如下:

  vi tcp.smtp

  添加:

  127.0.0.1:allow,RELAYCLIENT””,RBLSMTPD"",QMAILQUEUE"/var/qmail/bin/qmail-scanner-queue.pl"

  10.:allow,RELAYCLIENT"",RBLSMTPD"",QMAILQUEUE"/var/qmail/bin/qmail-scanner-queue.pl"

  :allow,QMAILQUEUE"/var/qmail/bin/qmail-scanner-queue.pl"

  重新生成tcp.smtp.cdb,tcp.smtp.tmp

  tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp

  完成后

  重起qmail

  查看日志

  cat /var/log/clamd.log

  cat /var/log/freshclam.log

  cat /var/log/qmail/qmail-send/current

  以及

  /var/spool/qscan/ 中的日志(扫描邮件日志从这里可以看到)主要为

  以下这个文件

  qmail-queue.log

  经测试邮件查看,发现邮件扫描出现错误clamscan_options的选项无法识别。

  继续修改

  vi /var/qmail/bin/qmail-scanner-queue.pl

  my $clamscan_options"-r --disable-summary --max-recursion10 --max-space100000";

  重新启动qmail

  发送一个病毒邮件测试

  查看tail -f /var/spool/qscan/qmail-queue.log

  可以看到病毒邮件被扫描发现,而且转发并且删除。可以在quarantine.log 文件中发现有记录。

  发送一个垃圾邮件测试

  查看tail -f /var/spool/qscan/qmail-queue.log

  可以看到邮件经过SA,评分。发现评分超过7.0,我接收到垃圾邮件发现标题开头加入了SPAM字样。而且查看邮件属性,可以发现邮件有经过处理的记录。。到此完成。。。。我这里上传相关部分软件。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章