linux日志审计客户端配置,linux日志服务器审计客户端history记录

一、需求:

将服务器上的每个用户执行的命令、执行时间、登录时间、主机ip、当前切换用户等信息保存到本地并实时传输至日志服务器进行异地保存。

rsyslog-server: 192.168.1.240

rsyslog-client: 192.168.1.25

二、工具及服务:

1、logger

logger 是一个shell接口,可以通过该接口使用rsyslog的日志模块。

usage: logger [-is] [-f file] [-p pri] [-t tag] [-u socket] [ message ... ]

-i 逐行记录每一次logger的进程id

-f file记录特定的文件

-p 输入消息的特定优先级,默认是‘user.notice‘

-t tag为每行信息打上特定的标签

-u 以特定的socker代替内嵌系统常规工作

2、rsyslog日志服务器

rsyslog是syslog的加强版,可以用作客户端及服务器,我们可以使用local0~local7来自定义设备传输至rsyslog

3、PROMPT_COMMAND

Linux系统的环境变量PROMPTCOMMAND的内容会在bash提示符显示之前被执行。

该环境变量的默认值是 history -a 功能是将目前新增的history追加到histfiles 中,默认写入隐藏文件~/.bash_history中

三、实现:

1、配置rsyslog日志服务器:

# vim /etc/rsyslog.conf

# 添加以下几行

# 启动udp端口也可以是tcp端口

$ModLoad imudp

$UDPServerRun514# 设置白名单

$AllowedSender UDP,192.168.1.0/24, 10.0.0.0/8# 配置模板,以客户端ip为目录,以日期命名文件

$template Remote,"/var/log/syslog/%fromhost-ip%/%$YEAR%-%$MONTH%-%$DAY%.log"# 把非本地传输的日志按照指定的模板存放

:fromhost-ip, !isequal, "127.0.0.1" ?IpTemplate

#& 表示已经匹配处理的内容,~表示不再进行其他处理& ~# 重启服务

# service rsyslog restart

2、配置rsyslog客户端:

# 配置PROMP_COMMAND

# vim/etc/bashrc

readonly PROMPT_COMMAND=‘logger -p local3.notice -t bash "$(who am i |awk "{print \$5,\$2}" | tr -d "[()]") [`pwd`] user=$(whoami) cmmd=$(history 1 | { read x cmd; echo "$cmd"; })"‘source/etc/bashrc

其中:

local3.notice 使我们自定义的设备,用于rsyslog调用;

bash 是我们为每行打印的信息打印的tag;

who am i |awk “{print $1\” \”$2\” \”$3\” \”$4\” \”$5}”用于获取我们当前用户的登录信息;

pwd 用于列出我们当前所在的目录;

whoami 用于获取我们当前切换的执行命令的用户,例如我们从test 用户 sudo -i,执行命令的用户为root,但是登录的用户test,方便我们区分;

command 是我们当前用户执行的命令。

注意:

1.我们需要在/etc/bashrc或/etc/profile中添加环境变量,用于所有用户。

2.export PROMPT_COMMAND 如果将PROMPT_COMMAND导出到用户工作区,那么对于有经验的用户就可以做赋值操作 export PROMPT_COMMAND ="",

简单的语法就会导致记录功能当前session端不可用,所以PROMPT_COMMAND必须设置成只读的属性,readonly PROMPT_COMMAND

3、配置rsyslog客户端:

# vim /etc/rsyslog.conf

# 添加如下行

# 添加local3.none*.info;mail.none;authpriv.none;cron.none;local3.none /var/log/messages

# 保存到本地的文件

local3.notice/var/log/audit.log

# 远程日志服务器

local3.notice @192.168.1.240# 重启rsyslog

# service rsyslog restart

其中:

1.local3.notice 是在logger中定义的设备,rsyslog调用并将打印信息输出至指定文件。

2.添加local3.none是避免日志写入 /var/log/messages

4、配置轮转日志(client端):

/var/log/audit.log{

daily

rotate4missingok

notifempty

nocompress

create

dateext

sharedscripts

postrotate/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || trueendscript

}

# 强制轮转

三、验证测试:

1、rsyslog服务端:

[[email protected] ~]# tail -f /var/log/syslog/192.168.1.25/192.168.1.25_2019-05-02.log

May2 08:10:37 localhost bash: 192.168.1.65 pts/2 [/root] user=root cmmd=service sshd restart

May2 08:12:22 localhost bash: 192.168.1.65 pts/2 [/root] user=root cmmd=vim /etc/rsyslog.conf

May2 08:12:31 localhost bash: 192.168.1.65 pts/2 [/root] user=root cmmd=service rsyslogd restart

May2 08:12:35 localhost kernel: imklog 5.8.10, log source = /proc/kmsg started.

May2 08:12:35 localhost rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="14495" x-info="http://www.rsyslog.com"] start

May2 08:12:35 localhost bash: 192.168.1.65 pts/2 [/root] user=root cmmd=service rsyslog restart

2、rsyslog客户端:

[[email protected] ~]# tail -f /var/log/audit.log

May2 08:10:37 localhost bash: 192.168.1.65 pts/2 [/root] user=root cmmd=service sshd restart

May2 08:12:22 localhost bash: 192.168.1.65 pts/2 [/root] user=root cmmd=vim /etc/rsyslog.conf

May2 08:12:31 localhost bash: 192.168.1.65 pts/2 [/root] user=root cmmd=service rsyslogd restart

May2 08:12:35 localhost bash: 192.168.1.65 pts/2 [/root] user=root cmmd=service rsyslog restart

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值