iptablesで日本国内からのみ接続させ、海外からは接続させないようにするための設定についてです。
設定スクリプト
前回(iptablesサンプル)の setip.sh実行に引き続いて、sh jp_only.sh を実行してください。
setip.sh内で -j ACCEPT_FILTER と記述されていた箇所では、日本国内からの接続のみを許可するようになり、海外からの接続は拒否します。
設定後、iptables設定内容の保存を忘れないようにして下さい。保存方法については、前回を参照してください。
jp_only.sh
#!/bin/sh IPTABLES=/sbin/iptables wget -q -N http://nami.jp/ipv4bycc/cidr.txt.gz gunzip -q -f -c cidr.txt.gz > cidr.txt if [ -f cidr.txt ]; then $IPTABLES -F ACCEPT_FILTER sed -n 's/^JP\t//p' cidr.txt | while read address; do $IPTABLES -A ACCEPT_FILTER -s $address -j ACCEPT done $IPTABLES -A ACCEPT_FILTER -j DROP fi
説明
jp_only.sh を実行すると、次のようなiptablesコマンドが実行されます。
x.x.x.x/yy の箇所が IPアドレス(のCIDR表記)です。
/sbin/iptables -F ACCEPT_FILTER /sbin/iptables -A ACCEPT_FILTER -s x.x.x.x/yy -j ACCEPT /sbin/iptables -A ACCEPT_FILTER -s x.x.x.x/yy -j ACCEPT : /sbin/iptables -A ACCEPT_FILTER -j DROP
/sbin/iptables -F ACCEPT_FILTER
ACCEPT_FILTERチェインの内容を全消去します。
/sbin/iptables -A ACCEPT_FILTER -s x.x.x.x/yy -j ACCEPT
x.x.x.x/yy の箇所が日本国内のIPアドレス(のCIDR表記)で記述されています。このような記述の行がたくさん続きます。
これらの行により、接続元が日本国内のIPアドレスの場合、ACCEPT(パケット受信を許可)します。
/sbin/iptables -A ACCEPT_FILTER -j DROP
/sbin/iptables -A ACCEPT_FILTER -s x.x.x.x/yy -j ACCEPT で列挙されているIPアドレスのどれでも無い場合は、日本国内のIPアドレスでは無い(海外のIPアドレス)ので、DROP(パケットを破棄)します。
2014/1/26 追記
WEBサーバとして公開している場合
一般に公開するWEBサーバの場合、海外からの接続を遮断すると、google/yahoo/bingなどのクローラのアクセスまでブロックします。
その為、検索にひっかからないようになりますので、WEBへのアクセスは海外からも接続できるようにします。
前回(iptablesサンプル)の setip.sh の内容を以下のように修正して下さい。
変更前
#Webサーバの場合:http,https許可 $IPTABLES -A INPUT -p tcp -m multiport --dport 80,443 -m state --state NEW -j ACCEPT_FILTER
変更後
#Webサーバの場合:http,https許可 $IPTABLES -A INPUT -p tcp -m multiport --dport 80,443 -m state --state NEW -j ACCEPT
これで、google/yahoo/bingで WEBの内容が検索にひっかかるようになります。
コメント
度々申し訳ございません。
お力を貸して頂くメッセージを書き込ませて頂きました。
前回のiptablesサンプルを実行して希望通りにはなりましたが、上記の設定を
行った後、今度は特定のサーバ(192.***.***.***)からsshで内部のWebサーバへの
接続をしようと思ったのですが、sshが接続できません。
ssh,ping(icmp)は内部のみOKをして、webサーバのみ国内からのアクセスを
許可するようにしたいのですが、どうしたらすればよろしいのでしょうか。
大変申し訳ございません。
よく考えたら、さっきと同じで特定のサーバのIPを記載すればよかったのですね。
解決いたしました。
前回、今回の質問はクローズでお願いします。
今後ともよろしくお願いします。