Appearance
firewall
了解firewall的zone和port的概念
firewall 预定了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 区域
区域对 firewall 很重要, 如果该区域没有被激活, 则无法生效
下面命令时获取当前已经激活的区域
bash
firewall-cmd --get-active-zones
删除 docker1 的区域
bash
firewall-cmd --delete-zone=docker1 --permanent
firewall 规则
增加规则, --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 --reload
firewall 常见问题
- Failed to start firewalld - dynamic firewall daemon.
bash
# 尝试kill掉 process 再启动
systemctl stop firewalld
pkill -f firewalld
systemctl start firewalld