Linux 使用 iptables屏蔽IP段

爱⌒轻易说出口 提交于 2020-03-12 01:51:49
netfilter/iptables IP 信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。

netfilter/iptables 的最大优点是它可以配置有状态的防火墙,这是 ipfwadm 和 ipchains 等以前的工具都无法提供的一种重要功能。有状态的防火墙能够指定并记住为发送或接收信息包所建立的连接的状态。防火墙可以从信息包的连接跟踪状态获得该信息。在决定新的信息包过滤时,防火墙所使用的这些状态信息可以增加其效率和速度。这里有四种有效状态,名称分别为 ESTABLISHED 、 INVALID 、 NEW 和 RELATED 。 

#添加屏蔽IP
#禁止此IP访问服务器
iptables -I INPUT -s 1.2.3.4 -j DROP

iptables -A INPUT -s 1.2.3.4 -j DROP
重新打开该IP访问
iptables -D INPUT -s 1.2.3.4 -j DROP

#禁止服务器访问此IP
iptables -A OUTPUT -d 1.2.3.4 -j DROP
如果要封某个网段:
iptables -I INPUT -s 1.2.3.0/24 -j DROP

#清空屏蔽IP
iptables -t filter -D INPUT -s 1.2.3.4 -j DROP
iptables -t filter -D OUTPUT -d 1.2.3.4 -j DROP

#一键清空所有规则
iptables -F

#查看
iptables -L INPUT

iptables -L

iptables-save(此命令将保存规则,下次开机自动执行)

#处理IP碎片数量,防止攻击,允许每秒100个
iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
#设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包
iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT





Linux下iptables屏蔽IP和端口号

封单个IP的命令:iptables -I INPUT -s 124.115.0.199 -j DROP

封IP段的命令:iptables -I INPUT -s 124.115.0.0/16 -j DROP

封整个段的命令:iptables -I INPUT -s 194.42.0.0/8 -j DROP

封几个段的命令:iptables -I INPUT -s 61.37.80.0/24 -j DROP

只封80端口:iptables -I INPUT -p tcp –dport 80 -s 124.115.0.0/24 -j DROP

解封:iptables -F

清空:iptables -D INPUT 数字

 

列出 INPUT链 所有的规则:iptables -L INPUT --line-numbers

删除某条规则,其中5代表序号(序号可用上面的命令查看):iptables -D INPUT 5

开放指定的端口:iptables -A INPUT -p tcp --dport 80 -j ACCEPT

禁止指定的端口:iptables -A INPUT -p tcp --dport 80 -j DROP

拒绝所有的端口:iptables -A INPUT -j DROP

 

以上都是针对INPUT链的操作,即是外面来访问本机的方向,配置完之后 需要保存,否则iptables 重启之后以上设置就失效

service iptables save

iptables 对应的配置文件  /etc/sysconfig/iptables

注意:iptables的规则匹配顺序上从上到下的,也就是说如果上下两条规则有冲突时,将会以上面的规则为准。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!