防火墙
一般来说,iptables和firewalld启用一个即可
firewalld
这是CentOS8的默认防火墙
# 允许开机自启systemctl enable firewalld # 开启服务systemctl start firewalld # 下面这个好像也可以service firewalld start
firewalld有两个基础概念zone 和service,每个zone里面有不同的iptables规则,默认一共有9个zone,而默认的zone为public。
zone
# 获取系统所有zonefirewall-cmd --get-zones# 查看默认的zonefirewall-cmd --get-default-zone
下面是关于zone的命令
# 设置默认的zone为workfirewall-cmd --set-default-zone=work # 查看指定网卡所在的zonefirewall-cmd --get-zone-of-interface=ens33 # 给指定网卡设置zonefirewall-cmd --zone=public --add-interface=lo # 针对网卡更改zonefirewall-cmd --zone=dmz --change-interface=lo # 针对网卡删除zonefirewall-cmd --zone=dmz --remove-interface=lo # 查看系统所有网卡所在的zonefirewall-cmd --get-active-zones
service
每个zone里都有不同的service,一个service就是针对一个服务(端口)做的iptables规则
# 列出当前系统所有的servicefirewall-cmd --get-service
这些service都是由一个个配置文件定义的,配置文件的模板在`/usr/lib/firewalld/services/`目录下,真正生效的配置在`/etc/firewalld/services/`目录下(默认为空)
# 查看当前zone下有哪些servicefirewall-cmd --list-services# 查看指定zone下有哪些servicefirewall-cmd --zone=public --list-services
# 给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的简单方法
# 放行指定端口(范围) # 设置范围直接修改1000为1000-1001即可firewall-cmd --zone=public --add-port1000/tcp --permanent //如果不指定--zone默认就是public # 重载使规则生效firewall-cmd --reload# 列出当前具体规则firewall-cmd --list-all# 可使用grep过滤firewall-cmd --list-all|grep port # 删除指定端口firewall-cmd --remove-port8080/tcp --permanent