linux日志审计项目案例实战(生产环境日志审计项目解决方案)

简介:

    所谓日志审计,就是记录所有系统及相关用户行为的信息,并且可以自动分析、处理、展示(包括文本或者录像)


推荐方法:sudo配合syslog服务,进行日志审计(信息较少,效果不错)


1.安装sudo命令、syslog服务(centos6.4或以上为rsyslog服务)

[root@nginx_back ~]#rpm -qa "sudo|syslog"   查询系统是否已安装sudo、syslog程序

rsyslog-5.8.10-8.el6.x86_64

sudo-1.8.6p3-15.el6.x86_64

[root@nginx_back ~]#rpm -qa|egrep "sudo|syslog"

rsyslog-5.8.10-8.el6.x86_64

sudo-1.8.6p3-15.el6.x86_64

如果没有安装,则用yum安装


2.配置/etc/sudoers

增加配置“Defaults    logfile=/var/log/sudo.log”到/etc/sudoers中,注意:不包含引号


[root@nginx_back ~]#echo "Defaults    logfile=/var/log/sudo.log">>/etc/sudoers

[root@nginx_back ~]#tail /etc/sudoers

## Allows members of the users group to mount and unmount the 

## cdrom as root

# %users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom


## Allows members of the users group to shutdown this system

# %users  localhost=/sbin/shutdown -h now


## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)

#includedir /etc/sudoers.d

Defaults    logfile=/var/log/sudo.log

[root@nginx_back ~]#tail -1 /etc/sudoers

Defaults    logfile=/var/log/sudo.log

[root@nginx_back ~]#visudo -c  检查sudoers文件语法

/etc/sudoers: parsed OK


3.配置系统日志/etc/syslog.conf

增加配置local2.debug到/etc/syslog.conf中(Centos5.8中)

[root@nginx_back ~]#echo "local2.debug   /var/log/sudo.log">>/etc/syslog.conf

[root@nginx_back ~]#tail -1 /etc/syslog.conf

local2.debug   /var/log/sudo.log

提示:如果是Centos6.4 路径为/etc/rsyslog.conf

[root@nginx_back ~]#echo "local2.debug   /var/log/sudo.log">>/etc/rsyslog.conf

[root@nginx_back ~]#tail -1 /etc/rsyslog.conf          

local2.debug   /var/log/sudo.log


4.重启syslog或rsyslog内核日志记录器

/etc/init.d/syslog restart(Centos5.8)

/etc/init.d/rsyslog restart(Centos6.4)


[root@nginx_back ~]#/etc/init.d/rsyslog restart

Shutting down system logger:                          [  OK  ]

Starting system logger:                               [  OK  ]

[root@nginx_back ~]#ll /var/log/sudo.log

-rw------- 1 root root 0 Jun 23 23:17 /var/log/sudo.log


5.测试sudo日志审计配置结果

[root@nginx_back ~]#whoami 

root

[root@nginx_back ~]#su - ci001

-bash: warning: setlocale: LC_CTYPE: cannot change locale (en): No such file or directory

-bash: warning: setlocale: LC_COLLATE: cannot change locale (en): No such file or directory

-bash: warning: setlocale: LC_MESSAGES: cannot change locale (en): No such file or directory

-bash: warning: setlocale: LC_NUMERIC: cannot change locale (en): No such file or directory

-bash: warning: setlocale: LC_TIME: cannot change locale (en): No such file or directory

welcome to oldboy linux training from /etc/profile.d

[ci001@nginx_back ~]$ sudo -l

[sudo] password for ci001: 

Sorry, user ci001 may not run sudo on nginx_back.

[ci001@nginx_back ~]$ sudo useradd dddd

[sudo] password for ci001: 

ci001 is not in the sudoers file.  This incident will be reported.

[ci001@nginx_back ~]$ logout

[root@nginx_back ~]#ll /var/log/sudo.log

-rw------- 1 root root 232 Jun 23 23:21 /var/log/sudo.log

[root@nginx_back ~]#cat  /var/log/sudo.log  

Jun 23 23:20:44 : ci001 : command not allowed ; TTY=pts/0 ; PWD=/home/ci001 ;

    USER=root ; COMMAND=list

Jun 23 23:21:17 : ci001 : user NOT in sudoers ; TTY=pts/0 ; PWD=/home/ci001 ;

    USER=root ; COMMAND=/usr/sbin/useradd dddd


[root@nginx_back ~]#su - php001

-bash: warning: setlocale: LC_CTYPE: cannot change locale (en): No such file or directory

-bash: warning: setlocale: LC_COLLATE: cannot change locale (en): No such file or directory

-bash: warning: setlocale: LC_MESSAGES: cannot change locale (en): No such file or directory

-bash: warning: setlocale: LC_NUMERIC: cannot change locale (en): No such file or directory

