监视Linux用户活动并审核它们

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)和这些用户执行的命令吗?

解决方法:

有一个工具.它被称为审计,它可以为一个或多个特定用户或所有用户记录大量信息.但是,由于将检查服务器上每个系统调用的审计规则,因此可能意味着性能下降.它也不包括知识产权信息;为了实现这一点,您需要将审核日志与SSH日志结合起来,以查看用户登录的IP.

有关如何应用审计规则的信息可以通过运行man auditctl找到.

上一篇:linux – 将文件复制到目录时自动运行命令


下一篇:linux – 监视程序调用可执行文件