Linux 主机审计
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、虚拟空间、营销软件、网站建设、湖滨网站维护、网站推广。
Linux操作系统可以通过设置日志文件可以对每个用户的每一条命令进行纪录,不过这一功能默认是没有打开的。
开启这个功能的过程:
# touch /var/log/pacct
# action /var/log/pact
也可以用自已的文件来代替/var/log/pacct这个文件。但必须路径和文件名的正确。
sa命令与 ac 命令一样,sa 是一个统计命令。该命令可以获得每个用户或每个命令的进程使用的大致情况,并且提供了系统资源的消费信息。在很大程度上,sa 又是一个记帐命令,对于识别特殊用户,特别是已知特殊用户使用的可疑命令十分有用。另外,由于信息量很大,需要处理脚本或程序筛选这些信息。
lastcomm命令, 与 sa 命令不同,lastcomm 命令提供每一个命令的输出结果,同时打印出与执行每个命令有关的时间印戳。就这一点而说,lastcomm 比 sa 更有安全性。如果系统被入侵,请不要相信在 lastlog、utmp、wtm中记录的信息,但也不要忽略,因为这些信息可能被修改过了。另外有可能有人替换了who程序来掩人耳目。通常,在已经识别某些可疑活动后,进程记帐可以有效的发挥作用。使用 lastcomm 可以隔绝用户活动或在特定时间执行命令。
3、使用logrorate对审计文件管理
/var/log/utmp,/var/log/wtmp和/var/log/pacct文件都是动态的数据文件。wtmp和pacct文件是在文件尾部不断地增加记录。在繁忙的网络上,这些文件会变得很大。Linux提供了一个叫logrotate的程序,它允许管理员对这些文件进行管理。
Logrotate读取/etc/logrotate.d目录下的文件。管理员通过该目录下的脚本文件,控制logrotate程序的运作。一个典型的脚本文件如下:
{
rotate 5
weekly
errors root@serve1r
mail root@server1
copytruncate
compress
size 100k
}
脚本文件的含义如下:
● rotate 5——保留该文件一份当前的备份和5份旧的备份。
● weekly——每周处理文件一次,通常是一周的第一天。
● errors——向邮件地址发送错误报告。
● mail——向邮件地址发送相关的信息。
● copytruncate——允许进程持续地记录,备份文件创建后,把活动的日志文件清空。
● compress——使用gzip工具对旧的日志文件进行压缩。
● size 100k——当文件超过100k 时自动处理。
内核编译时,一般打开NET选项就打开AUDIT选项了。
在系统中查看audit是否打开,root 用户执行:
service auditd status
材料:
Linux审计系统auditd 套件
步骤:
安装 auditd
REL/centos默认已经安装了此套件,如果你使用ubuntu server,则要手工安装它:
sudo apt-get install auditd
它包括以下内容:
auditctl : 即时控制审计守护进程的行为的工具,比如如添加规则等等。
/etc/audit/audit.rules : 记录审计规则的文件。
aureport : 查看和生成审计报告的工具。
ausearch : 查找审计事件的工具
auditspd : 转发事件通知给其他应用程序,而不是写入到审计日志文件中。
autrace : 一个用于跟踪进程的命令。
/etc/audit/auditd.conf : auditd工具的配置文件。
Audit 文件和目录访问审计
首次安装 auditd 后, 审计规则是空的。可以用 sudo auditctl -l 查看规则。文件审计用于保护敏感的文件,如保存系统用户名密码的passwd文件,文件访问审计方法:
sudo auditctl -w /etc/passwd -p rwxa
-w path : 指定要监控的路径,上面的命令指定了监控的文件路径 /etc/passwd
-p : 指定触发审计的文件/目录的访问权限
rwxa : 指定的触发条件,r 读取权限,w 写入权限,x 执行权限,a 属性(attr)
目录进行审计和文件审计相似,方法如下:
$ sudo auditctl -w /production/
以上命令对/production目录进行保护。
3. 查看审计日志
添加规则后,我们可以查看 auditd 的日志。使用 ausearch 工具可以查看auditd日志。
sudo ausearch -f /etc/passwd
-f 设定ausearch 调出 /etc/passwd文件的审计内容
4. 查看审计报告
以上命令返回log如下:
time-Mon Dec 22 09:39:16 2016
type=PATH msg=audit(1419215956.471:194): item=0 name="/etc/passwd"
inode=142512 dev=08:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL
type=CWD msg=audit(1419215956.471:194): cwd="/home/somebody"
type=SYSCALL msg=audit(1419215956.471:194): arch=40000003 syscall=5
success=yes exit=3 a0=b779694b a1=80000 a2=1b6 a3=b8776aa8 items=1 ppid=2090 pid=2231 auid=4294967295 uid=1000 gid=1000 euid=0 suid=0 fsuid=0 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=4294967295
comm="sudo" exe="/usr/bin/sudo" key=(null)
time : 审计时间。
name : 审计对象
cwd : 当前路径
syscall : 相关的系统调用
auid : 审计用户ID
uid 和 gid : 访问文件的用户ID和用户组ID
comm : 用户访问文件的命令
exe : 上面命令的可执行文件路径
以上审计日志显示文件未被改动。
Linux自带的script命令,可以记录终端的输出,用来完成简单的审计功能
这样用户登陆后执行的操作都会记录到/mnt/log/script/*.log(目录自己根据服务器目录定义)里,这里把用户ID 大于1000的都记录下操作。