06/04/05 20:15:06
>>269
> iptables -P INPUT DROP /まず、これですべて拒否
> iptables -A INPUT -p tcp --dport 80 -j ACCEPT /WWWサービスの許可
> その後、神スクリプトを適用。
それじゃ全く意味がないだろう。
URLリンク(www.42ch.net)
のどのスクリプトを使ったのか知らんが、「日本からのアクセスのみ許可」
であれば、以下のようにすれ。
(1) # wget URLリンク(www.42ch.net)
フィルタ作成用Perlスクリプトをダウンロード。
(2) # wget fURLリンク(ftp.apnic.net)
最新のデータベースをダウンロード。
(3) # perl countryfilter.pl iptables JP < delegated-apnic-latest > filter.sh
JPを指定した形でデータベースからシェルスクリプトに変換。
(4) # iptables -N CKFILTERED
# iptables -F CKFILTERED
# iptables -P CKFILTERED -j ACCEPT
フィルタに該当した場合のチェイン(今回は日本からのアクセスになるので許可)を作成する。
(5) # source filter.sh
作成したシェルスクリプトを実行。 (これで "CKFILTER" チェインが作成される)
(6) # iptables -P CKFILTER -j RETURN
CKFILTER チェインで該当しなかったものを全て元のチェインに戻すようにする。
(7) # iptables -A INPUT -s 192.168.0.0/16 -j ACCEPT
# iptables -A INPUT -s 127.0.0.0/8 -j ACCEPT
ローカルネットワークの通信は全て許可しておく(上記以外にもあれば適宜追加)。
当たり前だがデータベースにローカルネットワークのアドレスは載ってないので。
(8) # iptables -A INPUT -j CKFILTER
入ってきたパケットをとりあえず CKFILTER チェインに飛ばすように指定。
(9) # iptables -P INPUT -j DROP
CKFILTERに飛んで戻ってきたもの(=日本以外のもの)は全てDROPと指定。
とすれ。適宜(2)以降を繰り返してデータベースをアップデートするように。