在Linux/UNIX 中,审计工作主要由auditd 服务来完成。Auditd可以对整个操作系统的以下行为做审计
l 账户管理
l 文件系统管理
l 权限管理
l 网络配置管理
l 日志文件操作管理
以RedHat Enterprise Linux 5.4为例,所使用启动命令为(#service auditd start)配置开机自动启动命令为(#chkconfig auditd on)如下图所示
Auditd服务自身启动需要加载/etc/audit/auditd.conf 配置文件。在此配置文件中定义了所审计内容的长度,大小、分块等情况,在此配置文件中各字段名称含义如下表所示
字段名称(缺省值) | 字段含义 | 配置建议 |
flush = INCREMENTAL | 向日志中写入数据频率,值可以是NONE、INCREMENTAL、DATA和SYNC | 建议使用缺省值,对于高等级的业务系统设置为DATA |
freq = 20 | 审计守护进程在写到日志文件中之前从,内核中接收的记录数 | 建议使用缺省值,根据业务系审计繁忙程度可做增大调整 |
num_logs = 20 | max_log_file_action设置为ROTATE时,要保存的日志文件数目,必须是0~99之间的数值,设置为0表示不循环,设置为小于2时同样不循环。 | 可根据max_log_file 大小和业务系统审计繁忙程度做调整进而符合时间周期要求 |
disp_qos = lossy | 控制调度程序与审计守护进程之间的通信类型。有效值为lossy和lossless | 建议使用缺省值 |
dispatcher = /sbin/audispd | 当启动这个守护进程时,由审计守护进程自动启动程序。所有守护进程都传递给这个程序。 | 建议使用缺省值 |
name_format = NONE | 计算机节点名称设置 | 建议使用缺省值 |
##name = mydomain | 管理员定义字符串确认机器 | 建议使用缺省值 |
max_log_file = 10 | 最大日志个数 | 根据业务系统需要建议二级系统增加相应个数,三级系统保持缺省值 |
max_log_file_action = ROTATE | 当达到max_log_file的日志文件大小时采取的动作。值必须是IGNORE、SYSLOG、SUSPEND、ROTATE和KEEP_LOGS之 一 | 根据业务系统需要建议二级系统设置为KEEP_LOGS 三级系统为缺省值 |
space_left = 75 | 以兆字节表示的磁盘空间数量。当达到这个水平时,会采取space_left_action参数中的动作。 | 建议增加到缺省值的一倍 |
space_left_action = SYSLOG | 当磁盘空间量达到space_left中的值时,采取这个动作。 | 建议使用缺省值 |
action_mail_acct = root | 负责维护审计守护进程和日志的管理员的电子邮件地址 | 建议使用缺省值 |
admin_space_left = 50 | 以兆字节表示的磁盘空间数量。用这个选项设置比space_left_action具有更多的主动性动作 | 建议增加到缺省值的一倍 |
admin_space_left_action= SUSPEND | 当自由磁盘空间量达到admin_space_left指定的值时,则采取动作 | 建议使用缺省值 |
disk_full_action = SUSPEND | 如果含有这个审计文件的分区已满,则采取这个动作,与space_left _action中的相同。 | 建议使用缺省值 |
disk_error_action = SUSPEND | 如果在写审计日志或循环日志文件时检测到错误时采取的动作。值必须是IGNORE、SYSLOG、SUSPEND、SINGLE和HALT之一。与这些值关的动作与space_left_action中的相同 | 建议使用缺省值 |
##tcp_listen_port = | 接收远程审计日志服务取值范围为1-65535 | 建议不启用 |
tcp_listen_queue = 5 | 接收远程审计日志的队列长度 | 当tcp_listen_port启用时,建议根据业务系统需要增加队列长度 |
##tcp_client_ports = 1024-65535 | 客户端使用端口范围 | 建议使用缺省值设置 |
tcp_client_max_idle = 0 | 低于此值时关闭连接 | 建议使用缺省值 |
enable_krb5 = no | 是否启用kerberos认证 | 建议使用缺省值 |
krb5_principal = auditd | Kerberos认证校验值 | 建议使用缺省值 |
##krb5_key_file= /etc/audit/audit.key | Kerberos生成的验证key存放位置 | 建议使用缺省值 |
表 3 Auditd服务自身配置文件各字段描述
默认情况下auditd会读取所审计的内容配置文件,该配置文件在/etc/audit/目录下,配置文件名为audit.rules,在该文件中详细描述了,要对一个操作系统可以做哪些审计,应该怎么做审计等内容。如下表所示为Linux系统常用审计配置,具体详细的微调还需具体到各业务系统需要。
Linux、Unix 系统审计重点位置 |
-w /var/log/audit/ -k LOG_audit |
-w /etc/audit/ -p wa -k CFG_audit |
-w /etc/sysconfig/auditd -p wa -k CFG_auditd.conf |
-w /etc/libaudit.conf -p wa -k CFG_libaudit.conf |
-w /etc/audisp/ -p wa -k CFG_audisp |
-a entry,always -F arch=b32 -S setxattr -S lsetxattr -S fsetxattr -S removexattr -S lremovexattr -S fremovexattr |
-a entry,always -F arch=b32 -S mknod -S mknodat |
-a entry,always -F arch=b32 -S mount -S umount -S umount2 |
-w /etc/cups/ -p wa -k CFG_cups |
-w /etc/init.d/cups -p wa -k CFG_initd_cups |
-w /etc/netlabel.rules -p wa -k CFG_netlabel.rules |
-w /etc/racoon/racoon.conf -p wa -k CFG_racoon.conf |
-w /etc/racoon/psk.txt -p wa -k CFG_racoon_keys |
-w /etc/racoon/certs/ -p wa -k CFG_racoon_certs |
-w /etc/selinux/config -p wa -k CFG_selinux_config |
-w /etc/selinux/mls/ -p wa -k CFG_MAC_policy |
-w /usr/share/selinux/mls/ -p wa -k CFG_MAC_policy |
-w /etc/selinux/semanage.conf -p wa -k CFG_MAC_policy |
-a entry,always -F arch=b32 -S adjtimex -S settimeofday -S clock_settime |
-w /usr/sbin/stunnel -p x |
-w /etc/security/rbac-self-test.conf -p wa -k CFG_RBAC_self_test |
-w /etc/aide.conf -p wa -k CFG_aide.conf |
-w /etc/cron.allow -p wa -k CFG_cron.allow |
-w /etc/cron.deny -p wa -k CFG_cron.deny |
-w /etc/cron.d/ -p wa -k CFG_cron.d |
-w /etc/cron.daily/ -p wa -k CFG_cron.daily |
-w /etc/cron.hourly/ -p wa -k CFG_cron.hourly |
-w /etc/cron.monthly/ -p wa -k CFG_cron.monthly |
-w /etc/cron.weekly/ -p wa -k CFG_cron.weekly |
-w /etc/crontab -p wa -k CFG_crontab |
-w /var/spool/cron/root -k CFG_crontab_root |
-w /etc/group -p wa -k CFG_group |
-w /etc/passwd -p wa -k CFG_passwd |
-w /etc/gshadow -k CFG_gshadow |
-w /etc/shadow -k CFG_shadow |
-w /etc/security/opasswd -k CFG_opasswd |
-w /etc/login.defs -p wa -k CFG_login.defs |
-w /etc/securetty -p wa -k CFG_securetty |
-w /var/log/faillog -p wa -k LOG_faillog |
-w /var/log/lastlog -p wa -k LOG_lastlog |
-w /var/log/tallylog -p wa -k LOG_tallylog |
-w /etc/hosts -p wa -k CFG_hosts |
-w /etc/sysconfig/network-scripts/ -p wa -k CFG_network |
-w /etc/inittab -p wa -k CFG_inittab |
-w /etc/rc.d/init.d/ -p wa -k CFG_initscripts |
-w /etc/ld.so.conf -p wa -k CFG_ld.so.conf |
-w /etc/localtime -p wa -k CFG_localtime |
-w /etc/sysctl.conf -p wa -k CFG_sysctl.conf |
-w /etc/modprobe.conf -p wa -k CFG_modprobe.conf |
-w /etc/pam.d/ -p wa -k CFG_pam |
-w /etc/security/limits.conf -p wa -k CFG_pam |
-w /etc/security/pam_env.conf -p wa -k CFG_pam |
-w /etc/security/namespace.conf -p wa -k CFG_pam |
-w /etc/security/namespace.init -p wa -k CFG_pam |
-w /etc/aliases -p wa -k CFG_aliases |
-w /etc/postfix/ -p wa -k CFG_postfix |
-w /etc/ssh/sshd_config -k CFG_sshd_config |
-w /etc/stunnel/stunnel.conf -k CFG_stunnel.conf |
-w /etc/stunnel/stunnel.pem -k CFG_stunnel.pem |
-w /etc/vsftpd.ftpusers -k CFG_vsftpd.ftpusers |
-a exit,always -F arch=b32 -S sethostname |
-w /etc/issue -p wa -k CFG_issue |
-w /etc/issue.net -p wa -k CFG_issue.net |
目前的推送方式在使用syslog服务来完成审计内容向安全管理平台发送的任务,那么首先要配置相应的日志界别发送到指定的安全管理平台。配置文件为/etc/syslog.conf如下图配置
配置完成后可以启动syslog服务,并且保证开机后自动运行,可以使用如下命令,操作方式如下图所示
Service syslog start
Chkconfig syslog on
利用tail查看审计的日志,把tail的结果重定向给logger,重新打标记之后发送给syslog中的相应的日志级别。由syslog发送到安全管理平台中
tail -f /var/log/audit/audit.log |logger -it stationlog -p local3.notice&
为了使得开机启动 把这条命令写入到/etc/rc.local中
图 6 开机执行审计内容向SYSLOG发送命令