2006年10月28日
Tweet
2006年02月11日あたりの記事で書きましたが、僕の管理するサーバーへの SSH はiptables で日本からのみの接続を許可しました。
また、特定の国からのアクセスを「拒否」することも可能であり、krfilter - deny accesses from .kr あたりに詳しく記述されています。
#パフォーマンスへの影響はよくわかりません。
その設定で僕はとても満足していました。iptables であれば接続に関して柔軟に設定ができますし、パケットが飛んでこないというのは精神的にもいいものです。
最近 VPS サーバーを借りました。そこのサーバーでは、iptables が操作できないというのです。その状態でメールサーバーを運用していると、spam メールがとんでもないことになってしまいます。
そこでスパムメールをよく配信してくる国で、なおかつビジネスに支障がでない範囲で特定の国からの smtp アクセスを遮断することにしました。今回は仕方なく postfix ですが本当は iptables の方がいいような気がします・・。
------------------------------------------------
■特定のIPアドレスからのメールを拒否・許可する
smtpd_client_restrictions の設定
・/etc/postfix/main.cf に以下を追加
smtpd_client_restrictions =
permit_mynetworks
check_client_access cidr:/etc/postfix/reject_client.cidr
# [cidr:]に注意[hash:]とか[regexp:]じゃないよ。
・/etc/postfix/reject_client.cidr ファイルを作成
-------------
x.x.x.x/32 OK
x.x.x.x/24 REJECT
x.x.x.x/16 REJECT
-------------
# 上から参照されるらしい
#postmap は必要ありません。
・postfix のリロード
/etc/init.d/postfix reload
------------------------------------------------
で、悩んだところ。
他のサイトなどで案内されている check_client_access は hash 形式が多いようです。それだとネットワークアドレスで指定することができず、ファイルが膨大になってしまいます。
192.168.0.0 〜 192.168.255.255 からのアクセスを拒否するのに、
-----------
192.168.0. REJECT
192.168.1. REJECT
192.168.2. REJECT
- 略 -
-----------
こう書いていたのでは大変なことです。
CIDR 形式だと、192.168.0.0/16 と指定すればいいので楽です。ただ、hash の場合と同じように postmap してたので、エラーが出ていました。そのままでよかったんですね。
あとはIPアドレスのリストなどを入手。
アトランティス堂:IP2HOST PLUS
このソフトを使用して、delegated-apnic-latest.txt やら、delegated-ripencc-latest.txt やらを取得します。
続いて
一網打尽
というソフトをダウンロードし、apnic などのIPアドレスファイルを解析します。これによって、特定の地域のIPアドレスを加工しやすくなります。
今回は、韓国と中国とロシアについて拒否の設定を行いました。今後調整していきたいと思います。
ロシアのIPアドレスの一部を登録すると、maillog にエラーが。結構量が多くて面倒なんでエラーの出てるあたりはごっそり削除してしまいました。まあ韓国と中国だけでも拒否できればいいかな。
あとはパフォーマンスが心配です。そのため、日本のアドレスをOKと言う形で登録しちゃいました。
また、特定の国からのアクセスを「拒否」することも可能であり、krfilter - deny accesses from .kr あたりに詳しく記述されています。
#パフォーマンスへの影響はよくわかりません。
その設定で僕はとても満足していました。iptables であれば接続に関して柔軟に設定ができますし、パケットが飛んでこないというのは精神的にもいいものです。
最近 VPS サーバーを借りました。そこのサーバーでは、iptables が操作できないというのです。その状態でメールサーバーを運用していると、spam メールがとんでもないことになってしまいます。
そこでスパムメールをよく配信してくる国で、なおかつビジネスに支障がでない範囲で特定の国からの smtp アクセスを遮断することにしました。今回は仕方なく postfix ですが本当は iptables の方がいいような気がします・・。
------------------------------------------------
■特定のIPアドレスからのメールを拒否・許可する
smtpd_client_restrictions の設定
・/etc/postfix/main.cf に以下を追加
smtpd_client_restrictions =
permit_mynetworks
check_client_access cidr:/etc/postfix/reject_client.cidr
# [cidr:]に注意[hash:]とか[regexp:]じゃないよ。
・/etc/postfix/reject_client.cidr ファイルを作成
-------------
x.x.x.x/32 OK
x.x.x.x/24 REJECT
x.x.x.x/16 REJECT
-------------
# 上から参照されるらしい
#postmap は必要ありません。
・postfix のリロード
/etc/init.d/postfix reload
------------------------------------------------
で、悩んだところ。
他のサイトなどで案内されている check_client_access は hash 形式が多いようです。それだとネットワークアドレスで指定することができず、ファイルが膨大になってしまいます。
192.168.0.0 〜 192.168.255.255 からのアクセスを拒否するのに、
-----------
192.168.0. REJECT
192.168.1. REJECT
192.168.2. REJECT
- 略 -
-----------
こう書いていたのでは大変なことです。
CIDR 形式だと、192.168.0.0/16 と指定すればいいので楽です。ただ、hash の場合と同じように postmap してたので、エラーが出ていました。そのままでよかったんですね。
あとはIPアドレスのリストなどを入手。
アトランティス堂:IP2HOST PLUS
このソフトを使用して、delegated-apnic-latest.txt やら、delegated-ripencc-latest.txt やらを取得します。
続いて
一網打尽
というソフトをダウンロードし、apnic などのIPアドレスファイルを解析します。これによって、特定の地域のIPアドレスを加工しやすくなります。
今回は、韓国と中国とロシアについて拒否の設定を行いました。今後調整していきたいと思います。
ロシアのIPアドレスの一部を登録すると、maillog にエラーが。結構量が多くて面倒なんでエラーの出てるあたりはごっそり削除してしまいました。まあ韓国と中国だけでも拒否できればいいかな。
あとはパフォーマンスが心配です。そのため、日本のアドレスをOKと言う形で登録しちゃいました。