检测SSH攻击
检测SSH攻击

检测SSH攻击

检测SSH攻击通常涉及查看和分析SSH服务的日志文件。在大多数Linux系统中,默认的SSH日志文件位于/var/log/auth.log/var/log/secure。以下是几个步骤和示例代码,您可以用来检测设备是否遭受SSH攻击:

1. 检查SSH登录尝试

您可以使用grep命令来搜索失败的登录尝试:
grep "Failed password" /var/log/auth.log
或者,如果您的系统将这些日志保存在/var/log/secure
grep "Failed password" /var/log/secure
这将列出所有失败的登录尝试,显示尝试访问的用户名和来源IP地址。

2. 查找多次失败的尝试

攻击者在尝试暴力破解SSH密码时通常会有多次失败的尝试。您可以使用grep命令和uniq命令组合,来找出频繁失败的IP地址:
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
这个命令会列出所有失败尝试的次数及其来源IP地址,按尝试次数降序排列。

3. 分析成功的登录尝试

即使攻击者没有成功破解密码,他们也可能使用其他方法获得访问权限。查看成功的SSH登录尝试同样重要:
grep "Accepted password" /var/log/auth.log
或者:
grep "Accepted password" /var/log/secure
注意成功的登录尝试可能也包含正常用户的登录,因此需要仔细分析。

4. 实时监控SSH尝试

实时监控可以帮助你立即发现攻击行为。使用tail -f命令可以实时查看日志:
tail -f /var/log/auth.log | grep "sshd"

5. 使用fail2ban增加安全性

fail2ban是一个防止暴力破解攻击的工具,它监控日志文件并且在检测到多次失败的登录尝试时封锁来源IP地址。
sudo apt-get install fail2ban
安装后,配置fail2ban的配置文件通常在/etc/fail2ban/jail.conf,您可以根据需要进行调整。