liux登录日志 环境配置,实现监控所有登录用户的操作历史 Y* g* A; G& M: D H; c1 R
2 F" O( W* v1 d5 H% X; {
- `6 M2 w/ X% J0 h
作为系统管理员,不可能实时去盯着谁登陆了系统,做了一些什么操作,下面主要通过一个脚本来生成所有登录用户的操作历史,从而更好的管理linux系统,看是不是有一些违规操作。0 N3 @- z. _* G3 n/ X4 M$ ~
3 J+ g3 @; N( ]
一、查看日志文件
! ]% s, l2 e2 R7 \# Q% x8 D( z0 O 1、查看/var/log/wtmp文件看是否有可以IP地址登录6 C, [, ^8 e% }2 l
1 c2 t7 Q- n/ O
[root@it-elassearch tmp]# last -f /var/log/wtmp
0 H% ?; M& R7 }) S7 \devops pts/0 172.24.21.7 Wed Oct 23 15:06 still logged in . S8 I+ P( Z( A4 {
devops pts/0 172.24.21.7 Wed Oct 9 13:59 - 16:33 (02:33)
/ N) X( L. M w6 rdevops pts/0 172.24.21.7 Wed Oct 9 10:15 - 11:40 (01:24) ( `* `) `& X* \% y% [) Q
devops pts/0 172.24.21.7 Tue Sep 17 10:09 - 10:44 (00:34)
2 c7 n3 b9 ^* p7 g }2 Adevops pts/0 172.24.21.7 Tue Sep 3 11:00 - 11:01 (00:00)
0 T) p+ Q! Z% o9 ]reboot system boot 3.10.0-1160.24.1 Mon Jul 8 18:54 - 15:42 (106+20:48)
. }! ?2 O7 d" G$ kdevops pts/0 172.24.21.6 Mon Jul 8 18:53 - 18:53 (00:00) 7 m% q Y" g% n, @( j5 `4 C- d
devops pts/1 172.24.21.6 Mon Jul 8 17:05 - 17:10 (00:04)
5 r: s# F7 Z8 P" Gdevops pts/0 172.24.21.6 Mon Jul 8 16:24 - 18:14 (01:50) 2 r$ t6 c' Q; q
root tty1 Mon Jun 11 18:31 - 10:17 (15:45)
4 _0 E& I- q2 C0 Y) preboot system boot 3.10.0-693.el7.x Mon Jun 11 18:31 - 10:44 (16:13)
5 S& x+ V4 t- s# e$ D* Nreboot system boot 3.10.0-693.el7.x Mon Jun 11 18:30 - 10:44 (16:14) ! V/ X% v7 }* w, I* h
reboot system boot 3.10.0-693.el7.x Mon Jun 11 18:21 - 10:44 (16:23) " s# V# R$ F' E( x2 g
N/ Q" ~; h! Z0 ~4 l: u
wtmp begins Mon Jun 11 18:21:20 2018
- H. N) i+ s$ [0 C7 O" y
" n% \# _9 }; p% k" c# Q
- E! `" q, L+ g! a' h/ O9 \& m: A! _4 ? c
' Z ~9 A' J* M# ^该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,
/ I0 e: g# O8 i- Y5 r- e
9 D- {0 T! B6 s4 t增加的速度取决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录,
8 a, }: {/ {* @. A0 T$ D, A6 J6 _' p9 [0 B- \4 l/ N# W5 ]" ?
last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端tty或时间显示相应的记录。3 U) O. }+ h) R
& m1 ]1 _! e5 E1 F# J$ |/ S* x3 I D
+ {: h% k& m6 i
# n6 }+ H6 }/ @6 G$ K7 r0 K K 2、查看/var/log/secure文件寻找可疑IP登陆次数
2 u6 A# p7 i- t+ a' J6 @: ^8 F! K z$ F8 W6 v4 ]
cat /var/log/secure
0 ?% O0 `3 X8 j- b* J5 {) P
6 d+ B E2 W4 J+ _
! [; d. t& Y1 G0 A9 ?9 D; E: D8 s; |. i" R: F. u) d6 m
Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'
: F, j" u+ x. o+ ]0 JOct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'8 h" |5 o* @7 t; |# G
Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'" h W% `& D9 ~; R7 Z
Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'4 E! m; I" ~! T" Z4 A# b6 u. p
Oct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'
( C9 X& o7 K1 e; d( yOct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'
: ?8 ~ e3 A! XOct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'2 F4 K* R/ ?' {2 U3 k% l+ p
Oct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'" w/ Q7 ?1 ?# u6 z
Oct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc': Z9 y6 R! p# C3 Q( t
Oct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'
! B4 i. Z, y" U/ [6 q- r9 `0 IOct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc': q' l% q( V& P' W
Oct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'
: \& s: Q( I4 D0 I. u H9 D8 A3 xYou have mail in /var/spool/mail/root, E' v" w( H ]8 Y" j
6 A3 W) a$ z# x" K2 _# t9 s) D _/ _' J2 b$ ? g
二、 脚本生成所有登录用户的操作历史需求:记录登陆后的IP地址和某用户名所操作的历史记录 实现: 1、配置/etc/profile.d/ vim ahistory.sh USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` if [ "$USER_IP" = "" ];then USER_IP=`hostname -s` fi if [ ! -d /tmp/.login ];then mkdir /tmp/.login chmod -R 777 /tmp/.login fi if [ ! -d /tmp/.login/${LOGNAME} ];then mkdir /tmp/.login/${LOGNAME} chmod 400 /tmp/.login/${LOGNAME} fi export HISTSIZE=40960 DT=`date "+%Y-%m-%d_%H-%M-%S"` export HISTFILE="/tmp/.login/${LOGNAME}/${USER_IP}-dbasky.$DT" chmod 600 /tmp/.login/${LOGNAME}/*dbasky* 2>/dev/null 6 }* C6 F( h4 b$ b" z
8 G2 K$ @% X) a# _! ?2 ]* D6 ]0 m+ }
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` if [ "$USER_IP" = "" ];then USER_IP=`hostname -s` fi if [ ! -d /tmp/.login ];then sudo mkdir /tmp/.login 2>/dev/null sudo chmod -R 777 /tmp/.login 2>/dev/null fi if [ ! -d /tmp/.login/${LOGNAME} ];then sudo mkdir /tmp/.login/${LOGNAME} 2>/dev/null sudo chmod 300 /tmp/.login/${LOGNAME} 2>/dev/null fi export HISTSIZE=4096 export HISTTIMEFORMAT="%F %T - $(whoami) " DT=`date "+%Y-%m-%d_%H-%M-%S"` export HISTFILE="/tmp/.login/${LOGNAME}/${USER_IP}-dbasky.$DT" chmod 600 /tmp/.login/${LOGNAME}/*dbasky* 2>/dev/null #clear 20days ago file CLEAR=`date -d "20 days ago" +%F` historyDIR=/tmp/.login #cd $historyDIR ls $historyDIR | grep $CLEAR |xargs rm -f #cd ~ 保存 2、生效环境变量 `) F* ~# ]2 k; Q, ~& q i; Y
4 e5 H; X7 C* V |