概念
firewalld是iptables的前端控制器,用于实现持久的网络流量控制。
firewalld使用区域和服务,而不是链式规则,由于是动态管理规则集,允许更新规则但不破坏现有链接。
firewalld拥有以下级别的区域,默认是public:
drop 丢弃所有进入的包
block 拒绝所有外部发起的连接,允许内部发起的连接
public 允许指定的连接进入
external 一般用于路由转发
dmz 允许受限制的连接进入
work 允许信任的计算机被限制的进入连接
home 家庭网络,仅仅接收经过选择的连接
internal 内部网络,仅仅接收经过选择的连接
trusted 信任所有连接
命令
日常启动/停止/永久启动|关闭命令
systemctl start firewalld
systemctl stop firewalld
systemctl enable firewalld
systemctl disable firewalld
检查服务状态
firewall-cmd --state
systemctl status firewalld
重新加载配置
firewall-cmd --reload
重新加载配置并重启服务
firewall-cmd --complete-reload
永久保存规则
firewall-cmd 规则 --permanent
不加--permanent参数时reload会清除当前新增规则
寻找默认区域
firewall-cmd --get-default-zone
修改默认区域
firewall-cmd --set-default-zone=internal
查看网络接口使用区域
firewall-cmd --get-active-zones
查看区域配置
firewall-cmd --zone=区域 --list-all
查看所有区域配置
firewall-cmd --list-all-zones
查看默认可用服务
firewall-cmd --get-services
启用/禁用服务
firewall-cmd --zone=区域 <--add-service|--remove-service>=服务名
查看开放端口/服务
firewall-cmd --zone=区域 <--list-ports|--list-services>
允许/拒绝端口/协议
firewall-cmd --zone=区域 <--add-port|--remove-port>=<端口|端口1-端口2>/协议
增加/修改/删除区域中的网卡
firewall-cmd --zone=区域 <--add-interface|--change-interface|--remove-interface>=网卡
端口转发
fierwall-cmd --zone=public--add-forward-port=port=80:proto=tcp:toport=12345
//本地转发80端口数据到12345端口
firewall-cmd --zone=public --add-masquerade
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.1
//80端口数据转发到192.168.1.1:8080
其他实例
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address=192.168.1.1 accept'
//允许来自192.168.1.1的所有IPV4流量
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address=192.168.1.1 forward-port port=80 protocol=tcp to-port=6532'
//允许来自192.168.1.1到80端口的IPV4de1TCP流量,并转发到6532端口