| トップ | Solaris | FreeBSD | Gentoo | CentOS | Fedora | Windows | Tips | 自宅サーバの動作確認 | サイト内検索(Namazu) | サイト内検索(HE) |
「taRgrey」はS25R、tarpitting、greylistingの3つのスパム判定手法を組み合わせたものです。
これだけでもかなりのスパムを弾く事が出来ますが、Yahooメール等のフリーメールや固定IPから送信されたスパムは弾くことが出来ません。
その為、「taRgrey」を1次フィルタとして用い、「SpamAssassin」を2次フィルタとして用いる事により、ほとんどのスパムを弾くことが出来ます。
「SpamAssassin」の設定方法はこちらにあります。
なお、「SMTPサーバ(Postfix)の設定」は終わっているものとします。
「taRgrey」では怪しい送信元に対しtarpitting(応答の遅延)を行いますが、応答待ちですぐに処理が終了しない為、smtpdプロセスが増加します。
そこで「Postfix」にパッチを当てて、遅延している間に相手が接続を切ったら、こちらのsmtpdもすぐに終了するよう、パッチを当てます。
なお、ソースのダウンロードにyumdownloaderコマンドを利用していますが、導入方法についてはこちらを参照して下さい。
また、rpmbuildコマンドで、エラー: ビルド依存性の失敗: と表示された場合、必要なものをyumコマンドでインストールして下さい。
[root@Fedora ~]# yumdownloader --source postfix <= 「Postfix」のソースをダウンロード
[root@Fedora ~]# rpm -ivh postfix-2.4.5-2.fc8.src.rpm <= SRPMファイルのインストール
[root@Fedora ~]# cd /usr/src/redhat/SOURCES <= 作業用ディレクトリへ移動
[root@Fedora SOURCES]# tar xzf postfix-2.4.5.tar.gz <= ソースの展開
[root@Fedora SOURCES]# cd postfix-2.4.5 <= 展開したディレクトリへ移動
[root@Fedora postfix-2.4.5]# wget http://k2net.hakuba.jp/pub/postfix-sleep.patch <= パッチのダウンロード
[root@Fedora postfix-2.4.5]# patch -p1 < postfix-sleep.patch <= パッチの適用
[root@Fedora postfix-2.4.5]# rm -f src/smtpd/smtpd_check.c.orig <= パッチを適用した元のファイルを削除
[root@Fedora postfix-2.4.5]# rm -f postfix-sleep.patch <= パッチファイルの削除
[root@Fedora postfix-2.4.5]# cd ../
[root@Fedora SOURCES]# rm -f postfix-2.4.5.tar.gz <= 元のソースを削除
[root@Fedora SOURCES]# tar czf postfix-2.4.5.tar.gz postfix-2.4.5 <= パッチを当てたソースを圧縮
[root@Fedora SOURCES]# vi /usr/src/redhat/SPECS/postfix.spec <= SPECファイルの編集
Release: 2%{?dist}
↓
Release: 2.tg%{?dist} <= 変更
[root@Fedora SOURCES]# rpmbuild -bb --clean /usr/src/redhat/SPECS/postfix.spec <= SRPMパッケージからRPMパッケージを作成
[root@Fedora SOURCES]# rpm -Uvh /usr/src/redhat/RPMS/i386/postfix-2.4.5-2.tg.fc8.i386.rpm <= 「Postfix」のインストール
|
yumのアップデート対象から「Postfix」を外します。
[root@Fedora ~]# vi /etc/yum.conf <= 設定ファイルの編集 exclude=postfix <= 追加 |
「taRgrey」を利用する為に「Postgrey」にパッチを当ててインストールします。
[root@Fedora ~]# yumdownloader --source postgrey <= 「Postgrey」のソースをダウンロード
[root@Fedora ~]# rpm -ivh postgrey-1.30-1.fc8.src.rpm <= SRPMファイルのインストール
[root@Fedora ~]# cd /usr/src/redhat/SOURCES <= 作業用ディレクトリへ移動
[root@Fedora SOURCES]# tar xzf postgrey-1.30.tar.gz <= ソースの展開
[root@Fedora SOURCES]# wget http://k2net.hakuba.jp/pub/targrey-0.31-postgrey-1.30.patch <= パッチのダウンロード
[root@Fedora SOURCES]# patch -p0 < targrey-0.31-postgrey-1.30.patch <= パッチの適用
[root@Fedora SOURCES]# rm -f targrey-0.31-postgrey-1.30.patch <= パッチファイルの削除
[root@Fedora SOURCES]# rm -f postgrey-1.30.tar.gz <= 元のソースを削除
[root@Fedora SOURCES]# tar czf postgrey-1.30.tar.gz postgrey-1.30 <= パッチを当てたソースを圧縮
[root@Fedora SOURCES]# /usr/src/redhat/SPECS/postgrey.spec <= SPECファイルの編集
Release: 1%{?dist}
↓
Release: 1.tg%{?dist} <= 変更
[root@Fedora SOURCES]# rpmbuild -bb --clean /usr/src/redhat/SPECS/postgrey.spec <= SRPMパッケージからRPMパッケージを作成
[root@Fedora SOURCES]# rpm -ivh /usr/src/redhat/RPMS/noarch/postgrey-1.30-1.tg.fc8.noarch.rpm <= 「Postgrey」のインストール
|
yumのアップデート対象から「Postgrey」を外します。
[root@Fedora ~]# vi /etc/yum.conf <= 設定ファイルの編集 exclude=postfix ↓ exclude=postfix postgrey <= 変更 |
main.cfの設定
当サイトでは、元々記述している部分を1行で記述していますが、ここでは複数行に分けています。
[root@Fedora ~]# vi /etc/postfix/main.cf <= 設定ファイルの編集
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
以下を追加
check_client_access hash:$config_directory/whitelist_client
check_client_access regexp:$config_directory/permit_client_nots25r
check_policy_service inet:60000
permit
smtpd_data_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
check_client_access hash:$config_directory/whitelist_client
check_client_access regexp:$config_directory/permit_client_nots25r
check_policy_service inet:60000
permit
ここまで
|
「Postgrey」関係の設定
設定ファイルをダウンロードし、指定のディレクトリに配置します。
[root@Fedora ~]# wget http://k2net.hakuba.jp/spam/postfix.conf.2.tar.gz <= 設定ファイルのダウンロード [root@Fedora ~]# tar xzf postfix.conf.2.tar.gz <= ダウンロードしたファイルの展開 [root@Fedora ~]# cp postfix.conf.2/whitelist_client /etc/postfix/ <= 設定ファイルのコピー [root@Fedora ~]# cp postfix.conf.2/permit_client_nots25r /etc/postfix/ <= 設定ファイルのコピー [root@Fedora ~]# rm -rf postfix.conf.2 <= 展開したディレクトリの削除 [root@Fedora ~]# rm -f postfix.conf.2.tar.gz <= ダウンロードしたファイルの削除 [root@Fedora ~]# postmap /etc/postfix/whitelist_client <= whitelist_clientファイルのDB化 |
「Postgrey」の起動時に「taRgrey」が有効になるように起動オプションを変更します。
ここでは、125秒の遅延を設定し、最初に送信されてから1時間(3600秒)以上開けて、
再送を2回以上されたときのみメールを受け取るように設定しています。
また、上記の設定と合わせ、ポリシーサーバの待ち受けポートを60000に指定しています。
[root@Fedora ~]# vi /etc/rc.d/init.d/postgrey <= 設定ファイルの編集 OPTIONS="--unix=$SOCKET" ↓ OPTIONS="--dbdir=$DBPATH --inet=127.0.0.1:60000 --tarpit=125 --targrey --retry-count=2 --delay=3600" <= 変更 |
「Postgrey」の起動
[root@Fedora ~]# /etc/rc.d/init.d/postgrey start |
Fedora起動時に「Postgrey」を起動するようにします。
[root@Fedora ~]# chkconfig postgrey on |
「Postfix」の再起動
[root@Fedora ~]# /etc/rc.d/init.d/postfix restart |