如何跟踪失败的 SSH 登录尝试?

Iva*_*van 139 ssh security log

我想看看是否有人试图通过 SSH 暴力登录到我的 Ubuntu 12.04 服务器。如何查看此类活动是否已发生?

ish*_*ish 158

所有登录尝试都记录到/var/log/auth.log.

1. 过滤暴力交互 SSH 登录

打开终端,输入以下内容;如果它超过 1 页,您将能够上下滚动;输入q退出:

grep sshd.\*Failed /var/log/auth.log | less
Run Code Online (Sandbox Code Playgroud)
  • 这是我的一个 VPS 中的一个真实示例:

    8 月 18 日 11:00:57 izxvps sshd[5657]:来自 95.58.255.62 端口 38980 ssh2 的 root 密码失败
    8 月 18 日 23:08:26 izxvps sshd[5768]:来自 91.205.189.15 端口 38156 ssh2 的 root 密码失败
    8 月 18 日 23:08:30 izxvps sshd[5770]:来自 91.205.189.15 端口 38556 ssh2 的 nobody 密码失败
    8 月 18 日 23:08:34 izxvps sshd[5772]:来自 91.205.189.15 端口 38864 ssh2 的无效用户星号的密码失败
    8 月 18 日 23:08:38 izxvps sshd[5774]:来自 91.205.189.15 端口 39157 ssh2 的无效用户 sjobeck 的密码失败
    8 月 18 日 23:08:42 izxvps sshd[5776]:来自 91.205.189.15 端口 39467 ssh2 的 root 密码失败
    

2. 查找失败的连接(即未尝试登录,可能是端口扫描器等):

使用这个命令:

grep sshd.*Did /var/log/auth.log | less
Run Code Online (Sandbox Code Playgroud)
  • 例子:

    8 月 5 日 22:19:10 izxvps sshd[7748]:未收到来自 70.91.222.121 的识别字符串
    8 月 10 日 19:39:49 izxvps sshd[1919]:未收到来自 50.57.1​​68.154 的识别字符串
    8 月 13 日 23:08:04 izxvps sshd[3562]:没有收到来自 87.216.241.19 的识别字符串
    8 月 17 日 15:49:07 izxvps sshd[5350]:没有收到来自 211.22.67.238 的识别字符串
    8 月 19 日 06:28:43 izxvps sshd[5838]:未收到来自 59.151.37.10 的识别字符串
    

如何减少失败/暴力登录尝试

  • 尝试将 SSH 从默认 22 切换到非标准端口
  • 或者安装一个自动禁止脚本,比如fail2ban安装fail2ban.

  • @NickT 事实证明足以显着减少登录尝试。一周/一天我会得到数千次尝试,到目前为止,我上个月没有任何尝试,只需切换端口即可。 (10认同)
  • 您在切换 SSH 端口时获得了多少安全性(他们不能像您提到的那样只是扫描您),对于合法用户来说,轻微的可用性影响是否值得? (5认同)
  • 我认为禁止使用密码登录也可能有帮助。 (2认同)
  • 我知道这是 ubuntu,只是想提一下,在像 centos 这样的一些系统上,文件路径是`/var/log/secure` (2认同)

Oli*_*Oli 74

我认为监控日志是一个薄弱的解决方案,特别是如果您的帐户密码较弱。蛮力尝试通常每分钟尝试至少数百个键。即使您有一个 cron 作业设置为通过电子邮件向您发送粗暴尝试,您也可能需要几个小时才能到达您的服务器。

如果您有一个面向公众的 SSH 服务器,那么您需要一个解决方案,在您被黑客入侵之前很久就可以启动 。

我强烈推荐fail2ban他们的维基说它比我做得更好。

的fail2ban扫描日志文件(例如/var/log/apache/error_log),并禁止IP地址,显示恶意迹象-太多的密码失败,寻找漏洞等一般的fail2ban然后用来更新防火墙规则,拒绝在指定的时间量的IP地址,但任何也可以配置任意其他操作(例如发送电子邮件或弹出 CD-ROM 托盘)。开箱即用的 Fail2Ban 带有用于各种服务(apache、curier、ssh 等)的过滤器。

从中获得保护就像sudo apt-get install fail2ban.

默认情况下,只要有人尝试 3 次失败,他们的 IP 就会被禁止五分钟。这种延迟基本上会阻止 SSH 蛮力尝试,但如果您忘记密码,它不会毁了您的一天(但无论如何您都应该使用密钥!)

  • @Pacerier 打个比方,登录失败会导致 (2) 被禁止。 (11认同)
  • 为什么叫不能禁止? (7认同)
  • Bwahaha 你让我开心了@Pacerier 我从没想过这是字面上的“未能禁止”。 (2认同)