Centos 运维之防火墙篇——②firewalld

2023-01-20 22:20:43 浏览数 (1)

防火墙

一般来说,iptables和firewalld启用一个即可

firewalld

这是CentOS8的默认防火墙

代码语言:shell复制
# 允许开机自启
systemctl enable firewalld
# 开启服务
systemctl start firewalld
# 下面这个好像也可以
service firewalld start

firewalld有两个基础概念zoneservice,每个zone里面有不同的iptables规则,默认一共有9个zone,而默认的zone为public

zone
代码语言:shell复制
# 获取系统所有zone
firewall-cmd --get-zones
# 查看默认的zone
firewall-cmd --get-default-zone

下面是关于zone的命令

代码语言:shell复制
# 设置默认的zone为work
firewall-cmd --set-default-zone=work
# 查看指定网卡所在的zone
firewall-cmd --get-zone-of-interface=ens33
# 给指定网卡设置zone
firewall-cmd --zone=public --add-interface=lo
# 针对网卡更改zone
firewall-cmd --zone=dmz --change-interface=lo
# 针对网卡删除zone
firewall-cmd --zone=dmz --remove-interface=lo
# 查看系统所有网卡所在的zone
firewall-cmd --get-active-zones
service

每个zone里都有不同的service,一个service就是针对一个服务(端口)做的iptables规则

代码语言:shell复制
# 列出当前系统所有的service
firewall-cmd --get-service

这些service都是由一个个配置文件定义的,配置文件的模板在/usr/lib/firewalld/services/目录下,真正生效的配置在/etc/firewalld/services/目录下(默认为空)

代码语言:shell复制
# 查看当前zone下有哪些service
firewall-cmd --list-services
# 查看指定zone下有哪些service
firewall-cmd --zone=public --list-services
代码语言:shell复制
# 给zone添加service(仅在内存中生效)
firewall-cmd --zone=public --add-service=http
# 若要修改配置文件
firewall-cmd --zone=public --add-service=http --permanent

zone下service的配置文件模板在/usr/lib/firewalld/zones/,生效的配置文件在/etc/firewalld/zones/

类似与iptables的简单方法
代码语言:shell复制
# 放行指定端口(范围) 
# 设置范围直接修改1000为1000-1001即可
firewall-cmd --zone=public --add-port 1000/tcp --permanent //如果不指定--zone默认就是public
# 重载使规则生效
firewall-cmd --reload
# 列出当前具体规则
firewall-cmd --list-all
# 可使用grep过滤
firewall-cmd --list-all|grep port
# 删除指定端口
firewall-cmd --remove-port 8080/tcp --permanent

0 人点赞