linux系统的登陆日志在/var/log/wtmp文件里,登陆失败日志在/var/log/btmp里,但是直接查看,而 last、lastb命令就是用来查看这些文件的
SSH登录的用户
who /var/log/wtmp
如下:
root@MRtancp:~# who /var/log/wtmp
root tty1 2018-10-07 13:00
root pts/0 2018-10-29 17:12 (117.136.32.98)
root pts/1 2018-10-29 17:16 (117.136.32.98)
root pts/2 2018-10-29 17:16 (117.136.32.98)
root pts/3 2018-10-29 17:17 (117.136.32.98)
root pts/4 2018-10-29 17:17 (117.136.32.98)
root pts/5 2018-10-29 17:17 (117.136.32.98)
root pts/6 2018-10-29 17:17 (117.136.32.98)
root pts/7 2018-10-29 17:17 (117.136.32.98)
root pts/8 2018-10-29 17:21 (117.136.32.98)
root pts/9 2018-10-29 17:21 (117.136.32.98)
root pts/10 2018-10-29 17:21 (117.136.32.98)
root pts/11 2018-10-29 17:21 (117.136.32.98)
root pts/12 2018-10-29 17:22 (117.136.32.98)
root pts/13 2018-10-29 17:27 (117.136.32.98)
last命令
last
系统显示类似如下,可查看客户端名称和客户端地址,及事件记录时间等信息,通过该信息分析服务器是否存在安全隐患。
说明:下列内容为last命令输出结果的注解:
第一列:用户名。
第二列:登录终端,若为pts/0表示伪终端指 ssh命令或telnet命令远程连接用户,tty指本地连接用户。
第三列:登录IP地址或者内核 。若为0.0或无内容,表示用户从本地终端连接。除重启操作,内核版本会显示在状态中。
第四列:开始时间。
第五列:结束时间(still logged in状态:用户未退出,down状态:直到正常关机,crash状态:直到强制关机)。
第六列:持续时间。
检查说明:攻击者或者恶意软件往往会往系统中注入隐藏的系统帐户实施提权或其他破坏性的攻击。
解决方法: 使用命令usermod -L 用户名
禁用用户或者使用命令userdel -r 用户名
删除用户。
风险性:高。
通过less /var/log/secure|grep 'Accepted'
命令,查看是否有可疑 IP 成功登录机器:
[root@iZj6c4icyjttqo3yuds4hdZ ~]# less /var/log/secure|grep 'Accepted'
Mar 15 16:25:18 iZj6c4icyjttqo3yuds4hdZ sshd[11949]: Accepted password for root from 127.0.0.1 port 58818 ssh2
Mar 16 14:09:49 iZj6c4icyjttqo3yuds4hdZ sshd[26720]: Accepted password for root from 127.0.0.1 port 35978 ssh2
Mar 16 14:26:58 iZj6c4icyjttqo3yuds4hdZ sshd[27845]: Accepted password for root from 127.0.0.1 port 36054 ssh2
检查说明:攻击者或者恶意软件往往会往系统中注入隐藏的系统帐户实施提权或其他破坏性的攻击。
解决方法: 使用命令usermod -L 用户名
禁用用户或者使用命令userdel -r 用户名
删除用户。
风险性:高。
怎样检测暴力破解攻击?
远程服务器一般需要启用 ssh 远程登录功能。对于 ssh 协议的常见攻击是进行暴力破解。通过查看 log 日志检测服务器是否被暴力破解。
Debian 和 Ubuntu 存储在 /var/log/auth.log
RedHat 和 CentOS 存储在 /var/log/secure
以 CentOS 为例
查看登录日志
tail /var/log/secure
执行 du -h /var/log/secure 是否被暴力攻击 超过1M基本说明被攻击
du -h /var/log/secure
查看尝试暴力破解大于20次的Ip地址
find /var/log -name 'secure*' -type f | while read line;do awk '/Failed/{print $(NF-3)}' $line;done | awk '{a[$0]++}END{for (j in a) if(a[j] > 20) print j"="a[j]}' | sort -n -t'=' -k 2
清除登录记录
要清理CentOS系统中的所有登录记录,可以使用以下命令:
- 清理所有用户的登录记录:
echo "" > /var/log/wtmp
- 清理当前登录用户的登录记录:
>/var/log/wtmp
- 清理所有用户的登录记录和命令历史记录:
echo "" > /var/log/wtmp && history -c
需要注意的是,清理登录记录可能会影响系统的审计和安全性,因此应该在仔细考虑之后再执行此操作。