CentOS防火墙最佳实践有哪些
导读:CentOS防火墙最佳实践 1. 选择并配置默认防火墙工具 CentOS 7及以上版本默认使用firewalld(动态防火墙管理工具),相比传统iptables更易管理(支持动态更新规则、区域划分等功能)。若未安装,可通过sudo yum...
CentOS防火墙最佳实践
1. 选择并配置默认防火墙工具
CentOS 7及以上版本默认使用firewalld(动态防火墙管理工具),相比传统iptables更易管理(支持动态更新规则、区域划分等功能)。若未安装,可通过sudo yum install firewalld
安装;安装后启动服务并设置开机自启:sudo systemctl start firewalld
、sudo 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
查看实时日志); - 定期分析日志(如使用
grep
、awk
提取异常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