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日も待てば数字が表示されるともう・・・

まぁ、無い方が良いのですが('~')