-bash: warning: setlocale: LC_TIME: cannot change locale (en): No such file or directory

welcome to oldboy linux training from /etc/profile.d

[php001@nginx_back ~]$ whoami

php001

[php001@nginx_back ~]$ sudo su -

[sudo] password for php001: 

Sorry, try again.

[sudo] password for php001: 

php001 is not in the sudoers file.  This incident will be reported.

[php001@nginx_back ~]$ sudo echo "php001 ALL=(ALL) NOPASSWD:ALL">>/etc/sudoers

-bash: /etc/sudoers: Permission denied

[php001@nginx_back ~]$ sudo vi /etc/sudoers

[sudo] password for php001: 

php001 is not in the sudoers file.  This incident will be reported.

[php001@nginx_back ~]$ sudo visudo

[sudo] password for php001: 

php001 is not in the sudoers file.  This incident will be reported.

[php001@nginx_back ~]$ logout

[root@nginx_back ~]#cat  /var/log/sudo.log

Jun 23 23:20:44 : ci001 : command not allowed ; TTY=pts/0 ; PWD=/home/ci001 ;

    USER=root ; COMMAND=list

Jun 23 23:21:17 : ci001 : user NOT in sudoers ; TTY=pts/0 ; PWD=/home/ci001 ;

    USER=root ; COMMAND=/usr/sbin/useradd dddd

Jun 23 23:26:56 : php001 : user NOT in sudoers ; TTY=pts/0 ; PWD=/home/php001 ;

    USER=root ; COMMAND=/bin/su -

Jun 23 23:28:55 : php001 : user NOT in sudoers ; TTY=pts/0 ; PWD=/home/php001 ;

    USER=root ; COMMAND=/bin/vi /etc/sudoers

Jun 23 23:29:18 : php001 : user NOT in sudoers ; TTY=pts/0 ; PWD=/home/php001 ;

    USER=root ; COMMAND=/usr/sbin/visudo


6.日志集中管理

1)rsync+inotify或定时任务+rsync,推到日志管理服务器上,10.0.0.7_20120309.sudo.log

2)syslog服务来处理

[root@MySQL-A~]#echo "10.0.2.164 logserver">>/etc/hosts

#日志服务器地址

[root@MySQL-A~]#echo "*.info  @logserver">>/etc/syslog.conf<<====适合所有日志推走

3)日志收集解决方案scribe、Flume、logstash、stom



本文转自 linuxzkq 51CTO博客,原文链接:http://blog.51cto.com/linuxzkq/1664795

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
9天前
|
Java Linux
Springboot 解决linux服务器下获取不到项目Resources下资源
Springboot 解决linux服务器下获取不到项目Resources下资源
|
17天前
|
Linux Shell
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
70 1
|
1月前
|
运维 Linux Apache
Linux Apache服务详解——Apache虚拟目录与禁止显示目录列表实战
Linux Apache服务详解——Apache虚拟目录与禁止显示目录列表实战
22 2
|
26天前
|
Shell Linux C语言
【Shell 命令集合 网络通讯 】Linux 查看系统中的UUCP日志文件 uulog命令 使用指南
【Shell 命令集合 网络通讯 】Linux 查看系统中的UUCP日志文件 uulog命令 使用指南
29 0
|
6天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
20 6
|
26天前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
48 0
|
1月前
|
IDE Linux 编译器
【Linux】项目自动化构建工具 —— make/Makefile
【Linux】项目自动化构建工具 —— make/Makefile
|
10天前
|
存储 监控 安全
Linux系统日志
【4月更文挑战第6天】Linux系统日志,关键用于记录系统状态和事件,包括内核、系统、安全和应用日志,助力管理员诊断问题、确保系统正常运行。日志管理涉及收集、分析、备份等,常用工具如rsyslog、systemd-journal和logrotate(用于日志轮转)。重视日志文件的存储管理,防止空间占用过多。
16 1
Linux系统日志
|
2天前
|
SQL 监控 安全
Linux&Windows 日志分析 陇剑杯 CTF
Linux&Windows 日志分析 陇剑杯 CTF
23 0
|
17天前
|
运维 监控 安全
linux日志分析与追踪
在Linux中,日志分析涉及检查 `/var/log` 下的不同文件,如`messages`、`auth.log`、`kern.log`等,以及Web服务器和数据库日志。使用`tail`、`grep`、`awk`等工具实时查看和搜索日志,`logrotate`管理日志大小,`journalctl`处理Systemd日志,而`Splunk`等工具则用于集中式分析。分析技巧包括异常检测、时间关联和阈值监控。安全事件追踪结合登录失败日志、网络嗅探和IDS/IPS。日志链路追踪在分布式系统中尤为重要,帮助定位服务调用问题。有效的日志管理和分析能增强系统安全和故障排除能力。
19 7