*** Postfixでspamメールを拒否する [#l736438f]
- [[Postfix実用ガイド>http://www.sea-bird.org/blog/archives/2005/0301_234250.html]]を読んでいると、spamメールの拒否方法として、USB(Unsolicited Bulk Email)というのがあり~
Postfixでのspamメールの拒否は、SMTPのプロトコルにあたる各トランザクションで制御することができるとあります。~
そこでなにもやらないまでも暫定的にでも設定しておけば、かなりのspamメールを拒否できるだろうと思い~
設定してみることにします。COLOR(RED){※毎日平均,50通前後のspamが届きます(怒)}
- USBでできるセクションは以下のとおり
smtpd_client_restrictions ()
smtpd_helo_restrictions (HELO)
smtpd_sender_restrictions (MAIL FROM:)
smtpd_recipient_restrictions (RCPT TO:)
smtpd_data_restrictions (DATA)
header_checks (DATA)
body_checks (DATA)
※トランスポートによるフィルターも可能
- spam拒否のポリシーは、運用しながら随時対応をし進化していく方針でよいと考えます。~
私は以下の考えで設定することにしてみます。
・送信元クライアントを制限する
・送信者の制限およびドメイン全体を制限する
・Realtime Blackhole List制限を導入する
・添付されたファイル拡張子を制限する
*** smtpd_client_restrictions / 送信元クライアントの情報(IPアドレス)による拒否 [#sbd2419d]
- 送信元クライアントのIPアドレスを元に、spamメールを拒否する方法を導入してみたいと思います。~
悪質なspam送信元は、Realtime Blackhole Listによりデータベース化=ORDBされているので積極的に使用し、~
データベース化されていない小童?は、自分で手入力することにより対処することにします。
- COLOR(RED){'''smtpd_client_restrictions'''} 設定内容例
# vi /etc/postfix/main.cf
smtpd_client_restrictions = permit_mynetworks,
reject_rbl_client spamcop.net,
reject_rbl_client dynablock.wirehub.net,
reject_rbl_client opm.blitzed.org,
reject_rbl_client relays.visi.com,
reject_rbl_client sbl.spamhaus.org,
check_client_access hash:/etc/postfix/reject_client,
permit
|reject_rbl_client|Realtime Blackhole ListのDBを指定します|
|check_client_access|Realtime Blackhole ListのDBには存在しないIPアドレスを指定します|
- ORDB上にない送信元クライアントのIPアドレスを記述します。
# vi /etc/postfix/reject_client
++ IPアドレス記述のサンプル。
192.168.0.10 REJECT → 192.168.0.10 のIPアドレスを遮断
192.167 REJECT → 192.167.0.1/24 のIPアドレスを遮断
++ hash を作成します。この作業を行わないと上記で記述したIPアドレスの拒否が行えません。
# /usr/sbin/postmap /etc/postfix/reject_client
++ 上記コマンドを実行すると、reject_client.db ファイルが作成されています。
# ls /etc/postfix/reject_client.db
++ Postfixに reject_client.db ファイルを再読み込みするように指示します。
# /etc/rc.d/init.d/postfix reload
*** smtpd_sender_restrictions / 送信者のドメインによる拒否 [#i730bc4d]
- 送信者のドメインを元に、spamメールを拒否する方法を導入してみたいと思います。
- COLOR(RED){'''smtpd_sender_restrictions'''} 設定内容例
# vi /etc/postfix/main.cf
smtpd_sender_restrictions = reject_unknown_sender_domain,
reject_non_fqdn_sender hash:/etc/postfix/reject_sender
- 送信者のドメインを記述します。
# vi /etc/postfix/reject_sender
++ ドメイン記述のサンプル。
hoge@hoge.co.jp REJECT → hoge@hoge.co.jp のアドレスを遮断
hoge.co.jp REJECT → hoge.co.jp のドメイン全体を遮断
++ hash を作成します。この作業を行わないと上記で記述したIPアドレスの遮断を行いません。
# /usr/sbin/postmap /etc/postfix/reject_sender
++ 上記コマンドを実行すると、reject_sender.db ファイルが作成されています。
# ls /etc/postfix/reject_sender.db
++ Postfixに reject_sender.db ファイルを再読み込みするように指示します。
# /etc/rc.d/init.d/postfix reload
*** header_checks / ヘッダ情報の拡張子・偽装による拒否 [#i345fc9f]
- Postfixで特定拡張子の添付ファイルを拒否させたい
- spam送信内容のヘッダ情報を元に特定の拡張子や(たとえば、src, pif)、Fromの偽装や変なメーラーを~
使っているメールを拒否する方法を導入します。~
ググってみても単なる気休めだから本格的にやるのであれば、ウイルススキャンソフトとか導入すべきと思います。~
まあやらないよりも放置しておくと溜まりにたまってしまうので、こんなことで自己防衛です。~
- COLOR(RED){'''header_checks'''} 設定内容例~
※拒否すべきヘッダの正規表現をhashリストに加えるだけ。
# vi /etc/postfix/main.cf
header_checks = regexp:/etc/postfix/header_checks
(コメントを外すだけw)
- spam送信内容から拒否すべきヘッダ情報を正規表現にて記述します。
# vi /etc/postfix/header_checks
++ 正規表現記述のサンプル。
/^X-Mailer:.*PostMaster General/ REJECT
/name=.*\.scr/ REJECT
/name=\".*\.inf\"/ REJECT
/name=\".*\.scr\"/ REJECT
/name=\".*\.pif\"/ REJECT
/name=\".*\.bat\"/ REJECT
/name=\".*\.dll\"/ REJECT
/name=\".*\.reg\"/ REJECT
/^Return-Path:.*<#.*@.*>/ REJECT
/^From:.*<#.*@.*>/ REJECT
/^Received:/ IGNORE
++ COLOR(RED){''/^Received:/ IGNORE''} は、Receivedのヘッダを非表示化する方法っす。
*** 参考にさせて頂いたサイト様 [#b16971c7]
- [[送信元・送信者による制限>http://www.ansi.co.jp/tech/mail/spam/sender_restrictions.html]]
- [[telnetでメール送信>http://ash.or.jp/net/telnet_smtp.htm]]
- [[http://www.kozupon.com/mail/postfix2.html>http://www.kozupon.com/mail/postfix2.html]]
- [[Postfixで特定拡張子の添付ファイルを拒否させたい>http://www.itmedia.co.jp/help/tips/linux/l0530.html]]