備忘録のため,内容の正当性については責任を持ちません。

この記事の内容は古くなっています。新しい記事はこちらにあります。


BlueOnyx に SpamAssassin と ClamAV をインストールし、メールサーバに対して SPAM およびウイルス対策を行った。BlueOnyx に限らず、以下の環境であれば同じ手順で問題なくインストールできると思われる。

  • CentOS 5.5
  • sendmail 8


RPMforge レポジトリの有効化

まず、今回使用する各プログラムを yum でインストールできるようにするため、RPMforge レポジトリを有効にする。

# rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
# rpm -ivh http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
# sed -i -e "s/enabled = 1/enabled = 0/" /etc/yum.repos.d/rpmforge.repo

SpamAssassin のインストール

SPAM メールの検証ソフト SpamAssassin をインストールする。

  1. yum で spamassassin、spamass-milter をインストールする。
    # yum install -y spamassassin spamass-milter --enablerepo=rpmforge
  2. 送信ドメイン認証や SPF を検証するための Perl モジュールをインストールする。
    # yum install -y perl-Mail-DKIM perl-Mail-DomainKeys perl-Mail-SPF-Query --enablerepo=rpmforge
  3. SpamAssassin の定義ファイルを作成する。今回は TLEC さんのものを使用させていただいた。
    # cd /etc/mail/spamassassin
    # wget http://tlec.linux.or.jp/docs/user_prefs -O 10_user_prefs
  4. SpamAssassin の設定ファイルを作成する。
    # vi 20_local.cf
    required_score 7.5
    report_safe 0
    rewrite_header Subject [SPAM]

    # 不要なスコアリング
    score TVD_SPACE_RATIO 0.0
    score FH_DATE_PAST_20XX 0.0
    score GAPPY_SUBJECT 0.0
    score DNS_FROM_OPENWHOIS 0.0

    # SPF & DomainKeys
    score SPF_HELO_SOFTFAIL 2.5
    score SPF_SOFTFAIL 2.5
    score SPF_FAIL 3.0
    score SPF_PASS 0
    score DKIM_VERIFIED -2.0
    score DKIM_SIGNED -1.0

    # 逆引きできない or 動的IPのホスト
    score RDNS_NONE 4.5
    score RDNS_DYNAMIC 1.0
  5. spamass-milter によるメールヘッダの書換を許可する。
    # echo "EXTRA_FLAGS=\"\"" >> /etc/sysconfig/spamass-milter
  6. ルールセットをアップデートする。
    # yum install -y perl-Archive-Tar
    # sa-update
  7. spamass-milter を起動する。
    # /etc/init.d/spamass-milter start
    # /sbin/chkconfig spamass-milter on

ClamAV のインストール

次に、ウイルスチェックソフト ClamAV をインストールする。

  1. yum で clamav clamd clamav-milter をインストールする。
    # yum install -y clamav clamd clamav-milter --enablerepo=rpmforge
  2. ウイルス定義ファイルを最新版に更新する。
    # freshclam
  3. TCP ソケット通信を停止する。
    # sed -i -e "s/TCPSocket 3310/#TCPSocket 3310/" /etc/clamd.conf
  4. 検査結果をメールヘッダに追加するようにする。
    # sed -i -e "s/#AddHeader Replace/AddHeader Add/" /etc/clamav-milter.conf
  5. clamd を起動する。
    # /etc/init.d/clamd start
    # /sbin/chkconfig clamd on
  6. clamav-milter を起動する。
    # /etc/init.d/clamav-milter start
    # /sbin/chkconfig clamav-milter on

Sendmail との連携

最後に、インストールした 2 つのプログラムと Sendmail を連携させる。

  1. Sendmail の設定ファイル (/etc/mail/sendmail.mc) を開き、
    MAILER(smtp)dnl

    という行の直前に、以下の 3 行を追加する。

    INPUT_MAIL_FILTER(`clamav', `S=local:/var/clamav/clmilter.socket, F=, T=S:4m;R:4m')
    INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass-milter/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m')
    define(`confINPUT_MAIL_FILTERS', `spamassassin,clamav')
  2. Sendmail を再起動する。
    # m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
    # /etc/init.d/sendmail restart

以後、受信したメールに spamass-milter や clamav-milter のヘッダが挿入されていれば成功だ。ClamAV はメモリをバカ食いするので注意が必要である。

コメント

コメントする




CAPTCHA