首页主机资讯CentOS防火墙最佳实践有哪些

CentOS防火墙最佳实践有哪些

时间2025-10-11 13:09:03发布访客分类主机资讯浏览901
导读:CentOS防火墙最佳实践 1. 选择并配置默认防火墙工具 CentOS 7及以上版本默认使用firewalld(动态防火墙管理工具),相比传统iptables更易管理(支持动态更新规则、区域划分等功能)。若未安装,可通过sudo yum...

CentOS防火墙最佳实践

1. 选择并配置默认防火墙工具

CentOS 7及以上版本默认使用firewalld(动态防火墙管理工具),相比传统iptables更易管理(支持动态更新规则、区域划分等功能)。若未安装,可通过sudo yum install firewalld安装;安装后启动服务并设置开机自启:sudo systemctl start firewalldsudo systemctl enable firewalld

2. 遵循最小必要端口原则

仅开放业务必需的端口,减少攻击面。例如:

  • HTTP服务(80端口)、HTTPS服务(443端口)用于网站访问;
  • SSH服务(22端口)用于远程管理(需禁用root登录,使用密钥认证);
  • 关闭不必要的端口(如9001、3306等非必需端口),通过firewall-cmd --permanent --remove-port=端口号/协议移除。

3. 利用区域策略细化访问控制

firewalld通过区域(如public、internal、dmz)定义不同网络环境的访问规则:

  • public区域(默认):适用于公网接口,仅开放必要端口;
  • internal区域:适用于内部网络,可信任程度更高(如允许内部设备访问数据库端口);
  • dmz区域:用于隔离对外提供服务的服务器(如Web服务器),限制其访问内部网络。
    通过firewall-cmd --get-zones查看可用区域,firewall-cmd --set-default-zone=public设置默认区域。

4. 使用Rich Rules实现精细控制

对于复杂需求(如特定IP访问、时间段限制),可使用rich rules

  • 允许特定IP访问SSH:firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' port protocol='tcp' port='22' accept"
  • 限制时间段访问HTTP(如仅允许8:00-18:00访问):firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="0.0.0.0/0" port port="80" protocol="tcp" time start="08:00" end="18:00" accept'
  • 拒绝特定IP段的流量:firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='10.0.0.0/8' reject"
    修改后需执行firewall-cmd --reload使规则生效。

5. 配置默认拒绝策略

将防火墙默认策略设置为拒绝所有流量,仅允许明确放行的流量,提升安全性:

  • 通过firewall-cmd --set-default-zone=drop将默认区域设为drop(拒绝所有入站、转发流量,允许所有出站流量);
  • 此策略需配合“开放必要端口”使用,避免误拦截合法流量。

6. 启用日志记录与监控

开启防火墙日志,便于审计异常行为:

  • 设置日志级别(如firewall-cmd --set-log-denied=xml记录被拒绝的流量);
  • 日志文件默认位于/var/log/firewalld(或通过journalctl -u firewalld查看实时日志);
  • 定期分析日志(如使用grepawk提取异常IP、端口),及时发现暴力破解、扫描等攻击。

7. 定期审查与更新规则

  • 定期检查规则有效性(如firewall-cmd --list-all查看当前规则),移除不再使用的端口或服务(如旧业务对应的端口);
  • 随着业务变化(如新增网站、调整服务端口),及时更新防火墙规则;
  • 定期更新firewalld软件包(sudo yum update firewalld),修补安全漏洞。

8. 强化SSH安全配置

SSH是远程管理的关键服务,需通过防火墙配合强化安全:

  • 限制SSH访问IP(仅允许管理员IP访问):firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='管理员IP' port protocol='tcp' port='22' accept"
  • 更改默认SSH端口(如2222),减少自动化工具扫描;
  • 禁用root登录(sudo vim /etc/ssh/sshd_config修改PermitRootLogin no),使用密钥认证(PubkeyAuthentication yes)。

9. 备份与恢复配置

修改防火墙规则前,备份当前配置(sudo cp -r /etc/firewalld /etc/firewalld.bak);
若配置错误导致无法访问,可通过备份恢复(sudo cp -r /etc/firewalld.bak/* /etc/firewalld/),或使用firewall-cmd --reload重新加载默认规则。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS防火墙最佳实践有哪些
本文地址: https://pptw.com/jishu/723521.html
MongoDB在CentOS中如何进行故障恢复 CentOS环境下MongoDB如何进行集群搭建

游客 回复需填写必要信息