防火墙
一般来说,iptables和firewalld启用一个即可
firewalld
代码语言:shell复制这是CentOS8的默认防火墙
# 允许开机自启
systemctl enable firewalld
# 开启服务
systemctl start firewalld
# 下面这个好像也可以
service firewalld start
firewalld有两个基础概念zone 和service,每个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/
目录下(默认为空)
# 查看当前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