个人名片
🎓作者简介 :java领域优质创作者
🌐个人主页 :码农阿豪
📞工作室 :新空间代码工作室(提供各种软件服务)
💌个人邮箱 :[2435024119@qq.com]
📱个人微信 :15279484656
🌐个人导航网站 :www.forff.top
💡座右铭:总有人要赢。为什么不能是我呢?
- 专栏导航:
码农阿豪系列专栏导航
面试专栏 :收集了java相关高频面试题,面试实战总结🍻🎉🖥️
Spring5系列专栏 :整理了Spring5重要知识点与实战演练,有案例可直接使用🚀🔧💻
Redis专栏 :Redis从零到一学习分享,经验总结,案例实战💐📝💡
全栈系列专栏:海纳百川有容乃大,可能你想要的东西里面都有🤸🌱🚀
目录
- SSH登录安全:从警告信息到防护实战
-
- 引言
- [1. SSH登录警告信息解析](#1. SSH登录警告信息解析)
-
- [1.1 `WARNING! The remote SSH server rejected X11 forwarding request.`](#1.1
WARNING! The remote SSH server rejected X11 forwarding request.) - [1.2 `Last failed login: Thu Jul 31 05:59:40 CST 2025 from 101.126.133.170 on ssh:notty`](#1.2
Last failed login: Thu Jul 31 05:59:40 CST 2025 from 101.126.133.170 on ssh:notty) - [1.3 `There were 221 failed login attempts since the last successful login.`](#1.3
There were 221 failed login attempts since the last successful login.) - [1.4 `Last login: Tue Jul 29 10:55:10 2025 from 124.90.92.86`](#1.4
Last login: Tue Jul 29 10:55:10 2025 from 124.90.92.86)
- [1.1 `WARNING! The remote SSH server rejected X11 forwarding request.`](#1.1
- [2. SSH服务器安全加固措施](#2. SSH服务器安全加固措施)
-
- [2.1 禁用密码登录,启用SSH密钥认证](#2.1 禁用密码登录,启用SSH密钥认证)
- [2.2 更改SSH默认端口(22 → 其他端口)](#2.2 更改SSH默认端口(22 → 其他端口))
- [2.3 使用`fail2ban`自动封禁攻击IP](#2.3 使用
fail2ban自动封禁攻击IP) - [2.4 限制SSH登录IP(仅允许可信来源)](#2.4 限制SSH登录IP(仅允许可信来源))
- [3. 监控与日志分析](#3. 监控与日志分析)
-
- [3.1 实时监控SSH登录尝试](#3.1 实时监控SSH登录尝试)
- [3.2 统计失败登录次数](#3.2 统计失败登录次数)
- [4. 总结](#4. 总结)
SSH登录安全:从警告信息到防护实战
引言
在日常的服务器管理中,SSH(Secure Shell)是最常用的远程管理工具之一。然而,SSH的安全性也经常受到挑战,尤其是当服务器暴露在公网时,可能会面临大量的暴力破解尝试。本文将通过分析一段典型的SSH登录警告信息,深入探讨其含义、潜在风险,并提供一系列加固措施,帮助管理员提升SSH服务器的安全性。
1. SSH登录警告信息解析
以下是一段典型的SSH登录提示信息,我们逐条分析其含义:
plaintext
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.86
1.1 WARNING! The remote SSH server rejected X11 forwarding request.
- 含义:SSH客户端尝试启用X11图形界面转发,但服务器拒绝了该请求。
- 可能原因:
- 服务器未安装X11相关组件(如
xauth)。 - SSH服务端未启用
X11Forwarding(检查/etc/ssh/sshd_config)。
- 服务器未安装X11相关组件(如
- 解决方案:
-
如果需要X11转发,确保服务器安装
xauth并启用配置:bashsudo apt install xauth # Debian/Ubuntu sudo yum install xauth # CentOS/RHEL -
修改SSH配置:
bashsudo nano /etc/ssh/sshd_config确保包含:
plaintextX11Forwarding yes -
重启SSH服务:
bashsudo systemctl restart sshd
-
1.2 Last failed login: Thu Jul 31 05:59:40 CST 2025 from 101.126.133.170 on ssh:notty
- 含义:最后一次失败的登录尝试来自IP
101.126.133.170,且未分配终端(notty)。 - 关键点:
ssh:notty表明可能是自动化脚本攻击(如暴力破解)。- 该IP可能是恶意扫描器或僵尸网络的节点。
1.3 There were 221 failed login attempts since the last successful login.
- 含义:自上次成功登录后,已有221次失败尝试。
- 风险:服务器可能正在遭受暴力破解攻击(Brute Force Attack)。
- 应对措施:
-
检查日志:
bashsudo grep "Failed password" /var/log/auth.log # 或(Systemd系统) sudo journalctl -u sshd | grep "Failed password" -
封禁恶意IP:
bashsudo iptables -A INPUT -s 101.126.133.170 -j DROP -
使用
fail2ban自动封禁(推荐):bashsudo apt install fail2ban # Debian/Ubuntu sudo yum install fail2ban # CentOS/RHEL
-
1.4 Last login: Tue Jul 29 10:55:10 2025 from 124.90.92.86
- 含义:上一次成功登录来自IP
124.90.92.86。 - 作用:帮助管理员识别合法登录来源,对比异常IP。
2. SSH服务器安全加固措施
2.1 禁用密码登录,启用SSH密钥认证
密码登录容易被暴力破解,推荐使用SSH密钥认证:
-
生成密钥对(本地机器):
bashssh-keygen -t ed25519 -C "your_email@example.com" -
上传公钥到服务器:
bashssh-copy-id user@your_server_ip -
禁用密码登录:
bashsudo nano /etc/ssh/sshd_config修改:
plaintextPasswordAuthentication no -
重启SSH服务:
bashsudo systemctl restart sshd
2.2 更改SSH默认端口(22 → 其他端口)
减少自动化扫描攻击:
bash
sudo nano /etc/ssh/sshd_config
修改:
plaintext
Port 2222 # 或其他高端口(1024-65535)
更新防火墙规则:
bash
sudo ufw allow 2222/tcp
sudo ufw deny 22/tcp
sudo ufw reload
2.3 使用fail2ban自动封禁攻击IP
-
安装
fail2ban:bashsudo apt install fail2ban -
配置SSH防护:
bashsudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local sudo nano /etc/fail2ban/jail.local修改:
plaintext[sshd] enabled = true port = 22 # 或自定义SSH端口 maxretry = 3 # 允许失败次数 bantime = 1h # 封禁时间 -
重启
fail2ban:bashsudo systemctl restart fail2ban
2.4 限制SSH登录IP(仅允许可信来源)
bash
sudo nano /etc/hosts.allow
添加:
plaintext
sshd: 124.90.92.86 # 仅允许该IP登录
或使用防火墙:
bash
sudo ufw allow from 124.90.92.86 to any port 22
sudo ufw deny 22/tcp
3. 监控与日志分析
3.1 实时监控SSH登录尝试
bash
sudo tail -f /var/log/auth.log | grep "sshd"
或使用journalctl:
bash
sudo journalctl -u sshd -f
3.2 统计失败登录次数
bash
sudo grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
4. 总结
- SSH警告信息可能揭示安全风险(如暴力破解、X11配置问题)。
- 加固措施包括:
- 禁用密码登录,使用SSH密钥。
- 更改默认SSH端口。
- 使用
fail2ban自动封禁攻击IP。 - 限制SSH访问来源。
- 持续监控日志,及时发现异常登录行为。
通过以上方法,可以大幅提升SSH服务器的安全性,减少被入侵的风险。
