1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > ssh日志审计_系统日志说明及audit审计系统

ssh日志审计_系统日志说明及audit审计系统

时间:2019-08-23 11:18:56

相关推荐

ssh日志审计_系统日志说明及audit审计系统

一、日志文件的分类

1.内核及系统日志

由系统服务rsyslog统一进行管理,日志格式基本相似

软件包:rsyslog-5.8.10-8

主要程序:/sbin/rsyslogd

配置文件:/etc/rsyslog.conf

配置文件:/etc/rsyslog.conf语法

日志设备类型 说明

auth pam产生的日志

authpriv ssh,ftp等登陆信息的验证信息

cron 时间任务相关

kern 内核

lpr 打印

mail 邮件

mark(syslog) rsyslog服务内部信息的标识

news 新闻组

user 用户程序产生的相关信息

uucp Unix to Unix copy Unix主机之间的通讯

local1-7 自定义的日志设备

日志级别

级别 说明

NONE 啥都不记

EMERG 紧急(导致系统不可用)

ALERT 警告(必须马上采取措施处理)

CRIT 严重

ERR 错误

WARNING 提醒

NOTICE 注意

INFO 一般信息

DEBUG 调试信息

连接符号

符号 说明

. 记录大于等于后面的级别日志

.= 只记录等于后面的级别日志

.!= 只记录不等于后面的级别日志

日志处理方式

本地文件:通常就是文件的绝对路径

打印机:例如 /dev/lp0 这个打印机装置

用户名称:显示给用户

远程主机:例如 @202.100.100.1

*:所有在线的用户

主要日志文件介绍

内核及公共消息日志:/var/log/messages

计划任务日志:/var/log/cron

系统引导日志:/var/log/dmesg

邮件系统日志:/var/log/maillog

2.用户日志

记录系统用户登录及退出系统的相关信息

保存了用户登录、退出系统等相关信息

/var/log/lastlog:最近的用户登录事件(二进制文件)

/var/log/wtmp:用户登录、注销及系统开、关机事件(二进制文件)

/var/run/utmp:当前登录的每个用户的详细信息(二进制文件)

/var/log/secure:与用户验证相关的安全性事件

用户登录分析命令

who、w、users、last、ac、lastlog

3.程序日志

由各种应用程序独立管理的日志文件,记录格式不统一

由相应的应用程序独立进行管理

Web服务:/var/log/httpd/

access_log、error_log

代理服务:/var/log/squid/

access.log、cache.log、squid.out、store.log

FTP服务:/var/log/xferlog

……

二、日志转储功能

系统时时刻刻都在产生日志,如果不及时清理,很快就会填满硬盘,但如果要手工清理,又很麻烦。这种情况下,logrotate 这个程序很好的完成这个任务

1.logrotate

用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据天数来转储,这个过程一般通过crond进程来执行,logrotate还可以用于压缩日志文件

主配置文件:/etc/logrotate.conf

参数 说明

compress 通过gzip压缩转储后的日志

compresscmd 指定压缩文件所使用的命令

uncompresscmd 指定解压缩文件所使用的命令

nocompress 无需压缩

copytruncate 用于还在打开状态的日志文件,把当前日志备份并截断

nocopytruncate 把当前日志备份但不截断

create mode owner group 转储文件,使用指定的文件模式创建新的日志文件

nocreate 不创建新的日志文件

dateext 以日期格式为扩展名

delaycompress 转储的文件在下一次转储时才压缩

nodelaycompress 转储同时压缩

errors address 转储时错误信息发送到指定的email地址

ifempty 如果是空文件也转储,默认

notifempty 如果是空文件,不转储

mail address 把转储的日志文件发送到指定的邮箱

nomail 不发送日志文件

olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统

noolddir 转储后的日志文件和当前日志文件放到一个目录下

maxage 删除循环天数大于(后面跟着数字是天数)的切割日志文件,只针对循环的日志。如果设置了邮件会发送到设置好的邮件地址。

daily 转储周期为每天

weekly 转储周期为每周

monthly 转储周期为每月

rotate count 日志文件删除之前转储的次数,0表没有备份,5表5个备份

size 当日志文件达到指定大小才转储

minsize 日志文件一定要超过多少后才进行rotate,但是又必须参考转储周期,就是不能在转储周期没到之前就rotate

missingok 如果日志文件缺失,继续下一个文件,且不报告错误信息

