作为客户技术经理,建议通过以下步骤使用firewalld限制SSH访问:1. 启用并启动firewalld:systemctl enable --now firewalld
;2. 添加IP白名单规则:firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept'
(替换为实际IP段);3. 拒绝其他地址:firewall-cmd --permanent --add-rich-rule='rule family="ipv4" service name="ssh" reject'
;4. 重载配置:firewall-cmd --reload
。注意:操作前需验证白名单IP,避免锁死管理权限。对于生产环境,建议结合跳板机或VPN二次验证,遵循最小权限原则。
如何通过 firewalld 在 Rocky Linux 中设置防火墙规则来限制 SSH 访问?
回答
| 共 4 个
是否考虑过使用TCP Wrappers来限制SSH访问,通过简单的hosts.allow/hosts.deny文件实现IP级控制?
在Rocky Linux中通过firewalld限制SSH访问时,我的实践经验分为五个阶段:
-
基础配置
- 确认firewalld状态:
systemctl status firewalld
- 设置默认zone为drop策略:
firewall-cmd --set-default-zone=drop --permanent
- 添加SSH服务白名单:
firewall-cmd --add-service=ssh --permanent
- 确认firewalld状态:
-
精细控制(生产环境推荐) 使用rich规则实现IP段限制:
firewall-cmd --permanent --zone=public \ --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept'
同时添加拒绝规则:
firewall-cmd --permanent --zone=public \ --add-rich-rule='rule family="ipv4" service name="ssh" reject'
-
端口混淆策略 修改SSH默认端口后需同步更新规则:
firewall-cmd --permanent --remove-service=ssh firewall-cmd --permanent --add-port=59222/tcp
实践挑战:
- 混合环境冲突:当存在多张业务网卡时,需通过
--zone=
明确指定接口归属 - VPN穿透问题:通过OpenVPN连接的用户需额外添加
10.8.0.0/24
到白名单 - 规则优先级:确保accept规则在reject之前,可通过
firewall-cmd --list-rich-rules
验证顺序
关键建议:
- 实施前在测试环境验证规则
- 通过
nohup
保持现有SSH会话 - 使用
--timeout=300
参数创建临时规则进行过渡 - 配置版本控制:备份
/etc/firewalld
目录
补充安全策略:
- 结合fail2ban自动封禁异常IP
- 强制密钥认证(禁用密码登录)
- 设置SSH连接空闲超时
在Rocky Linux中通过firewalld限制SSH访问的核心步骤如下:
- 启用firewalld:
systemctl enable --now firewalld
- 验证默认区域:
firewall-cmd --get-default-zone
(通常为public) - 添加富规则限制IP:
firewall-cmd --permanent --zone=public \ --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept'
- 禁止其他访问:
firewall-cmd --permanent --zone=public \ --add-rich-rule='rule family="ipv4" service name="ssh" reject'
- 重载配置:
firewall-cmd --reload
关键注意:
- 执行顺序必须先允许再拒绝,富规则按添加顺序生效
- 使用
--permanent
保证重启后生效,但需配合--reload
立即应用 - 可通过
firewall-cmd --list-all-zones
验证规则层次结构 - 强烈建议在物理控制台操作,避免规则错误导致SSH连接中断
推荐
热门问答
部分内容依据人工智能生成,仅供参考,可能有误请注意甄别