liux登录日志 环境配置,实现监控所有登录用户的操作历史
4 C& U+ ]- i+ i M% }% G5 a# Y9 ]3 x! L( N1 h5 Z8 L- D1 b8 U+ Q9 ~. X& y; ]
' t! Q7 r/ P0 R+ w; d0 f) H; M+ |作为系统管理员,不可能实时去盯着谁登陆了系统,做了一些什么操作,下面主要通过一个脚本来生成所有登录用户的操作历史,从而更好的管理linux系统,看是不是有一些违规操作。) P7 M0 W, T& x8 D. h
4 g% P. h1 J2 ?8 ?+ e* f- Q一、查看日志文件
9 D5 C8 r/ V+ ~8 p3 u3 t 1、查看/var/log/wtmp文件看是否有可以IP地址登录6 C d: O5 r, N; f! [* k0 P( p( t
% z8 p) d* {; M' j1 X[root@it-elassearch tmp]# last -f /var/log/wtmp
( h6 p: g7 [4 v& D, l+ {devops pts/0 172.24.21.7 Wed Oct 23 15:06 still logged in
( E( v/ t+ O5 f: {5 ddevops pts/0 172.24.21.7 Wed Oct 9 13:59 - 16:33 (02:33)
& J/ P6 S* _5 B+ w2 e5 ydevops pts/0 172.24.21.7 Wed Oct 9 10:15 - 11:40 (01:24) 8 Q. a/ k" i! p& @* S" w
devops pts/0 172.24.21.7 Tue Sep 17 10:09 - 10:44 (00:34)
, X0 Z& ^, `% R( f) N3 b. Udevops pts/0 172.24.21.7 Tue Sep 3 11:00 - 11:01 (00:00) o c( m7 _; d* A# c
reboot system boot 3.10.0-1160.24.1 Mon Jul 8 18:54 - 15:42 (106+20:48) ( W! a" _7 y9 z! g& ~+ o1 `
devops pts/0 172.24.21.6 Mon Jul 8 18:53 - 18:53 (00:00)
& D* \9 Z( X5 t8 s) w8 fdevops pts/1 172.24.21.6 Mon Jul 8 17:05 - 17:10 (00:04) * E, Z8 K# I. L' l
devops pts/0 172.24.21.6 Mon Jul 8 16:24 - 18:14 (01:50) / l* X8 f3 a# I4 U5 S4 ]" c# X, n
root tty1 Mon Jun 11 18:31 - 10:17 (15:45)
! T: j. f8 v1 v( `5 Creboot system boot 3.10.0-693.el7.x Mon Jun 11 18:31 - 10:44 (16:13)
% Q2 X- j% ~- nreboot system boot 3.10.0-693.el7.x Mon Jun 11 18:30 - 10:44 (16:14)
; m" ^( Y0 {7 t9 e. I6 kreboot system boot 3.10.0-693.el7.x Mon Jun 11 18:21 - 10:44 (16:23) % F. Y# G, K% z9 |# i& X/ M; S
1 ~9 E* T* d! `9 a1 X
wtmp begins Mon Jun 11 18:21:20 2018
+ y. ]* e8 T: m% B- m4 F: Y# b! j
# g0 u* {1 D7 |+ C9 l) F# [' r W& l& D3 }0 A* `
1 M# W7 D( v1 c9 M$ Q0 H
: x: [- G8 M! S( _; u该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,0 x8 F9 E7 i+ y4 `5 R% G
3 {4 a" {7 n- a7 T" |( N) [2 y- p! z
增加的速度取决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录,
" w- O- f: W5 I1 j! |
, l" d) z$ ?( n" tlast命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端tty或时间显示相应的记录。
4 s$ A. J9 P; Q" {: \( I/ c( N1 S% Q/ C1 {5 N
0 R; j) ^/ U' Z0 O9 Q E3 w( N' H9 l6 ]* w) o
2、查看/var/log/secure文件寻找可疑IP登陆次数
* P9 g* h, h" e* J/ g2 l& T6 e6 x7 u7 _9 u1 w: s
cat /var/log/secure
( O6 x8 l" `- q6 r0 k
, q) M# O) a: V9 R) P8 G1 [3 ~5 y$ J% B, f( O: P
. o0 }# c' \7 r
Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'
; q$ w+ O/ @4 U5 K# W. }6 lOct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'+ d! |# s9 F( t/ K
Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'
- m- }& }2 H" N' o+ b! B5 sOct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'
+ ]4 f- m. k5 J$ l/ s# @" ]Oct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'
6 f, Z& n# ~+ fOct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'
5 M+ M8 L" t* f- |2 u7 U! VOct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'
6 E c# T) H) l8 c1 y" r bOct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'
5 M5 H) A! C7 R$ v% F( R4 j: ?. aOct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'( M! |# H$ s0 r( c( ^4 n' b: z6 ]
Oct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'4 O3 {8 o- ]( }6 F8 T: }8 `; }
Oct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc') R z# F. J- Z/ f- t+ d6 N5 |
Oct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'' u p K1 O V! q4 T
You have mail in /var/spool/mail/root3 {/ T" s" @' j/ q3 V- N( B
% @0 e; w' `" ?! c& F [$ _" K5 b+ W
) f5 Z! c$ R% G- H' E二、 脚本生成所有登录用户的操作历史需求:记录登陆后的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
* ^: C9 _* A, W6 a: X
1 L! f8 N E3 M9 i7 d, v2 |
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、生效环境变量
% d3 {* \- O! k5 z0 K }2 \, f
" ^# d$ d, p# @" I* { |