本日も千鳥足


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



PageTop

とってもうウザいスパムメール。
LINUXにはスパム対策としてSpamassassinというプログラムがあります。
早速インストールしてみます。
ついでにOP25B【Outbound Port 25 Blocking】も設定します。

OP25Bとは、ネットワークの境界にあるルータなどの機器で、ネットワーク内から外部のコンピュータのTCPポート25番への通信を禁止すること。インターネットサービスプロバイダ(ISP)などが会員のパソコンからスパムメールが送信されるのをブロックするために行なっている。



まずはコンソールから
スパムフィルタ用のユーザーを作成します。

[root@os~]# groupadd -g 10001 filter
[root@os~]# useradd -g filter -u 10001 -d /home/filter -s /bin/false filter
[root@os~]# mkdir /var/spool/filter
[root@os~]# chown filter:filter /var/spool/filter
[root@os~]#chmod 700 /var/spool/filter


続いてSpamassassin関連のパッケージのインストール状況を確認

[root@os~]# yum list | grep spamassassin
spamassassin.i386 3.2.4-1.el5 installed
claws-mail-plugins-spamassassin.i386 3.0.2-1.el5.rf rpmforge
spamassassin.i386 3.2.5-1.el5.rf rpmforge
spamassassin-tools.i386 3.1.8-1.el5.rf rpmforge
[root@os~]#


以上のようなリストが出なかったらインストールを実行します。

[root@os~]#yum install spamassassin


以下のような感じでyを入力(以下はアップデートですが)

Updating:
spamassassin i386 3.2.5-1.el5.rf rpmforge 1.1 M

Transaction Summary
=============================================================================
Install 0 Package(s)
Update 1 Package(s)
Remove 0 Package(s)

Total download size: 1.1 M
Is this ok [y/N]:y


インストールが走ります。

Total download size: 1.1 M
Is this ok [y/N]: y
Downloading Packages:
(1/1): spamassassin-3.2.5 100% |=========================| 1.1 MB 00:03
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : spamassassin ######################### [1/2]
Cleanup : spamassassin ######################### [2/2]

Updated: spamassassin.i386 0:3.2.5-1.el5.rf
Complete!


インストールできたら自動起動の設定をします

[root@os~]# chkconfig spamassassin on
[root@os~]# chkconfig --list spamassassin
spamassassin 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@os~]# /etc/init.d/spamassassin start


続いてフィルタスクリプトを作成します。

[root@os~]# vi /usr/local/bin/spam-filter


Aキーでインサートモードにします。

#!/bin/sh

# Simple shell-based filter. It is meant to be invoked as follows:
# /path/to/script -f sender recipients...

# Localize these.
INSPECT_DIR=/var/spool/filter
SENDMAIL="/usr/sbin/sendmail -i"
SPAMASSASSIN=/usr/bin/spamc

# Exit codes from
EX_TEMPFAIL=75
EX_UNAVAILABLE=69

# Clean up when done or when aborting.
trap "rm -f in.$$" 0 1 2 3 15

# Start processing.
cd $INSPECT_DIR || {
echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; }

cat | $SPAMASSASSIN -x > in.$$
grep -e "^X-Spam-Status:.Yes" in.$$ \
&& $SENDMAIL "スパムメールの配信アドレス入力" < in.$$ \
|| $SENDMAIL "$@" < in.$$

exit $?


誤信する可能性があるので専用アドレスに配信するようにしています。

Escキーでインサートモードから抜けて:wqで保存します。
ファイルパーミッションを変更します

[root@os~]# chmod 700 /usr/local/bin/spam-filter
[root@os~]# chown filter:filter /usr/local/bin/spam-filter



Postfixにフィルタ処理をさせるよう、/etc/postfix/master.cfを変更します。
同じくサブミッションポートも有効にしてOP25B対応させます。

[root@os~]# vi /etc/postfix/master.cf



# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
-o content_filter=filter:dummy<追記
#submission inet n - n - - smtpd <#削除
# -o smtpd_enforce_tls=yes
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#smtps inet n - n - - smtpd
# -o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
~割愛~
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
filter unix - n n - 10 pipe
flags=Rq user=filter argv=/usr/local/bin/spam-filter -f ${sender} -- ${recipient}
<最終行に追記


Escでインサートモードから抜けて:wqで保存します。
postfixを再起動します。

[root@os~]# /etc/init.d/postfix restart


再起動後メールを送受信します。
このときに初めてSpamassassinが機能してfilterユーザのhomeディレクトリ配下に、.spamassassinフォルダが作成さます。更にその配下に

user_prefs
auto-whitelist*


が作成されます。
同時に、受信メールのヘッダに
下記のような行が追加されているはずです。

X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on メールサーバ名
X-Spam-Level: *****
X-Spam-Status: No, score=5.9 required=7.5 tests=BAYES_50,FH_DATE_PAST_20XX


SPAMメールと判定されると
「X-Spam- Status: No」がYesとなり
「X-Spam-Level: *****」とSPAM度に応じて*が付加されます。
確認ができたらTLECさんの
個人ユーザ用 spam避けSpamAssassin のユーザ定義ファイルをダウンロードします。

[root@os~]#cd /home/filter/.spamassassin
[root@os~]#wget -O user_prefs http://tlec.linux.or.jp/docs/user_prefs


これで対応完了です。
以上で設定は完了です。
※OP25Bは587番ポートを使用しますのでルーターで587を開ける必要があります。
メーラーの送信ポートも25から587へ変更してください。




スポンサーリンク

関連スクラップ記事

関連エントリ抽出中...



PageTop

コメント


管理者にだけ表示を許可する
 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。