首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >SSH登录安全:从警告信息到防护实战

SSH登录安全:从警告信息到防护实战

作者头像
用户8589624
发布2025-11-16 10:16:41
发布2025-11-16 10:16:41
1100
举报
文章被收录于专栏:nginxnginx

SSH登录安全:从警告信息到防护实战

引言

在日常的服务器管理中,SSH(Secure Shell)是最常用的远程管理工具之一。然而,SSH的安全性也经常受到挑战,尤其是当服务器暴露在公网时,可能会面临大量的暴力破解尝试。本文将通过分析一段典型的SSH登录警告信息,深入探讨其含义、潜在风险,并提供一系列加固措施,帮助管理员提升SSH服务器的安全性。


1. SSH登录警告信息解析

以下是一段典型的SSH登录提示信息,我们逐条分析其含义:

代码语言:javascript
复制
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转发,确保服务器安装xauth并启用配置:

代码语言:javascript
复制
sudo apt install xauth  # Debian/Ubuntu
sudo yum install xauth  # CentOS/RHEL

修改SSH配置:

代码语言:javascript
复制
sudo nano /etc/ssh/sshd_config

确保包含:

代码语言:javascript
复制
X11Forwarding yes

重启SSH服务:

代码语言:javascript
复制
sudo 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)。

应对措施:

检查日志:

代码语言:javascript
复制
sudo grep "Failed password" /var/log/auth.log
# 或(Systemd系统)
sudo journalctl -u sshd | grep "Failed password"

封禁恶意IP:

代码语言:javascript
复制
sudo iptables -A INPUT -s 101.126.133.170 -j DROP

使用fail2ban自动封禁(推荐):

代码语言:javascript
复制
sudo 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密钥认证:

生成密钥对(本地机器):

代码语言:javascript
复制
ssh-keygen -t ed25519 -C "your_email@example.com"

上传公钥到服务器:

代码语言:javascript
复制
ssh-copy-id user@your_server_ip

禁用密码登录:

代码语言:javascript
复制
sudo nano /etc/ssh/sshd_config

修改:

代码语言:javascript
复制
PasswordAuthentication no

重启SSH服务:

代码语言:javascript
复制
sudo systemctl restart sshd

2.2 更改SSH默认端口(22 → 其他端口)

减少自动化扫描攻击:

代码语言:javascript
复制
sudo nano /etc/ssh/sshd_config

修改:

代码语言:javascript
复制
Port 2222  # 或其他高端口(1024-65535)

更新防火墙规则:

代码语言:javascript
复制
sudo ufw allow 2222/tcp
sudo ufw deny 22/tcp
sudo ufw reload

2.3 使用fail2ban自动封禁攻击IP

安装fail2ban

代码语言:javascript
复制
sudo apt install fail2ban

配置SSH防护:

代码语言:javascript
复制
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

修改:

代码语言:javascript
复制
[sshd]
enabled = true
port = 22  # 或自定义SSH端口
maxretry = 3  # 允许失败次数
bantime = 1h  # 封禁时间

重启fail2ban

代码语言:javascript
复制
sudo systemctl restart fail2ban

2.4 限制SSH登录IP(仅允许可信来源)
代码语言:javascript
复制
sudo nano /etc/hosts.allow

添加:

代码语言:javascript
复制
sshd: 124.90.92.86  # 仅允许该IP登录

或使用防火墙:

代码语言:javascript
复制
sudo ufw allow from 124.90.92.86 to any port 22
sudo ufw deny 22/tcp

3. 监控与日志分析

3.1 实时监控SSH登录尝试
代码语言:javascript
复制
sudo tail -f /var/log/auth.log | grep "sshd"

或使用journalctl

代码语言:javascript
复制
sudo journalctl -u sshd -f
3.2 统计失败登录次数
代码语言:javascript
复制
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服务器的安全性,减少被入侵的风险。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-11-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SSH登录安全:从警告信息到防护实战
    • 引言
    • 1. SSH登录警告信息解析
      • 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.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
    • 2. SSH服务器安全加固措施
      • 2.1 禁用密码登录,启用SSH密钥认证
      • 2.2 更改SSH默认端口(22 → 其他端口)
      • 2.3 使用fail2ban自动封禁攻击IP
      • 2.4 限制SSH登录IP(仅允许可信来源)
    • 3. 监控与日志分析
      • 3.1 实时监控SSH登录尝试
      • 3.2 统计失败登录次数
    • 4. 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档