liux登录日志 环境配置,实现监控所有登录用户的操作历史* ~5 X7 f" K2 l+ j
( b$ S( V: A% e/ o2 H; {
8 b, I% f' ?- C4 T
作为系统管理员,不可能实时去盯着谁登陆了系统,做了一些什么操作,下面主要通过一个脚本来生成所有登录用户的操作历史,从而更好的管理linux系统,看是不是有一些违规操作。/ x. O; c. n2 X
" `+ `# V8 \5 V7 \: C, c2 C6 u* N一、查看日志文件
( L/ {) L# o% F7 }" [ 1、查看/var/log/wtmp文件看是否有可以IP地址登录
; p# ^1 j+ t# B& j& u' J C; X; F; ~0 j
[root@it-elassearch tmp]# last -f /var/log/wtmp
/ | T8 f" C) x& r, A8 \devops pts/0 172.24.21.7 Wed Oct 23 15:06 still logged in
9 e. U, Q5 f+ O: [# Y6 Sdevops pts/0 172.24.21.7 Wed Oct 9 13:59 - 16:33 (02:33)
" H' i& m: r- j0 ~: O2 P5 Y1 idevops pts/0 172.24.21.7 Wed Oct 9 10:15 - 11:40 (01:24)
' s" S/ D" }9 a% P7 \devops pts/0 172.24.21.7 Tue Sep 17 10:09 - 10:44 (00:34) - ?' ?% h/ e/ T& H
devops pts/0 172.24.21.7 Tue Sep 3 11:00 - 11:01 (00:00)
/ T; ?, g7 a( h& v" T( E( `reboot system boot 3.10.0-1160.24.1 Mon Jul 8 18:54 - 15:42 (106+20:48)
/ p2 Q0 c# R7 P5 O- |4 h* T1 edevops pts/0 172.24.21.6 Mon Jul 8 18:53 - 18:53 (00:00)
' A5 u& a' W3 U4 B2 x& \$ K$ V0 p8 @devops pts/1 172.24.21.6 Mon Jul 8 17:05 - 17:10 (00:04)
7 B1 v7 p4 b! }. u8 {devops pts/0 172.24.21.6 Mon Jul 8 16:24 - 18:14 (01:50)
1 ^0 v5 _' w& } C2 }root tty1 Mon Jun 11 18:31 - 10:17 (15:45) ! E: u4 p$ r- v# Y% x6 i
reboot system boot 3.10.0-693.el7.x Mon Jun 11 18:31 - 10:44 (16:13)
* Z+ N( v7 i) h5 A2 w! i0 S1 l' Yreboot system boot 3.10.0-693.el7.x Mon Jun 11 18:30 - 10:44 (16:14) ) z$ Z2 H) S, {$ N T3 \8 ?2 ~- N
reboot system boot 3.10.0-693.el7.x Mon Jun 11 18:21 - 10:44 (16:23) 1 y2 A8 u) S _
* t8 ^4 }" D0 c- ^2 P7 cwtmp begins Mon Jun 11 18:21:20 2018
) ?9 F1 c. E" q. m( l j. ]+ v$ [! G* V6 a& l, B# J
# ~# J0 |' I- a: S' i- d) V! B. k
; a: a- |( C }( U
( p$ z, W2 c; h
该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,
0 j$ Z" ]( ?4 R5 q& o! Y1 |( |; K" D
增加的速度取决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录,
( K k; J \, d, l( f5 M
: H- H+ f) Z3 s8 Ylast命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端tty或时间显示相应的记录。+ m2 |7 I" G/ u, Q
1 [& D( `; ^% M+ a5 w$ Z1 s: p& L# S) `( \ H y
' Z- M' ]$ Z: t7 @
2、查看/var/log/secure文件寻找可疑IP登陆次数4 H& O0 a8 P- X: ?+ S5 |
% o2 |- J6 |1 C) _/ R: N, ?3 H o+ i1 ycat /var/log/secure
* {" }% ~' D# d' [4 s) F2 ]% x1 c s
5 _1 r6 r/ I+ g+ T6 z f( C# f' b' t, B2 e6 a- @
6 x) E/ L1 }) g: POct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'
0 O& i5 L* _- h/ ?2 ~Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'
, ]! W( G8 b! _# tOct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'
3 J: f7 G, m: O6 C) p( o5 \Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'' i1 T) U% ?# ?/ q4 Q9 x, {" x9 F
Oct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'. n: M+ `; p" O3 k3 }
Oct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'& m7 g4 V& |2 z3 z
Oct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'2 H( ?6 O6 B* U% |
Oct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'
2 s& ~" q- f& u: `- {: z* MOct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'
0 G/ m( u G- ~' [2 Z$ {1 T ^Oct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'
' N2 \ c$ H2 v) a F& C( O( \) Z1 rOct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'+ O* k+ k* E& p
Oct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'( x7 T8 o ^. [/ |- `- Q' n
You have mail in /var/spool/mail/root4 k5 z6 B2 x; h) h
O4 |/ C3 B7 l2 {
7 }! C$ g5 p9 I/ ?- {, `+ C2 s# Z
二、 脚本生成所有登录用户的操作历史需求:记录登陆后的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
( Y4 p) I r8 k1 q
* b( j8 {' @4 z2 r. K( f2 R o3 x
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、生效环境变量
( x9 M( _% w& k7 @1 V' ? 4 n% n% a o/ h6 E: T- R, E* J( z
|