ipset 是 iptables 的扩展,它允许你创建匹配整个 IP 地址集合的规则。可以快速的让我们屏蔽某个 IP 段。这里分享一个屏蔽指定国家的 IP 访问的方法和一个屏蔽国外 IP 访问(仅允许国内 IP 访问)的方法,当我们遇到 CC 攻击,可以尝试选择和使用能有所缓解。

一 屏蔽国内用户访问

1、安装 ipset

#Debian/Ubuntu系统
apt-get -y install ipset#CentOS系统
yum -y install ipset

2、创建规则

#创建一个名为cnip的规则
ipset -N cnip hash:net
#下载国家IP段
wget -P . http://www.ipdeny.com/ipblocks/data/countries/cn.zone
#将IP段添加到cnip规则中
for i in $(cat /root/cn.zone ); do ipset -A cnip $i; done

3、开始屏蔽(ps 这个操作会屏蔽到国内的ip)

iptables -I INPUT -p tcp -m set --match-set cnip src -j DROP

4、解除屏蔽

#-D为删除规则
iptables -D INPUT -p tcp -m set --match-set cnip src -j DROP

二 仅允许国内IP访问

1、运行下面的命令获取国内 IP 网段,会保存到 /root/china_ssr.txt

wget -q --timeout=60 -O- 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | awk -F\| '/CN\|ipv4/ { printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > /root/china_ssr.txt

2、将下面脚本的完整代码保存为 /root/allcn.sh

mmode=$1#下面语句可以单独执行,不需要每次执行都获取网段表
#wget -q --timeout=60 -O- 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | awk -F\| '/CN\|ipv4/ { printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > /root/china_ssr.txtCNIP="/root/china_ssr.txt"gen_iplist() {cat <<-EOF$(cat ${CNIP:=/dev/null} 2>/dev/null)
EOF
}flush_r() {iptables  -F ALLCNRULE 2>/dev/null
iptables -D INPUT -p tcp -j ALLCNRULE 2>/dev/null
iptables  -X ALLCNRULE 2>/dev/null
ipset -X allcn 2>/dev/null
}mstart() {ipset create allcn hash:net 2>/dev/null
ipset -! -R <<-EOF
$(gen_iplist | sed -e "s/^/add allcn /")
EOFiptables -N ALLCNRULE
iptables -I INPUT -p tcp -j ALLCNRULE
iptables -A ALLCNRULE -s 127.0.0.0/8 -j RETURN
iptables -A ALLCNRULE -s 169.254.0.0/16 -j RETURN
iptables -A ALLCNRULE -s 224.0.0.0/4 -j RETURN
iptables -A ALLCNRULE -s 255.255.255.255 -j RETURN
#可在此增加你的公网网段,避免调试ipset时出现自己无法访问的情况iptables -A ALLCNRULE -m set --match-set allcn  src -j RETURN
iptables -A ALLCNRULE -p tcp -j DROP}if [ "$mmode" == "stop" ] ;then
flush_r
exit 0
fiflush_r
sleep 1
mstart

3、设置可执行权限

chmod a+x /root/allcn.sh

4、运行后国外 IP 无法访问网站

/root/allcn.sh

如果运行报错,大概率是win和linux的换行符不一样导致的。推荐这么处理

# 使用vim打开文件
vim allcn.sh
# 转换格式
:set ff=unix
# 保存文件
:wq

5、运行后国外 IP 恢复访问网站

/root/allcn.sh stop

