history命令可以查看最近Linux中执行的命令。
一、history常用命令
1 2 3 4 |
|
比如# 查看最近的5条命令
1 2 3 4 5 6 |
|
二、如果不想被记录命令,可以在命令前加空格。
如果不管用,请查看下环境变量 HISTCONTROL
是否包含 ignorespace,配置方法如下#
1 |
|
配置完成之后随便输入加空格的命令,查看是否被记录到历史中#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
查看历史记录#
1 2 3 4 5 6 7 8 9 10 11 |
|
注意# echo 4,echo 5执行前加了空格。所以没有被记录下来。
三、还可以直接禁用历史记录
1 |
|
四、环境变量配置文件的选择
上面使用的是~/.bashrc文件,还可以选择/etc/profile、/etc/bashrc(某些系统无此文件,如ubuntu,对应的有/etc/bash.bashrc )、~/.profile、~/.bash_profile等文件。
这些文件的使用区别:
如果为了一完成配置信息就能使用,即打开一个新的shell就能使用,不想重启系统,那么在在/etc/bashrc (/etc/bash.bashrc) 或者 ~/.bashrc 中添加即可;
如果是在/etc/profile 或者 ~/.profile 或者~/.bash_profile 文件中添加配置信息。那么就只能重启之后再生效了。
正常登陆 Linux 以下几个位置记录相关日志:
SSH登录操作相关的日志有以下几个位置:
-
1
2
3
4
5
6
7
/
var
/log/btmp,记录错误的登录尝试,查询命令:lastb
/
var
/log/auth.log,记录认证成功的用户
/
var
/log/secure,记录与安全相关的日志信息
/
var
/log/lastlog,记录用户上次登录信息
/
var
/log/wtmp,记录当前和曾经登入系统的用户信息,查询命令:last
/
var
/run/utmp,记录当前正在登录系统的用户信息,查询命令:w
~/.bash_history,记录从最开始至上一次登录所执行过的命令,查询命令:history无法直接查看的需要通过:strings /
var
/log/wtmp 来查看内容
正常日志溯源的时候 执行
1
ps -aux|grep sshd
正常登陆 putty
-
sshd:root@pts/0
-
使用sftp、rsyn、scp等协议进行登录
-
sshd:root@notty
使用notty,能够绕过以下日志: /var/log/lastlog,记录用户上次登录信息 /var/log/wtmp,记录当前和曾经登入系统的用户信息,查询命令:last /var/run/utmp,记录当前正在登录系统的用户信息,查询命令:w ~/.bash_history,记录从最开始至上一次登录所执行过的命令,查询命令:history
防御关注点 查看错误的登录尝试,查询命令:lastb,文件位置/var/log/btmp 查看认证成功的用户,文件位置/var/log/auth.log 查看tcp连接,查看命令:netstat -vatn
查看SSH端口22被哪些IP地址和端口连接,并使用awk命令过滤出需要的信息:
该命令会列出所有连接到SSH端口22的IP地址和端口,并输出到控制台。
sudo netstat -tnp | grep :22 | awk '{print $4, $5}'
查看SSH登录日志, 下面需将 secure 改为 auth.log 并使用grep命令过滤出需要的信息:
该命令会列出所有SSH登录成功的记录,包括登录用户、登录时间、登录IP地址等信息,并输出到控制台。
sudo grep "Accepted" /var/log/secure | grep "sshd" | grep -v "sudo" | awk '{print $1, $2, $3, $9, $11}'
查看SSH登录使用的秘钥,并使用grep命令过滤出需要的信息:
该命令会列出所有使用公钥登录成功的记录,包括登录用户、登录时间、登录IP地址等信息,并输出到控制台。
sudo grep "Accepted publickey" /var/log/secure | awk '{print $1, $2, $3, $9, $11, $13}'
过滤登录失败的记录 操作如下:=================================================
查看SSH端口22被哪些IP地址和端口连接,并使用awk命令过滤出需要的信息,包括连接失败的记录:
该命令会列出所有连接到SSH端口22失败的记录,包括登录IP地址和端口,并输出到控制台。
sudo grep "sshd.*Connection refused" /var/log/messages | awk '{print $1, $2, $3, $9}'
查看SSH登录日志,并使用grep命令过滤出需要的信息,包括登录失败的记录:
该命令会列出所有SSH登录失败的记录,包括登录用户、登录时间、登录IP地址等信息,并输出到控制台。
sudo grep "Failed" /var/log/secure | grep "sshd" | grep -v "sudo" | awk '{print $1, $2, $3, $9, $11}'
查看SSH登录使用的秘钥,并使用grep命令过滤出需要的信息,包括登录失败的记录:
该命令会列出所有使用公钥登录失败的记录,包括登录用户、登录时间、登录IP地址等信息,并输出到控制台。
sudo grep "Failed publickey" /var/log/secure | awk '{print $1, $2, $3, $9, $11, $13}'