firewalld
是一个更高层次的防火墙管理工具,旨在简化防火墙的配置和管理。它使用区域(zones)和服务(services)的概念,使得用户能够更加方便地管理防火墙规则。
基本概念
- 区域(Zones):表示不同的信任级别,用户可以根据需求选择适合的区域。例如,
public
区域适用于不信任的网络,而internal
区域适用于受信任的内部网络。 - 服务(Services):预定义的网络服务,如 SSH、HTTP 等,用户可以轻松地启用或禁用这些服务。
示例
以下是多个 firewalld
配置示例,涵盖不同的场景和需求:
启用 firewalld 服务:
systemctl start firewalld systemctl enable firewalld
查看当前活跃的区域:
firewall-cmd --get-active-zones
允许 SSH 服务:
firewall-cmd --zone=public --add-service=ssh --permanent
重新加载配置:
firewall-cmd --reload
允许 HTTP 服务:
firewall-cmd --zone=public --add-service=http --permanent
允许 HTTPS 服务:
firewall-cmd --zone=public --add-service=https --permanent
允许 ping 请求:
firewall-cmd --zone=public --add-service=https --permanent
允许特定 IP 地址访问:
firewall-cmd --zone=public --add-source=192.168.1.100 --permanent
允许 FTP 服务:
firewall-cmd --zone=public --add-service=ftp --permanent
查看当前的 firewalld 规则:
firewall-cmd --list-all
限制连接速率(每分钟最多 10 个连接):
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" limit value="10/m" accept'
阻止特定 IP 的访问:
firewall-cmd --zone=drop --add-source=10.0.0.5 --permanent
启用特定端口(如 8080):
firewall-cmd --zone=public --add-port=8080/tcp --permanent
从内部网络转发流量:
firewall-cmd --zone=internal --add-source=192.168.1.0/24 --permanent
允许 NTP 服务:
firewall-cmd --zone=public --add-service=ntp --permanent
允许 MySQL 访问(端口 3306):
firewall-cmd --zone=public --add-port=3306/tcp --permanent
查看所有服务的状态:
firewall-cmd --get-services
从当前区域中删除服务:
firewall-cmd --zone=public --remove-service=http --permanent
允许从特定网段的所有流量:
firewall-cmd --zone=internal --add-source=192.168.1.0/24 --permanent
阻止所有入站流量(除了已允许的):
firewall-cmd --zone=drop --add-source=0.0.0.0/0 --permanent
评论前必须登录!
注册