CentOS SSH Deny:配置与安全实践
在CentOS系统中,SSH(Secure Shell)是远程管理服务器的核心工具,但默认配置可能存在安全风险,如暴力破解、未授权访问等,通过SSH Deny机制,可以有效限制恶意IP的访问,提升服务器安全性,本文将详细介绍CentOS SSH Deny的配置方法、安全策略及常见问题解决方案。

SSH Deny的必要性
SSH服务暴露在公网上时,常成为黑客攻击的目标,攻击者通过自动化工具尝试猜测用户名和密码,可能导致账户被破解或服务器被控制,启用SSH Deny功能后,系统可以自动封禁频繁失败的IP地址,减少暴力破解的风险,SSH Deny还能配合防火墙规则,实现更精细的访问控制。
基于Fail2ban的SSH Deny配置
Fail2ban是一个广泛使用的入侵防御工具,可通过监控日志文件自动封禁恶意IP,以下是具体步骤:
-
安装Fail2ban
在CentOS系统中,使用yum命令安装Fail2ban:sudo yum install fail2ban -y
安装完成后,启动并启用服务:
sudo systemctl start fail2ban sudo systemctl enable fail2ban
-
配置SSH规则
Fail2ban的默认配置文件位于/etc/fail2ban/jail.conf,建议复制为自定义配置文件以避免覆盖:sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
编辑
jail.local文件,添加或修改以下内容:[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/secure maxretry = 3 bantime = 3600
maxretry:最大尝试次数,超过后封禁IP。bantime:封禁时间(秒),3600表示1小时。
-
重启Fail2ban服务
保存配置后,重启服务使生效:sudo systemctl restart fail2ban
使用iptables实现SSH Deny
如果不想依赖Fail2ban,可以直接通过iptables手动封禁IP,以下是基本操作:
-
查看当前iptables规则

sudo iptables -L -n
-
封禁指定IP
封禁IP168.1.100:sudo iptables -A INPUT -s 192.168.1.100 -j DROP
-
保存规则
CentOS 7及以上版本使用iptables-service保存规则:sudo service iptables save
-
解封IP
若需解封,使用以下命令:sudo iptables -D INPUT -s 192.168.1.100 -j DROP
优化SSH Deny的安全策略
仅封禁IP可能不够,建议结合以下措施提升安全性:
-
禁用root登录
编辑SSH配置文件/etc/ssh/sshd_config,设置:PermitRootLogin no
重启SSH服务:
sudo systemctl restart sshd
-
使用密钥认证
禁用密码认证,仅允许SSH密钥登录:PasswordAuthentication no
-
限制登录用户
在/etc/ssh/sshd_config中添加允许的用户:AllowUsers user1 user2
-
更改默认SSH端口
将默认的22端口改为其他高位端口(如2222),减少扫描攻击:
Port 2222
监控与日志分析
定期检查SSH日志是发现异常的关键,日志文件通常位于/var/log/secure,可通过以下命令查看失败登录记录:
grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr
该命令会统计失败次数最多的IP,便于手动封禁。
常见问题与解决方案
-
问题:Fail2ban未生效
解答:检查jail.local配置是否正确,确保日志路径与实际一致,可通过fail2ban-client status sshd查看规则状态。 -
问题:误封合法IP
解答:使用fail2ban-client set sshd unbanip IP地址解封,或调整maxretry和findtime参数以减少误封。
FAQs
-
Q: 如何查看当前被封禁的IP列表?
A: 运行iptables -L -n --line-numbers查看iptables规则,或使用fail2ban-client status sshd查看Fail2ban封禁的IP。 -
Q: SSH Deny是否会影响正常用户登录?
A: 若配置合理(如合理的maxretry和bantime),不会影响正常用户,但建议为可信IP设置白名单,避免误封。
通过以上方法,可以有效提升CentOS服务器的SSH安全性,减少未授权访问风险,定期更新规则和监控系统状态是长期维护的关键。