使用iptables+脚本实现只允许中国IP访问服务器相关推荐

  1. 编写iptables脚本实现IP地址、端口过滤

    实验案例:公司使用一台运行RHEL5系统的服务器作为网关,分别连接三个网络,其中LAN1为普通员工电脑所在的局域网,LAN2为DNS缓存服务器所在的局域网.eth0通过10M光纤接入Internet. ...

  2. linux配置指定ip访问指定端口号,操作系统linux和dos linux下通过iptables只允许指定ip地址访问指定端...

    一篇 : linux下通过iptables只允许指定ip地址访问指定端口的设置方法 首先,清除所有预设置 iptables -F#清除预设表filter中的所有规则链的规则 iptables -X#清 ...

  3. 获取最新的中国IP的脚本,给ROS可以使用的脚本

    获取最新的中国IP的脚本,给ROS可以使用的脚本 wget http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest echo &qu ...

  4. java 屏蔽地域性访问_外贸网站屏蔽中国IP访问的多种方法

    大家都知道的原因,做外贸站,国人喜欢研究你的站,还总是帮你进行压力测试-- 首先想到要屏蔽中国IP就会是把中国IP库加入Nginx配置文件中,然后WEB服务器对比IP来达到屏蔽. 在Nginx中加de ...

  5. redis 公网ip访问_Redis很重要,怎么只允许指定IP访问?

    在 Linux 中安装了redis 服务,当在客户端通过远程连接的方式连接时,报could not connect错误. 错误的原因很简单,就是没有连接上redis服务,由于redis采用的安全策略, ...

  6. 自动分析黑名单及白名单的iptables脚本

    http://www.txwb.com/Article/serverHelp/gl/201005/70574.html  自动分析黑名单及白名单的iptables脚本 本文介绍的是一个自动分析黑名单和 ...

  7. Linux防火墙firewalld只允许特定IP访问

    Linux防火墙firewalld只允许特定IP访问 目录 目标 思路 直接说办法 其他注意事项 1.Centos 7 使用firewalld 而不是 iptables,iptables 是Cento ...

  8. centos----只需三条命令利用iptables和ipset长期封禁ip和临时封禁ip

    只需三条命令利用iptables和ipset长期封禁ip和临时封禁ip 下面的是临时封禁ip,请根据自己的情况修改,比如最后登录失败的2000条记录,截取失败次数最多的前60名 [root@cento ...

  9. iptables+tc实现isp级别每ip限速并限制会话数

    脚本1: 限制会话数 #!/bin/sh INET=192.168.0. IPS=1 IPE=253 IDEV=eth1 ODEV=eth0 COUNTER=$IPS while [ $COUNTER ...

  10. (转)中国IP业的尴尬处境,IP业务的难点

    "从规模来说,IP公司业务不如产品公司那么大,如果只从体量上考虑政策,不一定会重视到IP,因为IP对GDP贡献不大." 向建军告诉探索科技(techSugar),因为IP产业规模小 ...

最新文章

  1. pull to load more data
  2. SpringBoot笔记——1
  3. Codeforces Round #431 (Div. 2)
  4. vl_sift函数用法
  5. logback-spring.xml配置文件
  6. PTA—念数字(C语言)两种方法
  7. PHP7.1安装memcaehd扩展
  8. Python中字符串,列表,元组
  9. python程序运行原理
  10. 经纬度及其与坐标系的转换
  11. 使用moviepy为视频添加字幕
  12. 什么是CDN,网站被攻击时该怎么防
  13. 高胜美------《笑拥江山梦》
  14. 浮标水质监测站--河流湖泊水库现场水质自动监测的解决方案
  15. SSL双向认证和SSL单向认证的流程和区别
  16. 游戏创业团队应该选择Git还是Svn
  17. 黑马程序员 网络编程1
  18. Java并发基石CAS原理以及ABA问题
  19. matlab矩阵转化成一行向量
  20. python课程水平测试成绩查询_学业水平测试(学业水平考试成绩查询系统)

热门文章

  1. ffmpeg 处理字幕
  2. python数据库模糊查询_python中的mysql数据库like模糊查询
  3. 渗透测试教程(基础篇)-2
  4. 前言-小迪web安全渗透培训视频笔记
  5. 8款值得学习的科研论文作图软件!
  6. 图书管理系统的E-R图和数据库模型图
  7. ams1117-3.3v电源稳压芯片低压差线性稳压器
  8. siamfc-pytorch代码讲解(二):trainsiamfc
  9. Python解决高等数学问题
  10. pr2020lut导入_PS PR AE怎么批量导入LUTS调色预设