精华内容
下载资源
问答
  • MySQL审计日志处理脚本
    2021-02-02 15:03:14

    1、mysql配置文件

    $ cat mysql.cfg

    [3306]

    ip=xxx.xxx.xxxx.xxx

    user=root

    pass=xxxxx

    port=3306

    auditlog=/home/mysql/data/mysql-audit.json

    socket=/tmp/mysql.sock

    2、函数文件,主要是日志函数

    [mysql@trs bin]$ cat common.sh

    #!/bin/sh

    logger(){

    local info="$*"

    echo "[`date +'%Y/%m/%d %H:%M:%S'`]  $info"

    }

    logger

    3、获取my.cnf中的配置

    #!/bin/sh

    . /etc/profile

    . ~/.bash_profile

    #根据配置文件、section、item,得到item对应的value

    #其中$1 为section,$2为item,$3为配置文件

    getvalue()

    {

    awk -F '=' '/\['$1'\]/{a=1}a==1&&$1~/'$2'/{print $2;exit}' $3 |sed 's/ *$//g'|sed 's/^ *//g'

    }

    getconfig()

    {

    SECTION=$1

    CONFILE=$2

    #一个段中的名值对,必须实现把所有的都列出来

    ENDPRINT="user pass port auditlog ip socket"

    dd=`date +'%Y%m%d'`

    for loop in $ENDPRINT

    do

    case $loop in

    "user")

    #user=`awk -F '=' '/\['$SECTION'\]/{a=1}a==1&&$1~/'$loop'/{print $2;exit}' $CONFILE |sed 's/ *$//g'|sed 's/^ *//g'`

    user=`getvalue $SECTION $loop $CONFILE`

    ;;

    "pass")

    pass=`getvalue $SECTION $loop $CONFILE`

    ;;

    "port")

    port=`getvalue $SECTION $loop $CONFILE`

    ;;

    "auditlog")

    auditlog=`getvalue $SECTION $loop $CONFILE`

    ;;

    "ip")

    host=`getvalue $SECTION $loop $CONFILE`

    ;;

    "socket")

    socket=`getvalue $SECTION $loop $CONFILE`

    ;;

    esac

    #auditlog=`grep $auditlog config.ini |awk -F '=' '{print $2}'|sed 's/ *$//g'|sed 's/^ *//g'`

    done

    logdir=$AUD_HOME/logs/$host:$port

    [ ! -d $logdir ] && mkdir -p $logdir

    ( $AUD_HOME/bin/audit_logrotate.sh $user $pass $auditlog $host $port $socket >>$logdir/${host}:${port}_$dd 2>&1 )

    }

    bdir=`dirname $0`

    cd $bdir >/dev/null

    AUD_HOME=`dirname $PWD`

    cd - >/dev/null

    PATH=$AUD_HOME/bin:$PATH

    export PATH AUD_HOME

    config=$AUD_HOME/config/mysql.cfg

    dd=`date +'%Y%m%d'`

    #获取配置文件中的段名称,如存在[3306]、[3307],会得到3306和3307

    section=`grep "^\[.*\]$" $config|grep -o "[[:digit:]]\{4,\}" | xargs`

    for OneCom in $section

    do

    getconfig $OneCom $config

    done

    #删除过期的日志

    find $AUD_HOME/mysql_audit/*  -ctime +10 |xargs rm -rf;

    find $AUD_HOME/logs  -ctime +10 -exec rm {} \;

    4、根据my.cnf的值生成审计日志

    $ cat audit_logrotate.sh

    #!/bin/bash

    AUD_HOME=${AUD_HOME:-/home/mysql/audit_archive}

    . $AUD_HOME/bin/common.sh

    tt=`date  +%Y%m%d%H%M%S`

    user=$1

    pass=$2

    auditlog=$3

    host=$4

    port=$5

    socket=$6

    dd=`date +'%Y%m%d'`

    root=mysql_audit

    logserver=172.30.4.104

    logrotate(){

    if [ -s $3 ]; then

    mv $3  $4

    chmod o+r $4

    echo "set global audit_json_file_flush=ON;" | mysql -u$1 -p$2 -S $5

    else

    logger $3 is empty, not need rotate!

    exit

    fi

    }

    logger $host $port

    dir=$AUD_HOME/$root/${host}:${port}/$dd

    [ ! -d $dir ] && mkdir -p $dir

    file=mysql-audit.json$tt

    out=$dir/$file

    logrotate $user $pass $auditlog $out $socket

    logger rotate mysql audit to file $out

    ( $AUD_HOME/bin/rsynclog.sh $AUD_HOME/$root/${host}:${port} $logserver $root)

    更多相关内容
  • Mysql审计日志

    2021-10-13 16:57:56
    Mysql审计日志 1、下载mariadb-5.5.56-linux-x86_64.tar.gz解压获取server_audit.so插件 下载链接:https://downloads.mariadb.org/mariadb-galera/5.5.56/#file_type=source 2、登录MySQL,执行命令获取MySQL的...

    Mysql审计日志

    1、下载mariadb-5.5.56-linux-x86_64.tar.gz解压获取server_audit.so插件

    下载链接:https://downloads.mariadb.org/mariadb-galera/5.5.56/#file_type=source

    2、登录MySQL,执行命令获取MySQL的plugin目录

    mysql> SHOW GLOBAL VARIABLES LIKE 'plugin_dir';
    +---------------+--------------------------+
    | Variable_name | Value |
    +---------------+--------------------------+
    | plugin_dir | /usr/lib64/mysql/plugin/ |
    +---------------+--------------------------+
    1 row in set (0.02 sec)
    

    3、将server_audit.so上传到 /usr/lib64/mysql/plugin/下

    4、在命令下安装server_audit.so

    mysql> INSTALL PLUGIN server_audit SONAME 'server_audit.so';
    

    5、查看变量开启设置情况,默认貌似都是关闭的

    mysql> show variables like '%audit%';
    

    6、编辑my.cnf,添加配置

    /etc/my.cnf

    server_audit_events='CONNECT,QUERY,TABLE,QUERY_DDL,QUERY_DML,QUERY_DCL'
    备注:指定哪些操作被记录到日志文件中
    server_audit_logging=on
    server_audit_file_path =/data/mysql/auditlogs/
    备注:审计日志存放路径,该路径下会生成一个server_audit.log文件,就会记录相关操作记录了
    server_audit_file_rotate_size=200000000
    server_audit_file_rotations=200
    server_audit_file_rotate_now=ON
    

    注意:server_audit_file_path =/data/mysql/auditlogs/的目录需要开启权限 chmod 777 /data/mysql/auditlogs/ ,并且要关闭SElinux,否则无法生成日志。

    7、重启服务,service mysqld restart

    登录MySQL后发现,在MySQL环境下执行的任何命令都被记录到/data/mysql/auditlogs/server_audit.log,如果日志文件达到指定的大小,会自动切割

    mysql> show variables like '%audit%';
    

    日志为:
    20170516 23:21:23,salt-master,audit_log_user,localhost,4,19,QUERY,‘show variables like ‘%audit%’’,0

    8、参数说明:

    详细请参考:https://mariadb.com/kb/en/mariadb/server_audit-system-variables/

    server_audit_output_type:指定日志输出类型,可为SYSLOG或FILE
    server_audit_logging:启动或关闭审计
    server_audit_events:指定记录事件的类型,可以用逗号分隔的多个值(connect,query,table),如果开启了查询缓存(query cache),查询直接从查询缓存返回数据,将没有table记录
    server_audit_file_path:如server_audit_output_type为FILE,使用该变量设置存储日志的文件,可以指定目录,默认存放在数据目录的server_audit.log文件中
    server_audit_file_rotate_size:限制日志文件的大小
    server_audit_file_rotations:指定日志文件的数量,如果为0日志将从不轮转
    server_audit_file_rotate_now:强制日志文件轮转
    server_audit_incl_users:指定哪些用户的活动将记录,connect将不受此变量影响,该变量比server_audit_excl_users优先级高
    server_audit_syslog_facility:默认为LOG_USER,指定facility
    server_audit_syslog_ident:设置ident,作为每个syslog记录的一部分
    server_audit_syslog_info:指定的info字符串将添加到syslog记录
    server_audit_syslog_priority:定义记录日志的syslogd priority
    server_audit_excl_users:该列表的用户行为将不记录,connect将不受该设置影响
    server_audit_mode:标识版本,用于开发测试
    

    9、卸载server_audit

    mysql> UNINSTALL PLUGIN server_audit;
    mysql> show variables like '%audit%';
    Empty set (0.00 sec)
    

    防止server_audit 插件被卸载,需要在配置文件中添加:

    [mysqld]
    server_audit=FORCE_PLUS_PERMANENT
    

    重启MySQL生效

    值得注意的是,应该在server_audit插件被安装好,并且已经运行之后添加这些配置,否则过早在配置文件添加这个选项,会导致MySQL发生启动错误!

    mysql> UNINSTALL PLUGIN server_audit;
    ERROR 1702 (HY000): Plugin 'server_audit' is force_plus_permanent and can not be unloaded
    
    展开全文
  • MySQL审计日志

    万次阅读 2018-09-19 18:27:35
    数据库审计能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的...MySQL官网的收费组件需要购买企业版才可以使用审计功能。下面利用第三方开源审计插件 libaudit_plugin....

    数据库审计能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行警告,对攻击行为进行阻断。它通过对用户访问数据库行为的记录、分析和汇报,用来帮助用户时候生成合规报告、事故追根溯源,同时加强内外部数据库网络行为记录,提高数据资产安全。

    MySQL官网的收费组件需要购买企业版才可以使用审计功能。下面利用第三方开源审计插件 libaudit_plugin.so 在 MySQL 5.7 上完成审计工作。

    下载地址 https://bintray.com/mcafee/mysql-audit-plugin/release/1.1.4-725#files

    解压插件包

    # unzip audit-plugin-mysql-5.7-1.1.4-725.zip

    将解压好的插件复制到 MySQL 的插件目录下

    # cd audit-plugin-mysql-5.7-1.1.4-725/lib/

    # cp libaudit_plugin.so /usr/local/mysql/lib/plugin/

    安装插件

    root@localhost 18:18: [(none)]> install plugin audit soname 'libaudit_plugin.so';

    查看插件功能是否开启

    root@localhost 18:19: [(none)]> show variables like '%audit_json_file%';
    +-------------------------+-------+
    | Variable_name           | Value |
    +-------------------------+-------+
    | audit_json_file         | OFF   |
    | audit_json_file_bufsize | 1     |
    | audit_json_file_flush   | OFF   |
    | audit_json_file_retry   | 60    |
    | audit_json_file_sync    | 0     |
    +-------------------------+-------+
    5 rows in set (0.00 sec)

    开启插件功能

    root@localhost 18:20: [(none)]> set global audit_json_file = 1;
    Query OK, 0 rows affected (0.00 sec)

    root@localhost 18:20: [(none)]> show variables like '%audit_json_file%';
    +-------------------------+-------+
    | Variable_name           | Value |
    +-------------------------+-------+
    | audit_json_file         | ON    |
    | audit_json_file_bufsize | 1     |
    | audit_json_file_flush   | OFF   |
    | audit_json_file_retry   | 60    |
    | audit_json_file_sync    | 0     |
    +-------------------------+-------+
    5 rows in set (0.00 sec)

     

    OK,现在在 MySQL 目录下会多出一个审计日志

    # ls /usr/local/mysql/data/mysql-audit.json

    查看 mysql-audit.json 文件,可以找到操作SQL语句的用户名、主机地址。这可以让在数据库上做了坏事又不认账的人无法赖账,起到了对操作数据库很好的监控效果。

    比如现在有一个家伙,对 scott 库下的 emp 表,做了 select * from emp; 的操作,现在来看下审计日志中的记录。

    # cat /usr/local/mysql/data/mysql-audit.json
    {"msg-type":"activity","date":"1537352639624","thread-id":"3","query-id":"20","user":"root","priv_user":"root","ip":"","host":"localhost","connect_attrs":{"_os":"Linux","_client_name":"libmysql","_pid":"2201","_client_version":"5.7.18","_platform":"x86_64","program_name":"mysql"},"pid":"2201","os_user":"root","appname":"mysql","rows":"1","cmd":"select","query":"SELECT DATABASE()"}
    {"msg-type":"activity","date":"1537352639624","thread-id":"3","query-id":"21","user":"root","priv_user":"root","ip":"","host":"localhost","connect_attrs":{"_os":"Linux","_client_name":"libmysql","_pid":"2201","_client_version":"5.7.18","_platform":"x86_64","program_name":"mysql"},"pid":"2201","os_user":"root","appname":"mysql","rows":"1","cmd":"Init DB","objects":[{"db":"scott","obj_type":"DATABASE"}],"query":"Init DB"}
    {"msg-type":"activity","date":"1537352640539","thread-id":"3","query-id":"22","user":"root","priv_user":"root","ip":"","host":"localhost","connect_attrs":{"_os":"Linux","_client_name":"libmysql","_pid":"2201","_client_version":"5.7.18","_platform":"x86_64","program_name":"mysql"},"pid":"2201","os_user":"root","appname":"mysql","rows":"14","cmd":"select","objects":[{"db":"scott","name":"emp","obj_type":"TABLE"}],"query":"select * from emp"}

     

     

    展开全文
  • ################################################# cat >>/home/backup_audit_log.sh<<EOF #!bin/bash #author conan #read -p "Please input remote ...read -sp "Please input mysql user’s passwor

    #################################################
    cat >>/home/backup_audit_log.sh<<EOF
    #!bin/bash
    #author conan
    #read -p "Please input remote server: " server
    read -p "Please input mysql user: " user
    read -sp "Please input mysql user’s password: " password
    read -p "Please input mysql databasename: " dbname
    read -p "Please input mysql old_tablename will be delete: " old_table
    read -p "Please input mysql new_tablename will be create: " new_table
    ############# get current time
    current=date "+%Y-%m-%d %H:%M:%S"
    timeStamp=date -d "$current" +%s
    currentTimeStamp=$((timeStamp*1000+date "+%N"/1000000))
    #echo $currentTimeStamp
    ############# get 180day before
    backtime=expr $currentTimeStamp - 15465600000
    #echo $backtime
    ##############
    #mysql -h s e r v e r − u server -u serveruuser -p p a s s w o r d − e " ; " m y s q l − u password -e ";" mysql -u passworde";"mysqluuser -p$password -e “use $dbname;
    create table if not exists $new_table like old_table;
    insert into n e w t a b l e s e l e c t ∗ f r o m o l d t a b l e w h e r e l o g T i m e < new_table select * from old_table where logTime< newtableselectfromoldtablewherelogTime<backtime;
    delete from old_table where logTime<$backtime;”
    EOF
    sudo chmod 777 /home/backup_audit_log.sh
    #################################
    sudo echo “0 0 * * * sh /home/backup_audit_log.sh” >> /etc/crontab
    ############ redhat/centos 7
    sudo systemctl restart crond.service &> /dev/null
    ############ redhat/centos 6
    sudo service crond restart &> /dev/null

    展开全文
  • get install software-properties-common python-software-propertiessudo add-apt-repository ppa:adiscon/v8-stablesudo apt-get updatesudo apt-get install rsyslog2、配置目录存储mysql审计日...
  • mysql审计日志开启

    万次阅读 2019-05-09 15:05:01
    个人选择了MariaDB Audit Plugin安装到我的MySQL_5.7.18上,以下为具体部署操作:1、下载mariadb-5.5.56-linux-x86_64.tar.gz解压获取server_audit.so插件 2、登录MySQL,执行命令获取MySQL的plugin目录 mysql> ...
  • MYSQL_审计日志查看

    千次阅读 2021-01-18 18:54:04
    安装插件# unzipaudit-plugin-percona-5.7-1.1.7-805-linux-x86_64.zip# cd /u01/soft/audit-plugin-percona-5.7-1.1.7-805/lib# cp libaudit_plugin.so /usr/local/mysql/lib/plugin/# cd/...
  • mysql清除审计日志

    2022-02-23 17:49:38
    查看审计日志存放的位置 mysql>show variables like ‘general_log’; – 查看日志是否开启 mysql>show variables like ‘general_log_file’; – 看看日志文件保存位置 mysql>show variables like ‘log_...
  • MySQL Audit日志审计

    2021-01-18 18:54:03
    一、简介数据库审计能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库受到的风险行为进行告警,对攻击行为进行阻断,它通过对用户访问数据库行为的记录、分析和汇报,用来帮助用户...
  • 1、需要下载审计插件audit-plugin-mysql-5.7-1.1.7-921-linux-x86_64.zip,大量的时间花费到找这个资源了,我上传到博客里,后面的人直接拿走不谢。 2、开始做了 (1)先把整个压缩包上传到linux服务器/opt,然后...
  • 配置Mysql审计

    2021-01-30 21:11:04
    mysql-audit.json:Mysql审计日志插件下载地址:https://bintray.com/mcafee/mysql-audit-plugin/release/1.1.4-725#files首先查看mysql的插件保存目录:mysql> show global variables like 'plugin_dir';+------...
  • mysql 日志审计功能有三种方式 1.开启general_log 2.BinLog+Init_connect 3.审计插件 开启general_log set global general_log=on #检查验证 show variables like '%general_log%'; 弊端:只要用户执行了操作...
  • Mysql5.7 数据库日志审计功能-附件资源
  • Mysql开启审计日志、忽略大小写配置

    千次阅读 2021-12-13 20:53:59
    开启审计日志 1、查看mysql的general_log文件位置及名称; show variables like '%general_log%'; show variables like '%general_log_file%'; 在Mysql命令行执行: SET GLOBAL general_log = 'ON'; -- SET ...
  • 三级等保mysql8.0.24审计日志开启
  • Mysql日志审计工具

    千次阅读 2019-06-27 10:00:07
    Mysql日志审计工具 参考网址:http://www.omgdba.com/mysql-audit-plugin-now-available-in-percona-server-5-5-and-5-6.html 个人感觉审计没啥用处,偶然间看到这个功能总结了解下。 ...
  • MySQL之添加日志审计功能

    千次阅读 2020-04-14 11:11:29
    数据库审计主要用于监视并记录对数据库服务器的各类操作行为,并记入审计日志或数据库中以便日后进行跟踪、查询、分析,以实现对用户操作的监控和审计。审计是一项非常重要的工作,也是企业数据安全体系的重要组成...
  • MySQL审计audit

    2021-01-19 06:42:54
    导读: MySQL社区版是不带审计功能的,如果要使用MySQL审计,可以考虑使用中间件(例如proxysql)或者是MariaDB的审计插件。这里以MariaDB的审计插件为例,实现MySQL 5.7的审计功能。版本信息 操作系统版本 :CentOS ...
  • mysql如何开启审计

    2021-01-18 22:16:20
    1.获取到安全审计插件可以下载mariadb后,解压找到server_audit.so我这里下载的mariadb版本是10.42.将server_audit.so 拷贝到mysql插件的路径下[root@localhost plugin]#cp /soft/server_audit.so /opt/mysql57/lib/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,252
精华内容 6,100
关键字:

mysql 审计日志

mysql 订阅