来自 firewalld 手册:
–permanent [–zone=zone] --set-target=target 将永久区域的目标设置为target,其中target是以下之一:default、ACCEPT、DROP、REJECT。
默认目标是 REJECT。是否可以将默认目标更改为 DROP?如果不行,那么为什么存在默认选项,而它总是 REJECT?
我正在使用 CentOS 7.4。
我知道可以按自己的喜好配置 firewalld,但如果有可能,我想知道如何更改默认目标。
来自 firewalld 手册:
–permanent [–zone=zone] --set-target=target 将永久区域的目标设置为target,其中target是以下之一:default、ACCEPT、DROP、REJECT。
默认目标是 REJECT。是否可以将默认目标更改为 DROP?如果不行,那么为什么存在默认选项,而它总是 REJECT?
我正在使用 CentOS 7.4。
我知道可以按自己的喜好配置 firewalld,但如果有可能,我想知道如何更改默认目标。
关于 firewalld(1) 和其目标的相关内容 (截至2020年):
区域中的目标是数据包无法匹配其他区域规则时发送的目标,可以是:
"DEFAULT" 基本上是一个简单的 REJECT,加上其他合理的设置以获得更合理的默认设置,其名称选择有些不太幸运。
接受的答案有些误导性,因为它谈论了重新定义目标“DEFAULT”的内容。
然而,问题应该更关注是否可能在区域中设置不同的默认目标,这是完全可能的:
firewall-cmd --permanent --zone=YOUR_ZONE_HERE --set-target=ACCEPT
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