在日常的服务器管理中,SSH(Secure Shell)是最常用的远程管理工具之一。然而,SSH的安全性也经常受到挑战,尤其是当服务器暴露在公网时,可能会面临大量的暴力破解尝试。本文将通过分析一段典型的SSH登录警告信息,深入探讨其含义、潜在风险,并提供一系列加固措施,帮助管理员提升SSH服务器的安全性。
以下是一段典型的SSH登录提示信息,我们逐条分析其含义:
WARNING! The remote SSH server rejected X11 forwarding request.
Last failed login: Thu Jul 31 05:59:40 CST 2025 from 101.126.133.170 on ssh:notty
There were 221 failed login attempts since the last successful login.
Last login: Tue Jul 29 10:55:10 2025 from 124.90.92.86WARNING! The remote SSH server rejected X11 forwarding request.含义:SSH客户端尝试启用X11图形界面转发,但服务器拒绝了该请求。
可能原因:
xauth)。X11Forwarding(检查/etc/ssh/sshd_config)。解决方案:
如果需要X11转发,确保服务器安装xauth并启用配置:
sudo apt install xauth # Debian/Ubuntu
sudo yum install xauth # CentOS/RHEL修改SSH配置:
sudo nano /etc/ssh/sshd_config确保包含:
X11Forwarding yes重启SSH服务:
sudo systemctl restart sshdLast failed login: Thu Jul 31 05:59:40 CST 2025 from 101.126.133.170 on ssh:notty101.126.133.170,且未分配终端(notty)。ssh:notty 表明可能是自动化脚本攻击(如暴力破解)。There were 221 failed login attempts since the last successful login.含义:自上次成功登录后,已有221次失败尝试。
风险:服务器可能正在遭受暴力破解攻击(Brute Force Attack)。
应对措施:
检查日志:
sudo grep "Failed password" /var/log/auth.log
# 或(Systemd系统)
sudo journalctl -u sshd | grep "Failed password"封禁恶意IP:
sudo iptables -A INPUT -s 101.126.133.170 -j DROP使用fail2ban自动封禁(推荐):
sudo apt install fail2ban # Debian/Ubuntu
sudo yum install fail2ban # CentOS/RHELLast login: Tue Jul 29 10:55:10 2025 from 124.90.92.86124.90.92.86。密码登录容易被暴力破解,推荐使用SSH密钥认证:
生成密钥对(本地机器):
ssh-keygen -t ed25519 -C "your_email@example.com"上传公钥到服务器:
ssh-copy-id user@your_server_ip禁用密码登录:
sudo nano /etc/ssh/sshd_config修改:
PasswordAuthentication no重启SSH服务:
sudo systemctl restart sshd减少自动化扫描攻击:
sudo nano /etc/ssh/sshd_config修改:
Port 2222 # 或其他高端口(1024-65535)更新防火墙规则:
sudo ufw allow 2222/tcp
sudo ufw deny 22/tcp
sudo ufw reloadfail2ban自动封禁攻击IP安装fail2ban:
sudo apt install fail2ban配置SSH防护:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local修改:
[sshd]
enabled = true
port = 22 # 或自定义SSH端口
maxretry = 3 # 允许失败次数
bantime = 1h # 封禁时间重启fail2ban:
sudo systemctl restart fail2bansudo nano /etc/hosts.allow添加:
sshd: 124.90.92.86 # 仅允许该IP登录或使用防火墙:
sudo ufw allow from 124.90.92.86 to any port 22
sudo ufw deny 22/tcpsudo tail -f /var/log/auth.log | grep "sshd"或使用journalctl:
sudo journalctl -u sshd -fsudo grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nrfail2ban自动封禁攻击IP。通过以上方法,可以大幅提升SSH服务器的安全性,减少被入侵的风险。