ウィルス対策、スパム対策 (clamav, spamassassin)

LINEで送る
Pocket

ウィルスの大きな感染源の一つとして、メールへウィルスファイルを添付して、開かせるというのが今も変わらず続いている攻撃手法の一つです。また、まだ引っかかる人がいるのか?と思うような出合い系サイトへ誘導する
スパムメールも今だに届きます。

今回は、postfixでメールサーバを構築している人向けにウィルスチェックとスパムチェックを行う方法を紹介します。Clam AntiVirusは、オープンソースで提供されているアンチウイルスソフトウェアです。SpamAssassinは、Apacheのプロジェクトの一つとして開発されているオープンソースのスパムフィルタリングソフトです。この2つとpostfixを連携させてフィルタリングするソフトウェアが amavisd-new です。今回は、このamavisd-newとClam AntiVirus、SpamAssassinを使ってウィルス、スパム対策方法を紹介します。なおpostfixは、事前に設置され運用されているものとします。

      e-mail
       ¦
       ↓
     postfix  <----> amavisd-new <----> SpamAssassin
       ¦                 ↑
       ¦                 ¦
       ↓                  ↓
   メールボックス      Clam AntiVirus

amavisd-newとSpamAssassinを以下のコマンドを実行してインストールします。

amavisd-new は、hostname に FQDN 名が設定されていないと起動しないので、事前に設定しておきます。
$ sudo hostname FQDN 名
$ sudo apt-get -y install amavisd-new spamassassin clamav-daemon

Clam AntiVirusのウィルス定義ファイルを最新にアップデートします。

$ sudo freshclam

ウィルスサンプルファイルをダウンロードしてウィルスが検出される事を確認します。

$ wget http://www.eicar.org/download/eicar.com
$ clamscan --infected eicar.com
eicar.com: Eicar-Test-Signature FOUND

----------- SCAN SUMMARY -----------
Known viruses: 4714614
Engine version: 0.99
Scanned directories: 0
Scanned files: 1
Infected files: 1                <- ウィルス検出
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 7.607 sec (0 m 7 s)

clamavユーザをamavisグループに、amavisユーザをclamavグループに加えます。

$ sudo adduser clamav amavis
$ sudo adduser amavis clamav

amavisd-newが使用するtmpディレクトリのパーミションを変更し、clamdをclamavユーザ以外が利用できるように設定ファイルを変更します。

$ sudo chmod -R 775 /var/lib/amavis/tmp

グループ権限の移行を許可します。
[/etc/clamav/clamd.conf]

AllowSupplementaryGroups false
          ↓
AllowSupplementaryGroups true

amavisd-newのフィルタリング設定ファイルの以下の行のコメントを外し有効にします。
[/etc/amavis/conf.d/15-content_filter_mode]

@bypass_virus_checks_maps = (
   \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);

@bypass_spam_checks_maps = (
   \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);

postfixにamavisd-newをフィルタリングする設定を追記します。
[/etc/postfix/main.cf]

         :
content_filter = smtp-amavis:[127.0.0.1]:10024

[/etc/postfix/master.cf]

spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
smtp-amavis     unix    -       -       -       -       2       smtp
        -o smtp_data_done_timeout=1200
        -o smtp_send_xforward_command=yes
        -o disable_dns_lookups=yes
        -o max_use=20

127.0.0.1:10025 inet    n       -       -       -       -       smtpd
        -o content_filter=
        -o local_recipient_maps=
        -o relay_recipient_maps=
        -o smtpd_restriction_classes=
        -o smtpd_delay_reject=no
        -o smtpd_client_restrictions=permit_mynetworks,reject
        -o smtpd_helo_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o smtpd_data_restrictions=reject_unauth_pipelining
        -o smtpd_end_of_data_restrictions=
        -o mynetworks=127.0.0.0/8
        -o smtpd_error_sleep_time=0
        -o smtpd_soft_error_limit=1001
        -o smtpd_hard_error_limit=1000
        -o smtpd_client_connection_count_limit=0
        -o smtpd_client_connection_rate_limit=0
        -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks

* master.cf の -o に続くオプションはUbuntuの公式ドキュメントを参照しましたが、環境により適宜設定してください。

設定が全て完了したので、サービスを全てrestartして、システムが再起動しても自動起動されるように設定します。

$ sudo systemctl restart spamassassin.service
$ sudo systemctl restart clamav-daemon.service
$ sudo systemctl restart postfix.service
$ sudo systemctl restart amavis.service

$ sudo systemctl enable postfix.service
$ sudo systemctl enable spamassassin.service
$ sudo systemctl enable clamav-daemon.service
$ sudo systemctl enable amavis.service

設定完了後、確認の為、スパムと認識するテスト文字列、以下を含んだメールをroot宛に送信してみます。

$ echo XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X |sendmail root

ウィルス確認は、先ほどダウンロードしたウィルステストファイルeicar.comをroot宛に送信してみます。

$ cat eicar.com |sendmail root

[/var/log/mail.log]

Aug 12 12:35:44 ubuntu amavis[26738]: (26738-01) Blocked SPAM {DiscardedInbound,Quarantined}, [127.0.0.1] <taro@hoge.com> -> <taro@hoge.com>, quarantine: k/spam-knrEs_d-SvQl.gz, Message-ID:                            <--スパムファイルと認識。
Aug 12 12:49:07 ubuntu amavis[27343]: (27343-01) Blocked INFECTED (Eicar-Test-Signature) {DiscardedInbound,Quarantined}, [127.0.0.1] <taro@hoge.com> -> <root@hoge.com>, quarantine:                                         <--- ウィルスファイルと認識
LINEで送る
Pocket

  • このエントリーをはてなブックマークに追加

コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください