Firewall 常用指令
自 CentOS 之后,firewall 替换了 iptables 成为了系统默认的防火墙程序。新玩意,新面貌,搜罗一些常用的指令,方便使用。
概念
-
区域概念
- 运行时区域
运行时模式下对区域进行的修改不是永久有效的。重新加载或者重启后修改将失效。 - 永久区域
永久选项不直接影响运行时的状态。这些选项仅在重载或者重启服务时可用。为了使用运行时和永久设置,需要分别设置两者。 选项 –permanent 需要是永久设置的第一个参数 - 直接选项
直接选项主要用于使服务和应用程序能够增加规则。 规则不会被保存,在重新加载或者重启之后必须再次提交。传递的参数 与 iptables, ip6tables 以及 ebtables 一致。
选项–direct需要是直接选项的第一个参数。
- 运行时区域
命令
- 获取 firewalld 状态
firewall-cmd --state
- 在不改变状态的条件下重新加载防火墙:
firewall-cmd --reload
如果你使用–complete-reload,状态信息将会丢失。这个选项应当仅用于处理防火墙问题时,例如,状态信息和防火墙规则都正常,但是不能建立任何连接的情况。
- 获取支持的区域列表
firewall-cmd --get-zones
- 获取所有支持的服务
firewall-cmd --get-services
- 获取所有支持的ICMP类型
firewall-cmd --get-icmptypes
- 列出全部启用的区域的特性
firewall-cmd --list-all-zones
- 输出区域 全部启用的特性
firewall-cmd [--zone=<zone>] --list-all
如省略区域将显示默认区域的信息
- 获取默认区域的网络设置
firewall-cmd --get-default-zone
- 设置默认区域
firewall-cmd --set-default-zone=<zone>
流入默认区域中配置的接口的新访问请求将被置入新的默认区域。当前活动的连接将不受影响。
- 获取活动的区域
firewall-cmd --get-active-zones
- 列举区域中启用的服务
firewall-cmd [ --zone=<zone> ] --list-services
- 启用应急模式阻断所有网络连接,以防出现紧急状况
firewall-cmd --panic-on
- 禁用应急模式
firewall-cmd --panic-off
- 查询应急模式
firewall-cmd --query-panic
- 启用区域中的一种服务
firewall-cmd [--zone=<zone>] --add-service=<service> [--timeout=<seconds>]
如果未指定区域,将使用默认区域。如果设定了超时时间,服务将只启用特定秒数。如果服务已经活跃,将不会有任何警告信息。
- 禁用区域中的某种服务
firewall-cmd [--zone=<zone>] --remove-service=<service>
- 查询区域中是否启用了特定服务
firewall-cmd [--zone=<zone>] --query-service=<service>
- 启用区域端口和协议组合
firewall-cmd [--zone=<zone>] --add-port=<port>[-<port>]/<protocol> [--timeout=<seconds>]
端口可以是一个单独的端口 或者是一个端口范围 - 。协议可以是 tcp 或 udp。
- 禁用端口和协议组合
firewall-cmd [--zone=<zone>] --remove-port=<port>[-<port>]/<protocol>
- 查询区域中是否启用了端口和协议组合
firewall-cmd [--zone=<zone>] --query-port=<port>[-<port>]/<protocol>
- 列出区域的富语言规则
firewall-cmd --list-rich-rules
- 添加富语言规则
firewall-cmd --add-rich-rule=<rule>
- 删除富语言规则
firewall-cmd --remove-rich-rule=<rule>
- 返回富语言规则是否添加到区域
firewall-cmd --query-rich-rule=<rule>