当前位置: 首页>>技术教程>>正文


如何跟踪失败的SSH log-in尝试?

, , ,

问题描述

我想看看是否有人试图通过brute-force将log-in通过SSH登录到我的Ubuntu 12.04服务器上。我怎么看这些活动是否发生?

最佳解决思路

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

1.过滤brute-force交互式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 8月18日23:08:26 izxvps sshd [5768]:失败的密码root从91.205.189.15端口38156 ssh2 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]:无效用户sjobeck的密码失败,来自91.205.189.15端口39157 ssh2 8月18日23:08:42 izxvps sshd [5776]:失败的密码根从91.205.189.15端口39467 ssh2

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

使用此命令:

grep sshd.*Did /var/log/auth.log | less
  • 例如:8月5日22:19:10 izxvps sshd [7748]:未收到来自70.91.222.121的标识字符串Aug 8 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的标识字符串

如何减少失败/brute-force登录尝试

  • 尝试将您的SSH从默认值22切换到non-standard端口

  • 或者安装auto-ban脚本,如fail2ban

次佳解决思路

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

如果你有一台public-facing SSH服务器,你需要一个解决方案,在你被黑客入侵之前就开始使用它。

我强烈建议fail2banTheir wiki表示它比我做得更好。

Fail2ban scans log files (e.g. /var/log/apache/error_log) and bans IPs that show the malicious signs — too many password failures, seeking for exploits, etc. Generally Fail2Ban then used to update firewall rules to reject the IP addresses for a specified amount of time, although any arbitrary other action (e.g. sending an email, or ejecting CD-ROM tray) could also be configured. Out of the box Fail2Ban comes with filters for various services (apache, curier, ssh, etc).

获得保护就像sudo apt-get install fail2ban一样简单。

默认情况下,一旦有三次失败尝试,他们的IP会被禁止5分钟。这种延迟本质上阻止了一次SSH暴力破解尝试,但如果你忘记了密码,它不会毁了你的一天(但你仍然应该使用密钥!)

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/435.html,未经允许,请勿转载。