- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
FirewallD防火墙
FirewallD是 iptables 的前端控制器,用于实现持久的网络流量规则。它提供命令行和图形界面,在大多数 Linux 发行版的仓库中都有。与直接控制 iptables 相比,使用 FirewallD 有两个主要区别:
1. FirewallD 使用区域和服务而不是链式规则。
2. 它动态管理规则集,允许更新规则而不破坏现有会话和连接。
FirewallD 是 iptables 的一个封装,可以让你更容易地管理 iptables 规则 - 它并不是 iptables 的替代品。虽然 iptables 命令仍可用于 FirewallD,但建议使用 FirewallD 时仅使用 FirewallD 命令。
安装与管理 FirewallD
CentOS 7 和 Fedora 20+ 已经包含了 FirewallD,但是默认没有激活。可以像其它的 systemd 单元那样控制它。
# 1. FirewallD服务管理
systemctl start firewalld
systemctl enable firewalld
systemctl stop firewalld
systemctl disable firewalld
firewall-cmd --state # 检查防火墙状态。输出应该是 running 或者 not running。
systemctl status firewalld
firewall-cmd --reload # 重新加载 FirewallD 配置
防火墙的区域
区域”是针对给定位置或场景(例如家庭、公共、受信任等)可能具有的各种信任级别的预构建规则集。不同的区域允许不同的网络服务和入站流量类型,而拒绝其他任何流量。 首次启用 FirewallD 后,public 将是默认区域。
区域也可以用于不同的网络接口。例如,要分离内部网络和互联网的接口,你可以在 internal 区域上允许 DHCP,但在external 区域仅允许 HTTP 和 SSH。未明确设置为特定区域的任何接口将添加到默认区域。
firewall-cmd --get-default-zone # 找到默认区域
firewall-cmd --set-default-zone=internal # 修改默认区域
firewall-cmd --get-active-zones # 查看你网络接口使用的区域
firewall-cmd --zone=public --list-all # 得到特定区域的所有配置
sudo firewall-cmd --list-all-zones # 得到所有区域的配置
与服务一起使用
FirewallD 可以根据特定网络服务的预定义规则来允许相关流量。你可以创建自己的自定义系统规则,并将它们添加到任何区域。 默认支持的服务的配置文件位于 /usr/lib/firewalld/services,用户创建的服务文件在 /etc/firewalld/services 中。
firewall-cmd --get-services
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --remove-service=http --permanent
允许或者拒绝任意端口/协议
firewall-cmd --zone=public --add-port=12345/tcp --permanent
firewall-cmd --zone=public --remove-port=12345/tcp --permanent
端口转发
# 范例:在同一台服务器上将 80 端口的流量转发到 12345 端口
firewall-cmd --zone="public" --add-forward-port=port=80:proto=tcp:toport=12345
# 要将端口转发到另外一台服务器上
# 在需要的区域中激活 masquerade
firewall-cmd --zone=public --add-masquerade
firewall-cmd --zone="public" --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=123.456.78.9
# 要删除规则,用 --remove 替换 --add
firewall-cmd --zone=public --remove-masquerade
富规则
丰富规则的语法有很多,但都完整地记录在 firewalld.richlanguage(5) 的手册页中(或在终端中 man firewalld.richlanguage)。 使用 --add-rich-rule、--list-rich-rules 、 --remove-rich-rule 和 firewall-cmd 命令来管理它们。
# 范例1: 允许来自主机 192.168.0.14 的所有 IPv4 流量。
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address=192.168.0.14 accept'
# 范例2:拒绝来自主机 192.168.1.10 到 22 端口的 IPv4 的 TCP 流量。
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.1.10" port port=22 protocol=tcp reject'
# 范例3:允许来自主机 10.1.0.3 到 80 端口的 IPv4 的 TCP 流量,并将流量转发到 6532 端口上。 •
firewall-cmd --zone=public --add-rich-rule 'rule family=ipv4 source address=10.1.0.3 forward-port port=80 protocol=tcp to-port=6532'
# 范例4:将主机 172.31.4.2 上 80 端口的 IPv4 流量转发到 8080 端口(需要在区域上激活 masquerade)。
firewall-cmd --zone=public --add-rich-rule 'rule family=ipv4 forward-port port=80 protocol=tcp to-port=8080 to-addr=172.31.4.2'
# 列出你目前的丰富规则
firewall-cmd --list-rich-rules
售前咨询
售后咨询
备案咨询
二维码
TOP