根据CIS CentOS Linux 7 Benchmark
Centos7的文档,建议:
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