服务开启
在Linux/UNIX 中,审计工作主要由auditd 服务来完成。Auditd可以对整个操作系统的以下行为做审计
账户管理
文件系统管理
权限管理
网络配置管理
日志文件操作管理
以RedHat Enterprise Linux 5.4为例,所使用启动命令为(#service auditd start)配置开机自动启动命令为(#chkconfig auditd on)如下图所示
图 3 Linux 下开启auditd服务所使用命令
(二) 服务配置
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
表 4 Linux/Unix 操作系统重点位置审计
(四) 日志推送
目前的推送方式在使用syslog服务来完成审计内容向安全管理平台发送的任务,那么首先要配置相应的日志界别发送到指定的安全管理平台。配置文件为/etc/syslog.conf如下图配置
图 4 配置SYSLOG服务向安全管理平台发送审计内容
配置完成后可以启动syslog服务,并且保证开机后自动运行,可以使用如下命令,操作方式如下图所示
Service syslog start
Chkconfig syslog on
图 5 开机启动syslog服务配置
利用tail查看审计的日志,把tail的结果重定向给logger,重新打标记之后发送给syslog中的相应的日志级别。由syslog发送到安全管理平台中
tail -f /var/log/audit/audit.log |logger -it stationlog -p local3.notice&
为了使得开机启动 把这条命令写入到/etc/rc.local中
图 6 开机执行审计内容向SYSLOG发送命令