centos防火墙使用有哪些技巧
导读:CentOS防火墙(firewalld)使用技巧 1. 掌握firewalld基本管理命令 firewalld是CentOS 7及以上版本的默认动态防火墙工具,需先掌握其核心管理命令: 启动服务:sudo systemctl start...
CentOS防火墙(firewalld)使用技巧
1. 掌握firewalld基本管理命令
firewalld是CentOS 7及以上版本的默认动态防火墙工具,需先掌握其核心管理命令:
- 启动服务:
sudo systemctl start firewalld
- 停止服务:
sudo systemctl stop firewalld
(生产环境慎用,会导致系统暴露) - 设置开机自启:
sudo systemctl enable firewalld
- 查看运行状态:
sudo firewall-cmd --state
(返回running
表示正在运行)
这些命令是配置防火墙的基础,需熟练掌握。
2. 理解并合理使用区域(Zone)
firewalld通过**区域(Zone)**划分不同网络环境的信任级别,每个区域预设不同的访问规则:
- 常见区域:
public
(默认,适用于公网接口)、home
(家庭网络,信任度较高)、work
(工作网络,中等信任)、dmz
(隔离区,仅允许必要服务)。 - 查看默认区域:
sudo firewall-cmd --get-default-zone
- 修改默认区域:
sudo firewall-cmd --set-default-zone=home
(如需更严格的家庭网络防护) - 查看活动区域及绑定接口:
sudo firewall-cmd --get-active-zones
(显示当前网络接口所属区域)
合理分配区域能精细化控制不同网络的访问权限。
3. 灵活管理端口与服务规则
端口管理(持久化生效)
- 开放端口(如TCP 80/http):
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
- 关闭端口:
sudo firewall-cmd --permanent --zone=public --remove-port=80/tcp
- 查看开放端口:
sudo firewall-cmd --permanent --list-ports
(持久化配置)或sudo firewall-cmd --list-ports
(当前运行时) - 端口范围开放:
sudo firewall-cmd --permanent --zone=public --add-port=8080-8090/tcp
(一次性开放多个连续端口)
服务管理(基于预定义规则)
firewalld内置了常见服务(如http、https、ssh)的规则,使用服务名管理更便捷:
- 开放服务:
sudo firewall-cmd --permanent --zone=public --add-service=http
(等同于开放80/tcp) - 关闭服务:
sudo firewall-cmd --permanent --zone=public --remove-service=http
- 查看可用服务:
sudo firewall-cmd --get-services
(显示所有预定义服务)
优先使用服务管理,避免直接操作端口,减少配置错误。
4. 使用富规则(Rich Rules)实现细粒度控制
富规则(Rich Rules)支持基于IP地址、端口、协议等条件的精细化访问控制:
- 允许特定IP访问端口(如允许192.168.1.100访问TCP 80):
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="80" accept'
- 拒绝特定IP访问端口(如拒绝192.168.1.100访问TCP 80):
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="80" reject'
- 限制源IP范围(如允许192.168.1.0/24访问TCP 22):
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'
富规则能有效防范非法IP的攻击,提升安全性。
5. 配置IP伪装(Masquerading)实现NAT
IP伪装(Masquerading)用于将内部网络的私有IP地址转换为防火墙的公网IP,实现NAT(网络地址转换),适用于网关服务器:
- 启用IP伪装(默认区域):
sudo firewall-cmd --permanent --add-masquerade
- 禁用IP伪装:
sudo firewall-cmd --permanent --remove-masquerade
- 应用配置:
sudo firewall-cmd --reload
启用后,内部主机可通过防火墙访问外网,且外部无法直接访问内部IP。
6. 设置端口转发(Port Forwarding)
端口转发用于将防火墙的某个端口流量转发到内部网络的指定主机端口,适用于内网服务器暴露服务:
- 前提条件:已启用IP伪装(
sudo firewall-cmd --add-masquerade
) - 添加转发规则(如将公网65022/tcp转发到内网192.168.1.61的22/tcp):
sudo firewall-cmd --permanent --add-forward-port=port=65022:proto=tcp:toaddr=192.168.1.61:toport=22
- 应用配置:
sudo firewall-cmd --reload
转发后,外部用户可通过防火墙的65022端口SSH连接到内网的192.168.1.61服务器。
7. 定期审查与优化规则
- 查看当前所有规则(包括区域、服务、端口、富规则):
sudo firewall-cmd --list-all
(默认区域)或sudo firewall-cmd --zone=public --list-all
(指定区域) - 删除无用规则(如关闭不再需要的SSH服务):
sudo firewall-cmd --permanent --zone=public --remove-service=ssh
- 备份配置(修改前备份,避免误操作):
sudo cp /etc/firewalld/firewalld.conf /etc/firewalld/firewalld.conf.bak
定期审查规则能及时发现冗余或风险配置,保持防火墙的有效性。
8. 注意事项
- 不要随意停止防火墙:停止firewalld会使系统失去网络防护,仅在测试环境使用
sudo systemctl stop firewalld
。 - 优先使用服务而非端口:服务规则内置了常见端口的预设,更易管理和维护。
- 限制SSH访问:通过富规则仅允许信任IP访问SSH端口(如22/tcp),降低被暴力破解的风险。
- 启用日志记录:通过
sudo firewall-cmd --set-log-denied=all
开启拒绝日志,便于排查非法访问尝试。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos防火墙使用有哪些技巧
本文地址: https://pptw.com/jishu/718606.html