|
Starpitという方法で効果的にスパムを排除できるらしい。 参考→ Starpitでほぼ誤検出無く98%のスパムを排除 原理は動的IPと思われるところからの送信は一時的に保留にして再送信を要求するというもの。 スパムやウイルスは動的IPから送られる事が多いのと、再送信をしない事が多いという特性を突いた方法。
<7/10訂正 SATOH様ご指摘ありがとうございます。理解不足でスミマセン。。。>
原理は動的IPと思われるところからの送信を遅延させるというもの。 スパムやウイルスは動的IPから送られる事が多いのと、遅延させると待ちきれずに切断してしまう事が多いという特性を突いた方法。
postfix2.3であれば簡単に設定できるのだがsargeはpostfix2.1なので駄目。 (exprimantalに2.3があったが、依存関係でlibcなども上げる必要があり断念) postfix2.2のソースにパラメータを付けてコンパイルするのでも良いらしい。 幸いにしてsarge-backportsにpostfix2.2がリリースされていたので、今回はそれを利用する。 /etc/apt/sources.listに追加 #backports deb http://www.backports.org/debian/ sarge-backports main deb-src http://www.backports.org/debian/ sarge-backports main /etc/apt/preferences作成 Package: * Pin: release a=sarge-backports Pin-Priority: 200 Package: postfix lsb-base libldap2-dev Pin: release a=sarge-backports Pin-Priority: 999 まずは2.2をインストール(依存関係からlsb-baseとlibldap2-devも) /usr/bin/aptitude update aptitude install lsb-base/sarge-backports aptitude install libldap2-dev/sarge-backports aptitude install postfix/sarge-backports その後backportsからソースを取得 cd /usr/src/ apt-get source postfix
ソースの修正 cd postfix-2.2.10 debian/rulesを修正 CCARGS=-DDEBIAN -DMAX_DYNAMIC_MAPS -DHAS_PCRE -DHAS_LDAP \ -DHAS_MYSQL -I/usr/include/mysql \ -DHAS_PGSQL -I`pg_config --includedir` \ -DHAS_SSL -I/usr/include/openssl \ -DUSE_SASL_AUTH -I/usr/include/sasl \ -DSNAPSHOT \ ←この行を追加!!! -DUSE_TLS パッケージのバージョンを変更する際はdebian/changelogも修正 パッケージ作成 ソースからパッケージ作成するには別途依存関係でインストールが必要なものがあった。 aptitude install lsb-release libdb4.3-dev libgdbm-dev libpcre3-dev libmysqlclient14-dev libsasl2-dev postgresql-dev それらをインストールした後、いよいよパッケージ作成。 dpkg-buildpackage 沢山パッケージが作成されるが、必要なものだけインストールしれば良い。 自分の場合は本体だけ。 インストール dpkg -i ../postfix_2.2.10-1bpo2.raku1_amd64.deb
パッケージを固定する echo "postfix hold" | dpkg --set-selections スパム対策を設定する /etc/postfix/main.cfを修正 smtpd_client_restrictions = permit_mynetworks, check_client_access regexp:/etc/postfix/client_access, ←この行を追加!! reject_rbl_client relays.ordb.org,permit
/etc/postfix/client_access作成 # *** S25R *** /^unknown$/ sleep 90 /^[^\.]*[0-9][^0-9\.]+[0-9]/ sleep 90 /^[^\.]*[0-9]{5}/ sleep 90 /^([^\.]+\.)?[0-9][^\.]*\.[^\.]+\..+\.[a-z]/ sleep 90 /^[^\.]*[0-9]\.[^\.]*[0-9]-[0-9]/ sleep 90 /^[^\.]*[0-9]\.[^\.]*[0-9]\.[^\.]+\..+\./ sleep 90 /^(dhcp|dialup|ppp|adsl)[^\.]*[0-9]/ sleep 90
内容をdbに反映 postmap /etc/postfix/client_access 再起動 /etc/init.d/postfix restart
|