学习啦 > 学习电脑 > 电脑安全 > 防火墙知识 >

iptables防火墙实现阻挡常见攻击的实用设置教程

时间: 加城1195 分享

  防火墙借由监测所有的封包并找出不符规则的内容,可以防范电脑蠕虫或是木马程序的快速蔓延。这篇文章主要介绍了iptables防火墙实现阻挡常见攻击的实用设置分享,本文讲解了防止 SYN 洪水攻击、丢弃 NULL 空数据包、丢弃异常的 XMAS 数据包、丢弃无效数据包等应对异常数据的设置方法,需要的朋友可以参考下

  方法步骤

  从 Yaocheng 那里看到了这篇文章,好东西,需要珍藏下。这里列举了 Linux 下面几个经常遇见的攻击手段和应对手段。以下 iptables 规则应该普遍适应于各种 Linux 版本,只是要注意保存,以免系统重启后失效

  初始创建的 TCP 连接必须含 SYN

  复制代码代码如下:

  iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

  丢弃 Fragments 碎片数据包 (碎片数据包攻击的后果: 可能导致正常数据包丢失)

  复制代码代码如下:

  iptables -A INPUT -f -j DROP

  防止 SYN 洪水攻击 (限制的速度根据自身情况调整)

  复制代码代码如下:

  iptables -A INPUT -p tcp -m state --state NEW -m limit --limit 100/second --limit-burst 300 -j ACCEPT

  iptables -A INPUT -p tcp -m state --state NEW -j DROP

  丢弃异常的 XMAS 数据包 (异常的 XMAS 数据包攻击的后果: 可能导致某些系统崩溃)

  复制代码代码如下:

  iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

  iptables -A INPUT -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP

  iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP

  丢弃 NULL 空数据包

  复制代码代码如下:

  iptables -A INPIT -p tcp --tcp-flags ALL NONE -j DROP

  允许有限的 TCP RST 请求 (限制的速度根据自身情况调整)

  复制代码代码如下:

  iptables -A INPUT -p tcp -m tcp --tcp-flags RST RST -m limit --limit 10/second --limit-burst 30 -j ACCEPT

  丢弃无效数据包

  复制代码代码如下:

  iptables -A INPUT -m state --state INVALID -j DROP

  iptables -A FORWARD -m state --state INVALID -j DROP

  iptables -A OUTPUT -m state --state INVALID -j DROP

  阻挡欺诈 IP 地址的访问 (以下为 RFC1918 类型和 IANA 预留地址,多为 LAN 或者多播地址,这些是不可能作为公网地址源的)

  复制代码代码如下:

  iptables -A INPUT -s 10.0.0.0/8 -j DROP

  iptables -A INPUT -s 169.254.0.0/16 -j DROP

  iptables -A INPUT -s 172.16.0.0/12 -j DROP

  iptables -A INPUT -s 127.0.0.0/8 -j DROP

  iptables -A INPUT -s 224.0.0.0/4 -j DROP

  iptables -A INPUT -d 224.0.0.0/4 -j DROP

  iptables -A INPUT -s 240.0.0.0/5 -j DROP

  iptables -A INPUT -d 240.0.0.0/5 -j DROP

  iptables -A INPUT -s 0.0.0.0/8 -j DROP

  iptables -A INPUT -d 0.0.0.0/8 -j DROP

  iptables -A INPUT -d 239.255.255.0/24 -j DROP

  iptables -A INPUT -d 255.255.255.255 -j DROP

  阻挡自定义的恶意 IP 地址的访问

  复制代码代码如下:

  iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP

  禁止 ICMP PING

  复制代码代码如下:

  iptables -A INPUT -p icmp -m icmp --icmp-type echo-request -j DROP

  补充阅读:防火墙主要使用技巧

  一、所有的防火墙文件规则必须更改。

  尽管这种方法听起来很容易,但是由于防火墙没有内置的变动管理流程,因此文件更改对于许多企业来说都不是最佳的实践方法。如果防火墙管理员因为突发情况或者一些其他形式的业务中断做出更改,那么他撞到枪口上的可能性就会比较大。但是如果这种更改抵消了之前的协议更改,会导致宕机吗?这是一个相当高发的状况。

  防火墙管理产品的中央控制台能全面可视所有的防火墙规则基础,因此团队的所有成员都必须达成共识,观察谁进行了何种更改。这样就能及时发现并修理故障,让整个协议管理更加简单和高效。

  二、以最小的权限安装所有的访问规则。

  另一个常见的安全问题是权限过度的规则设置。防火墙规则是由三个域构成的:即源(IP地址),目的地(网络/子网络)和服务(应用软件或者其他目的地)。为了确保每个用户都有足够的端口来访问他们所需的系统,常用方法是在一个或者更多域内指定打来那个的目标对象。当你出于业务持续性的需要允许大范围的IP地址来访问大型企业的网络,这些规则就会变得权限过度释放,因此就会增加不安全因素。服务域的规则是开放65535个TCP端口的ANY。防火墙管理员真的就意味着为黑客开放了65535个攻击矢量?

  三、根据法规协议和更改需求来校验每项防火墙的更改。

  在防火墙操作中,日常工作都是以寻找问题,修正问题和安装新系统为中心的。在安装最新防火墙规则来解决问题,应用新产品和业务部门的过程中,我们经常会遗忘防火墙也是企业安全协议的物理执行者。每项规则都应该重新审核来确保它能符合安全协议和任何法规协议的内容和精神,而不仅是一篇法律条文。

  四、当服务过期后从防火墙规则中删除无用的规则。

  规则膨胀是防火墙经常会出现的安全问题,因为多数运作团队都没有删除规则的流程。业务部门擅长让你知道他们了解这些新规则,却从来不会让防火墙团队知道他们不再使用某些服务了。了解退役的服务器和网络以及应用软件更新周期对于达成规则共识是个好的开始。运行无用规则的报表是另外一步。黑客喜欢从来不删除规则的防火墙团队。


iptables防火墙实现阻挡常见攻击的实用设置教程相关文章:

1.怎么设置防火墙不拦截

2.如何解除被防火墙阻止运行的程序

3.阿里云防火墙如何设置

4.防火墙解除阻止方法是什么

5.路由器攻击防护功能怎么设置

4041803