用 iptables 屏蔽来自指定国家的IP


在你建blog的时候你就应该考虑到网站被恶意扫描的情况以及应对方法,一种比较极端和直接的方法是直接屏蔽(虽然说我还没有遇到过这种情况,当然我也不希望遇到,但是,未雨绸缪吧,而且也是个熟悉shell脚本编写的机会,特地学习一下),大体步骤如下:

1.先下载要进行屏蔽的ip地址列表文件
我们先到IPdeny下载以国家代码编制好的ip地址列表,比如下载cn.zone:
wget http://www.ipdeny.com/ipblocks/data/countries/cn.zone
2.使用脚本来进行屏蔽
现在有了国家的所有IP地址,要想屏蔽这些 IP 就很容易了,直接写个脚本逐行读取要屏蔽的IP列表文件并加入到iptables中:
#!/bin/bash
# Block traffic from a specific country list
# written by vpsee.com, rewrite by _zero

COUNTRY=('cn' 'hk' 'tw')
IPTABLES=/sbin/iptables
EGREP=/bin/egrep

if [ "$(id -u)" != "0" ]; then
	echo "you must be root" 1>&2
	exit 1
fi

resetrules() {
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
}

resetrules

for c in ${COUNTRY[@]}
do
	wget "http://www.ipdeny.com/ipblocks/data/countries/$c.zone"
	country_file=$c.zone

	IPS=$($EGREP -v "^#|^$" $country_file)
	for ip in $IPS
	do
		echo "blocking $ip"
		$IPTABLES -A INPUT -s $ip -j DROP
	done
done

exit 0

根据自己需要添加/删除要屏蔽的指定国家的IP即可。


《“用 iptables 屏蔽来自指定国家的IP”》 有 8 条评论

  1. Linux 防火墙和 iptables
    http://liaoph.com/iptables/
    `
    Netfilter 与 iptables 的关系(内核态框架&用户态应用)
    使用 iptables 进行包过滤
    表(iptables 中共有 4 个表:filter,nat,mangle 和 raw。filter 表主要实现过滤功能,nat 表实现 NAT 功能,……)
    链(常用的 filter 表中的 INPUT、OUTPUT 和 FORWARD 链)
    匹配
    目标动作(对匹配的数据包执行一个目标动作,目标动作由 -j 来指定)
    管理类命令
    范例
    iptables 的状态追踪
    保存规则
    iptables 的错误恢复
    `

  2. 网站限制IP地址访问-免费在线和离线IP库精确到国家/省/市IP地址
    https://wzfou.com/ip-ku/
    https://www.daniao.org/3915.html
    `
    一、PHP代码-禁止IP访问网站
    二、JS代码-禁止IP访问网站
    三、免费在线和离线IP库汇总
    3.1 淘宝IP库
    3.2 网易IP库
    3.3 搜狐IP库
    3.4 IPIP.net IP库
    3.5 IP.la IP库
    3.6 IP138 IP查询
    3.7 百度地图IP查询
    3.8 腾讯位置服务
    3.9 ipdatabase-二叉树快速搜索IP地址数据库
    3.10 ip2region-Binary,B树和纯内存三种查询IP库
    3.11 纯真IP库
    四、总结
    `

  3. 阿里云ip段
    https://blog.csdn.net/eagle_min/java/article/details/82260622

    全球网络公司IP地址、IP地址段、互联网公司AS号码
    http://as.chacuo.net/company

    `
    有钱的话,建议买ipip的付费库,里面有标明;
    没钱的话,去分析ASN的数据进行提取,或是从网上找一找(但从网上找的这个准确性就没人能保证了);
    `

    http://as.chacuo.net/CN
    `
    全球互联网,实际上由一个个自治系统(AS, Autonomous System)连接而成。自治系统内可以由许许多多路由器组成。每个自治系统在全球有一个唯一编号(ASN, Autonomous System Number)。

    该页面显示是中国全球所有as自治系统号码数据。自治系统号码数据来自世界asn分配中心数据系统,准确率高,每天会自动 同步国际信息
    `

  4. 放行WAF回源IP段
    https://www.alibabacloud.com/help/zh/doc-detail/99399.htm

    谁有阿里云所有的IP段
    https://developer.aliyun.com/ask/245281

    阿里云IP地址有哪些?阿里云IP地址段
    https://www.shangyunbang.com/eip/228.html

    在哪里能下载到阿里云腾讯云所有IP段?
    https://www.hostloc.com/thread-451015-1-1.html

    阿里云(aliyun)、腾讯云(qcloud)、百度云等常用CDN节点IP段整理(2019年12月011日更新)
    https://www.laoliang.net/jsjh/news/5835.html

    屏蔽阿里云的所有 IP 的 Nginx 配置,防止阿里云员工审查你的网站
    https://www.v2ex.com/t/130672

回复 hi 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注