CentOS 防火墙的策略动作drop和reject区别

CENTOS FIREWALLD防火墙学习笔记(八)- 防火墙的策略动作drop和reject区别

在firewalld中,DROP很简单就是直接丢弃数据,并不反馈任何回应。需要Client等待超时,Client容易发现自己被防火墙所阻挡。而REJECT则会更为礼貌的返回一个拒绝(终止)数据包(TCP FIN或UDP-ICMP-PORT-UNREACHABLE),明确的拒绝对方的连接动作。连接马上断开,Client会认为访问的主机不存在。

至于使用DROP还是REJECT更合适请大家根据自己的使用场景进行选择, REJECT是一种更符合规范的处理方式,并且在可控的网络环境中,更易于诊断和调试网络/防火墙所产生的问题;而DROP则提供了更高的防火墙安全性和稍许的效率提高,但是由于DROP不很规范(不很符合TCP连接规范)的处理方式,可能会对你的网络造成一些不可预期或难以诊断的问题。因为DROP虽然单方面的中断了连接,但是并不返回任何拒绝信息,因此连接客户端将被动的等到tcp session超时才能判断连接是否成功。

在部署防火墙时,如果是面向企业内部(或部分可信任网络),那么最好使用规范的REJECT方法,对于需要经常变更或调试规则的网络也是如此;而对于面向危险的Internet/Extranet的防火墙,则有必要使用更为粗暴但是安全的DROP方法,可以在一定程度上延缓攻击的进度或难度。

实验:

firewalld使用默认public:

测试1:

添加reject规则:

firewall-cmd --add-rich-rule='rule protocol value=icmp reject'

添加drop规则:

firewall-cmd --remove-rich-rule='rule protocol value=icmp reject'

firewall-cmd --add-rich-rule='rule protocol value=icmp drop'

reject提示目标不可达,drop提示超时。

测试2:

使用 nmap 分别扫描22222端口,使用nc命令发起 TCP 连接请求,同时使用tcpdump抓包:

nc 10.41.1.96 22222

添加reject规则:

firewall-cmd --add-rich-rule='rule family="ipv4" source address="10.41.1.97" port port=22222 protocol=tcp reject'

添加drop规则:

firewall-cmd --add-rich-rule='rule family="ipv4" source address="10.41.1.97" port port=33333 protocol=tcp drop

版权声明:

作者: freeclashnode

链接: https://www.freeclashnode.com/news/article-2168.htm

来源: FreeClashNode

文章版权归作者所有,未经允许请勿转载。

免费节点实时更新

热门文章

最新文章

归档