krfilter
特定のアジアからのアクセスをiptablesでブロックします。
krfilter - deny accesses from .kr を参考にしています。
下記はDebian以外では確認してません('~')
■krfilter.start作成
拒否したい国のデータは上記サイトの
【各国用フィルタのダウンロード】内のどれかを利用させて頂きます_(._.)_
# mkdir /etc/krfilter
# cd /etc/krfilter
# wget 各国用フィルタのいずれかをダウンロード
# vi krfilter.start
------ ここから ------
#!/bin/sh
iptables -N KRFILTER
iptables -N KRFILTERED
sh /etc/krfilter/(wgetで落としたファイル名)
iptables -A KRFILTER -j ACCEPT
iptables -A KRFILTERED -j LOG --log-prefix "Rej-TCP "
iptables -A KRFILTERED -j DROP
iptables -A INPUT -p tcp -m state --state NEW -j KRFILTER
------ ここまで ------
# chmod 755 krfilter.start
# vi krfilter.stop
------ ここから ------
#!/bin/sh
iptables -D INPUT 1
iptables -F KRFILTER
iptables -X KRFILTER
iptables -F KRFILTERED
iptables -X KRFILTERED
------ ここまで ------
# chmod 755 krfilter.stop
# vi /etc/init.d/krfilter
------ ここから ------
#!/bin/sh
if [ ! -f /etc/krfilter/krfilter.start ]; then
exit 0
fi
if [ ! -f /etc/krfilter/krfilter.stop ]; then
exit 0
fi
case "$1" in
start)
echo "Starting firewall with the following config:"
/etc/krfilter/krfilter.start
echo "."
;;
stop)
echo "Stopping firewall with the following config:"
/etc/krfilter/krfilter.stop
echo "."
;;
*)
echo "Usage: /etc/init.d/ppp {start|stop|restart|force-reload}"
exit 1
;;
esac
exit 0
------ ここまで ------
# chmod 755 /etc/init.d/krfilter
サンプルはおいておきます。
・起動
# /etc/init.d/krfilter start
・停止
# /etc/init.d/krfilter stop
■自動起動
# cd /etc/rc3.d
# ln -s ../init.d/krfilter ./S99krfilter
■ログ確認
# dmesg | grep "Rej-TCP" | wc -l
1日も待てば数字が表示されるともう・・・
まぁ、無い方が良いのですが('~')