Appearance
firewall
了解firewall的zone和port的概念
firewall基本操作
- 查看是否运行
bash
firewall-cmd --statefirewall 预定了9个区域
public(公共区域) 默认只允许ssh、dhcp协议数据包传入
home(家庭区域) 默认只允许ssh、dhcp、samba、mdns协议数据包传入
work(工作区域) 默认只允许ssh、dhcp协议数据包传入
internal(内部区域) 默认只允许ssh、dhcp、samba、mdns协议数据包传入
external(外部区域) 默认只允许ssh协议数据包传入,传出数据包会做地址伪装转换(MASQUERADE)
dmz(隔离区域也称为非军事区域) 非军事区域,默认只允许ssh协议数据包传入
trusted(信任区域) 允许所有的传入流量
block(限制区域) 拒绝所有,有响应消息
drop(丢弃区域) 丢弃所有,无响应消息firewall zone
区域对 firewall 很重要, 如果该区域没有被激活, 则无法生效
下面命令时获取当前已经激活的区域
bash
firewall-cmd --get-active-zones查看当前使用的默认区域
bash
firewall-cmd --get-default-zone删除 docker1 的区域
bash
firewall-cmd --delete-zone=docker1 --permanentfirewall port
查看暴露端口
bash
firewall-cmd --zone=public --list-ports增加规则, --permanent 参数可以使得该命令重启后依然生效
bash
firewall-cmd --add-port=3000/tcp --zone=public --permanent删除规则
bash
firewall-cmd --remove-port=3000/tcp --zone=public --permanent重载服务, 修改规则后 reload 操作
bash
firewall-cmd --reloadfirewall service
列出开放服务,开放服务相当于默认了端口,不必要重新在port中增加端口开放
bash
firewall-cmd --list-services查看完整区域配置
bash
firewall-cmd --zone=public --list-allfirewall 常见问题
- Failed to start firewalld - dynamic firewall daemon.
bash
# 尝试kill掉 process 再启动
systemctl stop firewalld
pkill -f firewalld
systemctl start firewalld