【检测SSH攻击】

检测SSH攻击

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

  1. 检查SSH登录尝试:

可以使用grep命令来搜索失败的登录尝试


		grep "Failed password" /var/log/auth.log
		

在Linux系统中,grep "Failed password" /var/log/auth.log 命令用于在 /var/log/auth.log 文件中查找包含字符串 “Failed password” 的行。这通常用于查看系统上SSH登录失败的记录。

在安全日志中,“Failed password” 表示一个SSH登录尝试失败。这可能是由于用户输入了错误的密码,或者由于某些其他安全策略导致的拒绝访问。这种信息对于检测潜在的安全威胁很有用,因为它可以指示有人试图非法访问你的系统。

一个典型的相关日志条目可能如下所示:

Dec 26 12:34:56 hostname sshd[12345]: Failed password for user123 from 192.168.1.100 port 22 ssh2

在这个例子中:

  • Dec 26 12:34:56 表示事件发生的日期和时间。
  • hostname 是你的主机名。
  • sshd[12345] 表示SSH守护进程的进程ID。
  • Failed password for user123 表示用户 “user123” 的密码验证失败。
  • from 192.168.1.100 port 22 表示登录尝试来自IP地址为 192.168.1.100 的主机,使用SSH的默认端口 22。
  • ssh2 表示使用SSH协议的版本。

这些日志可以帮助你监视和识别潜在的安全问题,例如暴力破解尝试或未经授权的访问。如果你看到大量的失败登录尝试,可能需要进一步采取措施,例如使用防火墙规则、禁用密码登录、或设置账户锁定策略来增强系统安全性。
或者,如果你的系统将这些日志保存在/var/log/secure

	
		grep "Failed password" /var/log/secure

这将列出所有失败的登录尝试,显示尝试访问的用户名和来源IP地址。

  1. 查找多次失败的尝试:

攻击者在尝试暴力破解SSH密码时通常会有多次失败的尝试。可以使用grep命令和uniq命令组合,来找出频繁失败的IP地址:


grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr

这个命令会列出所有失败尝试的次数及其来源IP地址,按尝试次数降序排列。

  1. 分析成功的登录尝试:

即使攻击者没有成功破解密码,他们也可能使用其他方法获得访问权限。查看成功的SSH登录尝试同样重要:


		grep "Accepted password" /var/log/auth.log

或者:


		grep "Accepted password" /var/log/secure

注意成功的登录尝试可能也包含正常用户的登录,因此需要仔细分析。

  1. 实时监控SSH尝试:

实时监控可以帮助你立即发现攻击行为。使用tail -f命令可以实时查看日志:


		tail -f /var/log/auth.log | grep "sshd"

  1. 使用fail2ban增加安全性:

fail2ban是一个防止暴力破解攻击的工具,它监控日志文件并且在检测到多次失败的登录尝试时封锁来源IP地址。


		sudo apt-get install fail2ban

安装后,配置fail2ban的配置文件通常在/etc/fail2ban/jail.conf,可以根据需要进行调整。

  1. ps aux能查看当前运行进程的详细信息,也能检测SSH的攻击

ps aux 命令用于在类Unix操作系统中显示关于当前运行进程的详细信息。以下是输出的列说明:

USER       PID  %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  96448  5340 ?        Ss   Dec26   0:03 /usr/lib/systemd/systemd
user      1234  2.5  4.0 123456 78900 pts/0    Sl+  Dec26   2:30 /usr/bin/python3 my_script.py
请注意在USER列 频繁出现sshd时候就说明被攻击!!!

在这个示例中:

  • 第一行代表系统的 init 进程。

  • 第二行代表一个用户运行的Python脚本(my_script.py)。进程ID(PID)是1234,它使用了2.5%的CPU和4.0%的内存等。

  • USER: 拥有该进程的用户。

  • PID: 进程ID,每个进程的唯一标识符。

  • %CPU: 该进程使用的CPU的百分比。

  • %MEM: 该进程使用的RAM(内存)的百分比。

  • VSZ: 该进程的虚拟内存大小,以千字节(KB)为单位。

  • RSS: 常驻集大小,表示进程在RAM中占用的部分,以千字节(KB)为单位。

  • TTY: 与进程相关联的终端类型。

  • STAT: 进程状态。常见值包括:

    • R: 运行中
    • S: 休眠
    • D: 不可中断的休眠(通常是等待磁盘I/O)
    • Z: 僵尸(已终止但尚未从进程表中删除)
  • START: 进程启动时间。

  • TIME: 该进程自启动以来累计使用的CPU时间。

  • COMMAND: 与该进程相关的命令或程序。

请注意,这些措施可以提高系统的安全性,但不能保证绝对的安全性。定期检查系统日志持系统和软件更以安全最佳实践是维护设备安全的重要步骤。

更多内容请在SSH阅读。

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值