iptables設定メモ
iptablesの設定について、かなり参考になるサイトを見つけた!! http://www.systemexpress.co.jp/centos/iptables.html (まるまるコピーですが・・・・)
mkdir /root/iptables vi /root/iptables/iptables_setup.sh
#!/bin/bash
# 受信は破棄、送信は許可、通過は破棄 iptables -P FORWARD DROP
# 自ホストからのアクセスを許可 iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
# 内部から行ったアクセスに対する外部からの返答アクセスを許可 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# fragment 破棄 iptables -A INPUT -f -j LOG --log-level debug --log-prefix 'FRAGMENT DROP:' iptables -A INPUT -f -j DROP
# ping of death 破棄 iptables -N PINGOFDEATH iptables -A PINGOFDEATH -m limit --limit 1/s --limit-burst 4 -j ACCEPT iptables -A PINGOFDEATH -j LOG --log-level debug --log-prefix 'PINGDEATH DROP:' iptables -A PINGOFDEATH -j DROP iptables -A INPUT -p icmp --icmp-type echo-request -j PINGOFDEATH
# broadcast 破棄 iptables -A INPUT -d 255.255.255.255 -j DROP iptables -A INPUT -d 224.0.0.1 -j DROP
# サーバーで利用するポートを許可 iptables -A INPUT -p tcp --sport 20 -j ACCEPT iptables -A INPUT -p tcp --dport 21 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 25 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 110 -j ACCEPT iptables -A INPUT -p tcp --dport 143 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -A INPUT -p tcp --dport 465 -j ACCEPT iptables -A INPUT -p tcp --dport 587 -j ACCEPT iptables -A INPUT -p tcp --dport 873 -j ACCEPT iptables -A INPUT -p tcp --dport 989 -j ACCEPT iptables -A INPUT -p tcp --dport 990 -j ACCEPT iptables -A INPUT -p tcp --dport 993 -j ACCEPT iptables -A INPUT -p tcp --dport 995 -j ACCEPT #iptables -A INPUT -p tcp --dport 3306 -j ACCEPT iptables -A INPUT -p tcp --dport 4000:4029 -j ACCEPT iptables -A INPUT -p tcp --dport 10000 -j ACCEPT #iptables -A INPUT -p tcp --dport 10025 -j ACCEPT
# ログをとる iptables -A INPUT -m limit --limit 1/s -j LOG --log-level debug --log-prefix 'INPUT DROP:' iptables -A INPUT -j DROP iptables -A FORWARD -m limit --limit 1/s -j LOG --log-level debug --log-prefix 'FORWARD DROP:' iptables -A FORWARD -j DROP
上記までが、プログラム
/etc/rc.d/init.d/iptables save /etc/rc.d/init.d/iptables start
chmod 700 /root/iptables/iptables_setup.sh /root/iptables/iptables_setup.sh chkconfig iptables on
ブロックする海外IPアドレスリストの作成 http://www.systemexpress.co.jp/centos/ckfilter.html vi /root/iptables/ckfilter_setup.sh
!/bin/bash
COUNTRYLIST=‘US KR CN’
wget -q http://ftp.apnic.net/stats/apnic/delegated-apnic-latest
for country in $COUNTRYLIST
do
for ip in cat delegated-apnic-latest | grep "apnic|$country|ipv4|"
do
COUNTRY=echo $ip | awk -F"|" '{ print $2 }'
DROP_IP=echo $ip | awk -F"|" '{ print $4 }'
TMPCIDR=echo $ip | awk -F"|" '{ print $5 }'
FLTCIDR=32 while [ $TMPCIDR -ne 1 ]; do TMPCIDR=$*1 FLTCIDR=$*2 done echo “$DROP_IP/$FLTCIDR” >> /root/iptables/ckip done done
chmod 700 /root/iptables/ckfilter_setup.sh /root/iptables/ckfilter_setup.sh
ファイアーウォール(iptabes)にckipを設定
if [ -e "/root/iptables/ckip" ]; then iptables -N CKFILTER iptables -A CKFILTER -j DROP
for ip in `cat /root/iptables/ckip` do iptables -I INPUT -s $ip -j CKFILTER done fi
/root/iptables/iptables_setup.sh
以上、