Ubuntu下rsyslog审计用户bash操作命令、收集、写入MySQL
服务端
2台服务端:10.25.109.64、10.45.18.133
1、rsyslog最新版本安装
sudo add-apt-repository ppa:adiscon/v8-stable
sudo apt-get update
sudo apt-get install rsyslog
2、安装数据库
apt-get install rsyslog-mysql mysql-server -y#安装过程中会自动创建表
3、创建表结构 #使用show create table SysEvents,查看ommysql插件默认的建表sql,更改一下.
CREATE TABLE `BashEvents` (
`ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`ReceivedAt` datetime DEFAULT NULL,
`DeviceReportedTime` datetime DEFAULT NULL,
`Facility` smallint(6) DEFAULT NULL,
`Priority` smallint(6) DEFAULT NULL,
`FromHost` varchar(60) DEFAULT NULL,
`Message` text,
`EventUser` varchar(60) DEFAULT NULL,
`InfoUnitID` int(11) DEFAULT NULL,
`SysLogTag` varchar(60) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1784 DEFAULT CHARSET=latin1
4、编辑配置文件
vim /etc/rsyslog.d/50-default.conf $ModLoad ommysql
#bash_log
$template bash_mysql_insert,"insert into BashEvents (Message, Facility, FromHost,Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag,EventUser) values('%msg:F,124:6%', %syslogfacility%, '%HOSTNAME%', %syslogpriority%,'%timereported:::date-mysql%', '%timegenerated:::date-mysql%', %iut%,'%syslogtag%','%msg:F,124:4%');",SQL
$template Bash-history,"/var/log/remote_log/bash-log/%hostname%_%fromhost-ip%_log_%app-name%_%$YEAR%-%$MONTH%-%$DAY%.log"
if ($msg contains "normal" and $app-name == "bash-log") then {
action(type="omfile" DynaFile="Bash-history")
action(type="ommysql" server="localhost" serverport="3306" db="Syslog" uid="rsyslog" pwd="123.com" template="bash_mysql_insert")
stop
}
5、相关说明
"%msg:F,124:4%": 代表将msg信息以|为分割,取出第四个区域的内容,F代表分割,124是|的ASCII码
"%msg:1:2%": 读取从pos从1到2的数据
"%msg:::lowercase%" :将整个消息转换为小写
"%msg:10:$%" : 截取pos从10到最后的消息内容
"%msg:R:.*Sev:. (.*) [.*–end%" : 取"*Sev:."和[.*之间内的所有内容
------------------------------------------------------------------------------
R,<regexp -type>,<submatch>,<nomatch>,<match -number>
regexp-type :
------------------------------------------------------------------------------
-->"BRE" (基本的正则表达式)或"ERE" (扩展的正则表达式)
0-9是标识submatch的,0标识所有内容,1-9标识相应序号的内容。(和shell类似,其实就是正则表达式中括号的用法)
如果相同的实例被匹配到,那么第一个匹配的是0,之后的匹配依次排列
-->nomatch :
标识没有匹配到的时候写什么
实例:
"%msg:R,ERE,1,FIELD:for (vlan[0-9]*):--end%"
"%msg:R,ERE,1,FIELD,1:for (vlan[0-9]*):--end%"
"F,44" : 设置分隔符(用ACSII表示),针对分隔符,在引用时,0代表没找到,匹配的实例从1开始数
"%msg:F,59:3%" : 以分号为分隔符,提取第三个区域的内容
"%msg:F,59,5:3,9%" : 以分号为分隔符,从第5个子串中,提取3-6位的字符
"%msg:F,32+:2%" : 如果多个分隔符(比如:日志中有n个空格作为分割,那么可以添加一个+)
客户端
1、rsyslog最新版本安装
sudo add-apt-repository ppa:adiscon/v8-stable
sudo apt-get update
sudo apt-get install rsyslog
2、创建相关关键目录以及授权
mkdir -p /usr/share/.history
chmod 777 /usr/share/.history
chattr +a /usr/share/.history
3、在/etc/profile中写入以下内容
USER_IP=`who -u am i 2>/dev/null|awk '{print $NF}'|sed -e 's/[()]//g'`
HISTDIR=/usr/share/.history
if [ -z $USER_IP ]
then
USER_IP=`hostname`
fi
if [ ! -d $HISTDIR ]
then
mkdir -p $HISTDIR
chmod 777 $HISTDIR
fi
export HISTSIZE=9999
DT=`date +%Y%m%d_%H%M%S`
export HISTFILE="$HISTDIR/${LOGNAME}.${USER_IP}.history.$DT"
original_user=${SUDO_USER:-$(pstree -Alsu "$$" | sed -n "s/.*(([^)]*)).*($USER)[^(]*$/1/p")}
export HISTTIMEFORMAT="|normal|%F %T|${original_user:-$USER}|$$|"
chmod 644 %HISTDIR/${LOGNAME}.*.histroy* 2>/dev/null
export PROMPT_COMMAND='builtin history 1 >> $HISTFILE'
4、在rsyslog.d中写一个配置文件
vim bash.conf
module(load="imfile" PollingInterval="1")
input(type="imfile" File="/usr/share/.history/*history*"
Tag="bash-log"
Facility="local7"
Severity="debug"
deleteStateOnFileDelete="on"
)
local7.* @10.25.109.64:514
local7.* @10.45.18.133:514
5、重新加载profile文件
source /etc/profile
6、重启rsyslog
/etc/init.d/rsyslog restart
Ubuntu下rsyslog审计用户bash操作命令、收集、写入MySQL的更多相关文章
- 烂泥:ubuntu下vsftpd虚拟用户配置
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我微信ilanniweb. 以前搭建vsftpd都是在centos下,本以为在ubuntu按照以前的步骤搭建即可.可 ...
- ubuntu下如何查看用户登录及系统授权相关信息【转】
转自:http://www.tuicool.com/articles/ia67Bj 如何在ubuntu下查看相关用户登录历史,进行系统的日志跟踪和分析,以便发现系统登录问题,进行安全策略防护呢?ubu ...
- Ubuntu下rsyslog集中收集mysql审计日志
服务端 1.安装最新版本rsyslog sudo apt-get install software-properties-common python-software-properties sudo ...
- 解决将/etc/passwd文件中1000改为0后只能guest进入系统的问题 ||ubuntu下将普通用户权限升级为root用户权限的方法;
其实我现在才知道linux系统对于用户权限管理比较严,在ubuntu下系统不允许root权限的用户进入图像界面系统.由于之前没弄过权限这个东西瞬间掉坑了了. 我是想修改一下root下的nginx.co ...
- Ubuntu下允许Root用户的操作 (图形界面登录、su切换……)
Ubuntu安装后,root用户默认是被锁定了的,不允许登录,也不允许“su”到 root.虽然这样的设置使安全性更高一些,但对于开发者来 说就显得很不方便了.如何让Ubuntu允许root用户直接登 ...
- ubuntu下非root用户下获得使用wireshark的权限
在非root用户下不能使用wireshark用来抓包,所以需要进行以下操作: sudo groupadd wireshark sudo chgrp wireshark /usr/bin/dumpcap ...
- ubuntu下允许root用户ssh远程登录
原文:http://blog.sina.com.cn/s/blog_7e64a87b0100rn8w.html SSH服务器,可以通过SSH协议登录远程服务器,但是ubuntu默认是启用了root用户 ...
- Ubuntu下创建新用户后,不能使用管理员用户下安装的Anaconda
解决办法: 将管理员用户下Anaconda的安装环境添加到新用户下的环境变量里,具体操作: 系统切换到新用户下: vim .bashrc #添加Anaconda的环境变量 source .bashrc ...
- Ubuntu下文件所属用户的说明
最近做项目发现,当你使用sudo建立新的文件或者目录时,该文件的所有者是root用户,此种情况下,使用tensorflow加速就会报错,除非你把文件的权限改成777,但是这样不安全. 纠正的做法是,建 ...
随机推荐
- 把自定义的decoder加入ffmpeg源码
第一步: 在libavcodec目录下新建mkdecoder.c,并加入一下代码: /* *实现一个自己的decoder,编码工作其实就是把pkt的数据拷贝到frame *作者:缪国凯(MK) *82 ...
- xdebug浏览器调试参数
XDEBUG_SESSION_START=phpstorm-xdebug 找到对应PHP版本的 Xdebug ,后面带 TS 的为线程安全,本机环境为 win7 64 + php-5.5.1-Win3 ...
- 【JVM】jvm垃圾回收器相关垃圾回收算法
引用计数法[原理]--->引用计数器是经典的也是最古老的垃圾收集防范.--->实现原理:对于对象A,只要有任何一个对象引用A,则计数器加1.当引用失效时,计数器减1.只要对象A的计数器值为 ...
- bzoj 3221: Obserbing the tree树上询问 树链剖分+线段树
题目大意: http://www.lydsy.com/JudgeOnline/problem.php?id=3221 题解 啊呀...这是昨天的考试题啊...直接就粘了.. 与4515: [Sdoi2 ...
- Eclipse或MyEclipse中给第三方jar包添加源码步骤
0.目的 向web项目中添加mybatis源码. 1.项目结构如下 将mybatis的jar包添加到工程中 2.解压下载的mybatis压缩包(下载地址 https://github.com/myba ...
- delete操作符
delete操作符通常用来删除对象的属性: Js代码 var o = { x: 1 }; delete o.x; // true o.x; // undefined 而不是一般的变量: Js代 ...
- 进程vs线程
内存中的内容不同 进程->{ 进程是系统分配资源的最基本单位,线程是进程的一部分, 进程中存储文件和网络句柄 } 线程->{ 栈(每个线程都有一个栈空间) pc(当前或下一条指令的地址,指 ...
- DevExpress 柱状图
通过构造函数,把值传递过来 public XtraInterpreterChartForm(object ds) { InitializeComponent(); datasource = ds; } ...
- URAL 2019 Pair: normal and paranormal (STL栈)
题意:在一个半圆内,有2*n个点,其中有大写字母和小写字母.其中你需要连接大写字母到小写字母,其中需要保证这些连接的线段之间没有相交. 如果能够实现,将大写字母对应的小写字母的序号按序输出. 析:我把 ...
- 用ORBSLAM2运行TUM Dataset数据集Monocular Examples
参照https://github.com/raulmur/ORB_SLAM2/blob/master/README.md 运行 4. Monocular Examples TUM Dataset 数据 ...