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

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

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

答案1

所有登录尝试均会记录至/var/log/auth.log

1. 过滤暴力交互式 SSH 登录

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

grep sshd.\*Failed /var/log/auth.log | less
  • 以下是我的一台 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 的无人密码失败
    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
  • 例子:

    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 端口切换到非标准端口
  • 或者安装自动禁止脚本,例如失败2ban安装 fail2ban

答案2

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

如果你有一个面向公众的 SSH 服务器,你需要一个有效的解决方案 长的以免被黑客入侵。

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

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

获得它的保护非常简单sudo apt-get install fail2ban

默认情况下,只要有人尝试三次失败,其 IP 就会被封禁五分钟。这种延迟实际上会阻止 SSH 暴力破解尝试,但如果您忘记了密码,也不会毁了您的一天(但无论如何您都应该使用密钥!)

答案3

简短回答:要跟踪失败的尝试,您应该只查看日志文件/var/log/auth.log而不使用任何模式匹配命令,因为这些模式并不详尽。然后,为了缓解这种情况,您可以使用 fail2ban 之类的工具。

长答案:无效登录的发生方式有很多种。例如,攻击者可能会尝试一些默认用户名和密码,例如 Kali Linux 上的默认用户名“kali”和密码“kali”。(这是冷战时期德国黑客广泛使用的一种技术。阅读杜鹃蛋如果你感兴趣。)

假设你删除了“kali”用户,上面的 grep 命令将无法捕获此信息:

Nov 25 07:11:32 Everything20170707 sshd[27216]: input_userauth_request: invalid user kali [preauth]

相关内容