以谁为师 发表于 2015-10-19 13:32:58

Linux服务器限制国外IP访问

本帖最后由 以谁为师 于 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段。
#/bin/bash
wget http://www.ipdeny.com/ipblocks/data/countries/cn.zone

#调出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

#!/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 iptablesrestart(或者reload重新加载防火墙配置)

HUC-参谋长 发表于 2015-10-20 13:51:42

感谢楼主的分享~

Micah 发表于 2015-10-22 05:35:18

感谢楼主的分享~

r00tc4 发表于 2015-10-22 15:10:45

wtsqq123 发表于 2015-10-22 20:24:34

支持中国红客联盟(ihonker.org)

jl3a3b 发表于 2015-10-24 01:12:40

谢谢楼主的分享~

borall 发表于 2015-10-24 03:17:22

学习学习技术,加油!

Sty,涛 发表于 2015-10-24 06:10:29

还是不错的哦,顶了

wanmznh 发表于 2015-10-25 01:16:32

感谢楼主的分享~

Sty,涛 发表于 2015-10-25 03:55:43

支持,看起来不错呢!
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: Linux服务器限制国外IP访问