【Linux】关于iptables封禁国外ip方法

108次阅读
没有评论

共计 936 个字符,预计需要花费 3 分钟才能阅读完成。

  • 下载安装包
yum -y install iptables
yum -y install ipset
  • 添加集合
ipset create china hash:net maxelem 65536
  • 编写脚本

vim /home/china.sh

#!/usr/bin/env bash
##下载国内Ip网段并输入到~/cn.zone文件里面,可自定义(如不能访问该网址可自行百度找资源)。
wget --no-check-certificate -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)) }' > /home/china.txt
##清空china集合
ipset flush china

ip=$(cat /home/china.txt)
for i in $ip
do
##批量将国内Ip网段添加进china集合。
ipset add china $i
done
  • 给予脚本可执行权限
chmod +x /home/china.sh
  • 执行脚本
sh /home/china.sh
  • 检查是否将国外ip网段添加进china集合当中
ipset list china
  • 设置crontab定时任务
0 0 * * * /home/china.sh
  • 配置iptables限制访问

添加iptables规则

iptables -A INPUT -m set --match-set china src -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
  • 查询和外网交互的ip信息
iftop
正文完
 0
yule
版权声明:本站原创文章,由 yule 于2024-05-28发表,共计936字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码