检测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
,您可以根据需要进行调整。