Logrotate的次要配置文件:/etc/logrotate.d/*

每个文件代表一种日志的配置

[[emailprotected] ~]# cat /etc/logrotate.d/syslog

/var/log/messages #要转储的文件 {

#转储的一些参数

daily #每天

size 20M #每20M转储一次

rotate 3 #保留三份转储文件

postrotate

需要执行的命令

endscript

}

-f参数:强制转储

使用这个命令可以立即使转储文件达到条件进行转储

服务使用crond服务

[[emailprotected] log]# systemctl status crond

● crond.service - Command Scheduler

Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)

Active: active (running) since Tue -03-24 00:20:22 CST; 1h 31min ago

Main PID: 6568 (crond)

CGroup: /system.slice/crond.service

└─6568 /usr/sbin/crond -n

Mar 24 00:20:22 localhost.localdomain systemd[1]: Started Command Scheduler.

Mar 24 00:20:22 localhost.localdomain crond[6568]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 32% if used.)

Mar 24 00:20:23 localhost.localdomain crond[6568]: (CRON) INFO (running with inotify support)

cd /etc/cron.daily/

目录里有个logrotate,这里说明了会每天执行logrotate

/etc/anacrontab中规定了何时执行cron.daily,这么设置的目的是为了防止同一时点执行多任务,系统负载过大。这里有延时。

/etc/anacrontab: configuration file for anacron

See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

the maximal random delay added to the base delay of the jobs

RANDOM_DELAY=45

the jobs will be started during the following hours only

START_HOURS_RANGE=3-22

#period in days delay in minutes job-identifier command

1 5 cron.daily nice run-parts /etc/cron.daily

7 25 cron.weekly nice run-parts /etc/cron.weekly

@monthly 45 cron.monthly nice run-parts /etc/cron.monthly

如何查看logrotate是否运行正常

cat /var/lib/logrotate.status #查看logrotate切割的哪个日志

以debug模式运行

注意:debug模式下不会对日志产生真实操作,也不会写入到logrotate state file中,如果想手动运行,请使用 -f

/usr/sbin/logrotate -d /etc/logrotate.conf

/usr/sbin/logrotate -d /etc/logrotate.conf > /tmp/logrotate.debug 2>&1

#输出错误信息,检查是否有错误,检查是否有error

/var/log/sa

记录系统重要内部活动信息,包括CPU和内存消耗,磁盘IO,网络流量等等。

/var/log/audit

记录系统的审计日志,包括对核心文件的修改,和用户的重要操作等等。 这个工具在大多数Linux操作系统中是默认安装的。CentOS 默认安装。安装完毕后将自动安装以下auditd和相关的工具:

auditctl : 即时控制审计守护进程的行为的工具,比如添加规则等等。

/etc/audit/audit.rules : 记录审计规则的文件。

aureport : 查看和生成审计报告的工具。

ausearch : 查找审计事件的工具

auditspd : 转发事件通知给其他应用程序,而不是写入到审计日志文件中。

autrace : 一个用于跟踪进程的命令。

/etc/audit/auditd.conf : auditd工具的配置文件。

查看审计规则

#auditctl -l

#对单个文件审计,添加审计规则

#-w path : 指定要监控的路径,上面的命令指定了监控的文件路径 /etc/passwd

#-p : 指定触发审计的文件/目录的访问权限,rwxa : 指定的触发条件,r 读取权限,w 写入权限,x 执行权限,a 属性(attr)

#-k 给当前这条监控规则起个名字,方便搜索过滤

#auditctl -w /etc/passwd -p rwxa -k pass

#对目录审计(也会记录目录里文件的改动)

#auditctl -w /etc/ -p rwxa

#auditctl -W /etc/ -p rwxa 删除这条创建的规则

#对可执行命令进行审计

auditctl -F exe=/bin/id -k execution_bin_id

对于V3系统

auditctl -w /sbin/reboot #审计特定命令

永久更新方式

vim /etc/audit/audit.rules

添加

-w /sbin/reboot -p x -k shutdown

#ausearch查看审计日志,有多种搜索条件

参数

说明

-k

基于key搜索

-f

基于文件名搜索

-i

以人类可读方式

-p

基于进程id搜索

-ui

基于user id搜索

-v

版本号

ausearch -i -k test #常用搜索

#生成简要报告

#aureport

centos7中为了让重启后修改的规则依然生效:augenrules --load

#读取/etc/audit/rules.d/*.rules的规则后重新加载规则,也就是说修改/etc/audit/rules.d/下的规则文件即可。再运行augenrules --load

日志文件目录:

/var/log/audit/audit.log

日志中重点字段:proctitle(这个字段就是执行的命令)

obj=system_u:object_r:etc_t:s0

目标的安全上下文

定义控制规则/etc/audit/audit.rules:

-D:删除所有之前的规则

-b 8192:设置缓冲区大小

-e 2:处于不可更改模式

修改成可修改模式,centos7中需要修改/etc/audit/rules.d/audit.rules这个文件,然后重启

-f 2:当发生错误时panic

-r 100:每秒最多产生100条信息

注意:用 auditctl 添加审计规则是临时的,立即生效,但是系统重启失效。重启仍然有效,需要在 /etc/audit/audit.rules 文件中添加规则,然后重启服务:

service auditd restart 或者 service auditd reload

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。