firewalld 更改默认目标

问题描述 投票:0回答:2

来自firewalld手册页:

–永久[–zone=区域] --set-target=目标 设置永久区域的目标。目标是以下之一:默认、接受、删除、拒绝

默认目标是 REJECT。是否可以将默认目标更改为 DROP?如果不是,为什么总是 REJECT 却存在默认选项?

我使用的是CentOS 7.4

我知道我可以以任何我想要的方式配置firewalld,而无法更改默认目标,但我想知道如何更改它(如果可能)。

centos centos7 firewalld
2个回答
5
投票

关于 Firewalld(1) 及其截至 2020 年的目标:

  • 可能的政策目标(针对从一个特定区域到另一特定区域的流量)
    • 继续
    • 接受
    • 掉落
    • 拒绝
    • 策略仅适用于firewalld>=0.9.0
  • 可能的区域目标(对于进入/离开区域的流量,实际上可以使用名为“DEFAULT”的预定义目标)
    • 默认
    • 接受
    • 掉落
    • 拒绝
  • 目标:“默认”
    • 拒绝
    • 允许ICMP
    • 如果入口区域是默认的,转发将遵循出口区域目标
    • 可能会根据全局设置应用区域漂移

区域中的目标是在没有其他区域规则匹配的情况下将发送到的目标目标数据包,并且可以是

  • 接受
  • 掉落
  • 拒绝
  • 或者是...默认

“DEFAULT”基本上是一个简单的 REJECT 加上其他理智的东西以获得更明智的默认设置,它的名称选择有点不幸。

接受的答案有些误导,因为它谈到重新定义目标“默认”。

然而,问题应该是针对是否可以在一个区域中设置不同的默认目标,这是完美的:

firewall-cmd --permanent --zone=YOUR_ZONE_HERE --set-target=DROP
firewall-cmd --reload

#some different oneliners to verify your config
#1.
(firewall-cmd --list-all;for i in $(firewall-cmd --get-active-zones|grep -v "^\s");do firewall-cmd --list-all --zone=$i;done)|grep -v ':\s*$'
#2.
fwstatus() { _fwstate=$(firewall-cmd --state 2>&1);printf "FIREWALLD=%s\n" "${_fwstate}";[[ "not running" == ${_fwstate} ]]&&return;_panicstate=$(firewall-cmd --query-panic);if [[ "on" == "${_panicstate}" ]];then printf "\e[41;1m";else printf "\e[32;1m";fi;printf "PANIC MODE=%s\e[m\n" "${_panicstate}";printf "LOCKDOWN=%s\n\n" "$(firewall-cmd --query-lockdown)";_defaultzone=$(firewall-cmd --get-default-zone);firewall-cmd --list-all-zones|sed 's/^'"$_defaultzone"'/& (default)/'|sed -n '/^'"$_defaultzone"'\|active/,/^$/p'|grep -v -e ':\s*$' -e icmp-block-inversion|awk 'NF>0'|grep --color -e$ -e^\\w.\\+;}&&fwstatus  ## show full firewalling state,only works when firewalld is running
#3.
firewall-cmd --zone=YOUR_ZONE_HERE --list-all

1
投票

无法更改默认目标 - 它是硬编码的。可能包含“默认”,因此我们将来可能会引入“--set-default-target”选项,但我只是猜测。

https://github.com/firewalld/firewalld/issues/252

© www.soinside.com 2019 - 2024. All rights reserved.