本帖最后由 以谁为师 于 2015-10-19 14:34 编辑
ip库: http://www.ipdeny.com/ipblocks/
#下载ip库 (国内可能无法访问)
#wget http://rfyiamcool.googlecode.com/files/allip.txt
#把分号去掉
sed -i 's/;$//' allip.txt
下面分享下shell脚本用来导出国内ip段。
[Shell] 纯文本查看 复制代码 #/bin/bash
wget [url]http://www.ipdeny.com/ipblocks/data/countries/cn.zone[/url]
#调出ip段,导入到iptables配置文件中
for i in `cat cn.zone`
do
echo "iptables -A INPUT -s $i -j ACCEPT" >>iptables.sh
done
这样就得到了国内地址,在iptables设置INPUT链默认拒绝“iptables -P INPUT DROP”,只放行我们指定的ip地址。
参考配置
vi /etc/sysconfig/iptables
[Shell] 纯文本查看 复制代码 #!/bin/sh
modprobe ipt_MASQUERADE
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X
###########################INPUT键###################################
iptables -P INPUT DROP
#INPUT默认拒绝
#iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i ppp0 -j ACCEPT
#允许接口
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#接受已经建立连接的TCP连接
iptables -A INPUT -p tcp -m multiport --dports 1723,110,25 -j ACCEPT
#允许外网地址访问vpn,邮件端口
iptables -A INPUT -p tcp -s 60.191.37.XX -m multiport --dport 21,22,139,3306 -j ACCEPT
#放行公司ip地址
#######################FORWARD链###########################
iptables -P FORWARD DROP
#放行国内ip访问80
iptables -A INPUT -s 1.0.1.0/24 -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -s 1.0.2.0/23 -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -s 1.0.8.0/21 -p tcp -m tcp --dport 80 -j ACCEPT
。 。 。 。 。 。
#service iptables restart (或者reload重新加载防火墙配置) |