var/log/secure
为我们提供以下信息:
Mar 20 08:07:07 testing sshd[29749]: Accepted password for oracle from 10.51.1.12 port 49239 ssh2
Mar 20 08:07:07 testing sshd[29749]: pam_unix(sshd:session): session opened for user oracle by (uid=0)
Mar 20 08:12:16 testing sshd[29759]: Received disconnect from 10.51.1.12: 11: Disconnect requested by Windows SSH Client.
Mar 20 08:12:16 testing sshd[29749]: pam_unix(sshd:session): session closed for user oracle
oracle
但是从上面的信息中我们无法得知用户执行了哪些命令呢?
/home/oracle/.bash_history
为我们提供有关执行哪些命令的信息:
cat /u01/up_apps.sh
cd daily/work
less Auto_Clone.log
cat Auto_Clone.log
exit
exit
cat /home/oracle/ashfaq/Auto_Clone/Auto_Clone.sh
cat /u01/down.sh
cd /u01/oracle/inst/apps/TESTING_testing/admin/scripts/
./adstpall.sh apps/apps
./adstrtal.sh apps/apps
cat /home/oracle/ashfaq/Auto_Clone/Auto_Clone.sh
cat /home/oracle/ashfaq/demo/main_exec.sh
cd /home/oracle/ashfaq/demo/
ls -ltr
cat main_exec.sh
但没有告诉我们用户从哪个IP或主机名以及在什么时间执行了这些命令。
我们是否可以创建一些自定义文件,将所有这些信息以及时间、IP、用户名 ( root
、、) 以及这些用户执行的命令存储在一个文件中?oracle
ricky
答案1
有一个工具可以做到这一点。它被称为audit
,它可以为一个或多个特定用户或所有用户记录大量信息。但是,由于将为服务器上的每个系统调用检查审核规则,因此这可能意味着性能下降。它也不包含 IP 信息;为了实现这一点,您需要将审核日志与 SSH 日志结合起来,以查看用户从哪个 IP 登录。
有关如何应用审核规则的信息可以通过运行找到man auditctl
。