使用firewalld-cmd将默认防火墙策略更改为DENY

使用firewalld-cmd将默认防火墙策略更改为DENY

根据CIS CentOS Linux 7 BenchmarkCentos7的文档,建议:

3.5.3.2.1 Ensure default deny firewall policy 

表示将所有策略设置为 DROP:

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

但是,每当我运行“ firewall-cmd --reload”时,上述策略都会设置回ACCEPT

iptables以及firewalld如何将上述iptables策略更改为DROP使用"firewall-cmd",以便更改是永久性的并且 CIS 基准不再抱怨它之间的相关性是什么?

默认情况下没有 iptables 服务Centos,并且不想有,因为在整个“Redhat”操作系统系列中存在“本机”Firewalld。

# systemctl status iptables
Unit iptables.service could not be found.

当我将 Firewalld 默认区域设置为“DROP”时,iptables 策略仍然是“ACCEPT”,并且 CIS 对此有所抱怨。

答案1

首先iptables是一个用于网络数据包过滤的工具,而是有一个守护进程iptables-services可以与 iptables 一起使用,但 Centos 7 中没有提供(需要安装)。

Firewalld是一种服务,用于iptables以另一种方式(区域、服务、丰富规则等)处理配置,以在内核级别操作数据包(netfilter)。

设置iptables规则不会反映出来,firewalld但反之亦然。

我认为你们有一些firewalld政策矛盾的使用您的 iptables 'DROP' 规则;这就是使规则在执行时消失的原因,firewall-cmd --reload因为通常重新加载命令只会影响由firewalld管理的那些规则。

检查一下并找出哪些规则是冲突的:

firewall-cmd --list-all

同时,您将能够通过以下方式更改默认的 iptables 链 firewall-cmd

firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT  0 -j REJECT
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -j REJECT
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -j REJECT
firewall-cmd --reload

并通过以下方式检查配置:

iptables -L 
firewall-cmd --direct --get-all-rules

相关内容