liux登录日志 环境配置,实现监控所有登录用户的操作历史
; g( n* }* t0 n+ }
- Y9 G1 k: [1 ?7 _0 p8 E
9 g6 L) P: a6 t5 k, f作为系统管理员,不可能实时去盯着谁登陆了系统,做了一些什么操作,下面主要通过一个脚本来生成所有登录用户的操作历史,从而更好的管理linux系统,看是不是有一些违规操作。& G7 b& E- h; i7 K7 D f; z
) n6 l( b6 U$ i3 z& n! p6 |一、查看日志文件, k/ e/ w. E1 |2 X' J( ?
1、查看/var/log/wtmp文件看是否有可以IP地址登录5 G" X$ d# V/ L8 F* m
" b- _- G, D% J8 Y) T% V. f k3 N[root@it-elassearch tmp]# last -f /var/log/wtmp
; Z' H/ w: ~2 Y* I5 n8 adevops pts/0 172.24.21.7 Wed Oct 23 15:06 still logged in
" u1 ~! k5 ?2 n0 G% I. ]& ], Bdevops pts/0 172.24.21.7 Wed Oct 9 13:59 - 16:33 (02:33)
" x( D3 N' L% B0 c4 }, C; Zdevops pts/0 172.24.21.7 Wed Oct 9 10:15 - 11:40 (01:24)
" S+ C+ f+ [" i0 G6 odevops pts/0 172.24.21.7 Tue Sep 17 10:09 - 10:44 (00:34)
: |5 M5 Z% a8 A8 [2 Wdevops pts/0 172.24.21.7 Tue Sep 3 11:00 - 11:01 (00:00) * I& C) R- U# r4 _) Y& p) d L
reboot system boot 3.10.0-1160.24.1 Mon Jul 8 18:54 - 15:42 (106+20:48) 8 Z" A+ E7 v% G) b3 y5 q
devops pts/0 172.24.21.6 Mon Jul 8 18:53 - 18:53 (00:00)
- o2 l3 E7 t/ `. h+ n8 T( T) gdevops pts/1 172.24.21.6 Mon Jul 8 17:05 - 17:10 (00:04)
, Q* T! M- ^/ cdevops pts/0 172.24.21.6 Mon Jul 8 16:24 - 18:14 (01:50)
8 F6 |+ h9 Q/ z" Vroot tty1 Mon Jun 11 18:31 - 10:17 (15:45) 6 Y0 @" `- v6 Z% V/ I
reboot system boot 3.10.0-693.el7.x Mon Jun 11 18:31 - 10:44 (16:13) * ?- A! i4 F' I% G' B4 n
reboot system boot 3.10.0-693.el7.x Mon Jun 11 18:30 - 10:44 (16:14)
; E+ n; e9 C8 v; Ireboot system boot 3.10.0-693.el7.x Mon Jun 11 18:21 - 10:44 (16:23)
0 r' ~! Y) u! y+ O) Q' p' \- x' w
O# |2 @/ ]7 X$ V" B8 swtmp begins Mon Jun 11 18:21:20 2018$ q6 \5 \2 ?' O# K: R
6 C3 R4 s! F: c5 Z, r# g
5 \3 y6 J; P/ ^0 h7 _, q1 V
0 {0 ?; |" G' u$ z
1 x, _1 b% X$ H该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,( b4 Z! C/ B' z4 \! J: f) |8 I
6 G0 T* _4 F, r- B. @, }
增加的速度取决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录,, z3 o- q3 b1 M6 R
( j7 T" \% n z r5 k% o& H
last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端tty或时间显示相应的记录。6 Q# D! E6 w( U
( }* J& l+ a# J+ {# i" j4 V1 r: O. A+ E2 J5 q
( i, G* B% L+ F& Y. Q
2、查看/var/log/secure文件寻找可疑IP登陆次数8 {8 J% s% W( x0 p+ k" J: I' ]
& C( Z; G1 R8 h: N( l7 u
cat /var/log/secure! O" a/ m8 D! ]/ D
% S6 L; y; l6 A, O* P- R( o9 w2 h7 H4 ]3 V- k1 B! n# g$ e
7 {0 J5 e3 C- i1 J' B& |Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'
% b1 q! D3 [, C ?/ l1 a7 ZOct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc') K6 \ J# A* i8 U- ~' ~9 x
Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'
9 b$ v8 ^0 H8 p0 D) T) U' l1 ?3 mOct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'8 i- s# {. i( T2 a# y$ v6 l
Oct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'
, q7 F( Q* Z x. Y, h1 i% Y& M/ {Oct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'
; X H3 X7 k- n$ f, P& m; eOct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc': C+ S3 J) ?- f* m2 p2 @1 x6 `' k
Oct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'
6 \8 t0 j+ h" M( bOct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'
1 l! m2 r! L0 C6 JOct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'
2 e) _* ~8 O. S+ p9 ROct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'9 Y; j' l9 s' E' P" q
Oct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'* ^% H. O9 H) ]# c* {9 \! e9 Z8 D
You have mail in /var/spool/mail/root
/ j. j* W+ j+ R5 ]4 X& q/ d- y$ x2 c: m
5 Y2 E8 y" {% m2 ^
二、 脚本生成所有登录用户的操作历史需求:记录登陆后的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
* Y6 l- h% D: a$ a5 q) ?7 p# `
" R: `2 V& h. W4 D. x) o& c. {
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、生效环境变量 . Q9 X9 P6 `& p! B1 C, d
( A# S+ e, \* q& H
|