马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
liux登录日志 环境配置,实现监控所有登录用户的操作历史( q R* e& d1 L. _8 R1 G' K
) z, B' N/ Y Z) G( I
. G: Q9 h' k8 Q+ U+ n7 F
作为系统管理员,不可能实时去盯着谁登陆了系统,做了一些什么操作,下面主要通过一个脚本来生成所有登录用户的操作历史,从而更好的管理linux系统,看是不是有一些违规操作。
- e. V! u( ~8 f0 C+ l) x& \$ \/ x& D9 P1 R
一、查看日志文件: E3 e* V: y+ N0 `1 o2 _; r
1、查看/var/log/wtmp文件看是否有可以IP地址登录: }3 s/ A2 b& n
" e( X G$ k7 O" p7 g% m3 a5 Q6 U[root@it-elassearch tmp]# last -f /var/log/wtmp - t9 {4 ]7 [8 W) v G9 A
devops pts/0 172.24.21.7 Wed Oct 23 15:06 still logged in
* }$ E4 d$ r- a2 O3 ~2 C* Ddevops pts/0 172.24.21.7 Wed Oct 9 13:59 - 16:33 (02:33)
' N+ q+ G5 x9 T' h1 Wdevops pts/0 172.24.21.7 Wed Oct 9 10:15 - 11:40 (01:24) ' c2 \/ k6 w- u$ }! ?
devops pts/0 172.24.21.7 Tue Sep 17 10:09 - 10:44 (00:34) ; A% Y' k) ~. G* |) K+ Y
devops pts/0 172.24.21.7 Tue Sep 3 11:00 - 11:01 (00:00) * ?4 ?# a8 M1 [% ?+ h
reboot system boot 3.10.0-1160.24.1 Mon Jul 8 18:54 - 15:42 (106+20:48) ! D f- l; t% \
devops pts/0 172.24.21.6 Mon Jul 8 18:53 - 18:53 (00:00)
& M- `& f. O) p9 _; A4 Ndevops pts/1 172.24.21.6 Mon Jul 8 17:05 - 17:10 (00:04) ) D7 a" [0 ~- n4 x, e8 i
devops pts/0 172.24.21.6 Mon Jul 8 16:24 - 18:14 (01:50) 1 O$ y# h/ Q" T+ x0 v6 W
root tty1 Mon Jun 11 18:31 - 10:17 (15:45)
0 \/ k& C5 f- Y3 x9 @reboot system boot 3.10.0-693.el7.x Mon Jun 11 18:31 - 10:44 (16:13) * O/ g& [) Z6 B3 x+ z
reboot system boot 3.10.0-693.el7.x Mon Jun 11 18:30 - 10:44 (16:14) * A% F$ L" T/ t& l$ Y# ?
reboot system boot 3.10.0-693.el7.x Mon Jun 11 18:21 - 10:44 (16:23)
* `3 E2 K! T) A$ L% N" R" z. A/ J! a$ Q5 J6 p5 F( ?
wtmp begins Mon Jun 11 18:21:20 20183 ~# R, f: A4 A o) X; h5 h
/ A' h" i9 i/ p* h9 o# D( t. i% s$ A- R# |9 I/ S/ ]$ C( ?$ J; Y
$ s5 _& X. G) f3 g; ^2 c2 B
0 a' M1 c6 F1 h该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,& ?6 d1 G- Q' ~/ x
) Z; Z/ ]& X) [& s增加的速度取决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录,6 P6 {% g* t. p
. G) C* c( s- z% r% Q; x( A% s& ~
last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端tty或时间显示相应的记录。
8 E( X& d7 s; O% C& d
$ A8 G, T- T2 S1 L7 J( S1 |
( z6 M+ ?+ X( \2 O
6 y1 S* n" `, A( o 2、查看/var/log/secure文件寻找可疑IP登陆次数$ H$ t6 I G8 [+ z
! r) l& k4 i9 \+ \cat /var/log/secure3 F1 v" s4 L3 e, o, {
: m# X3 q$ ^& \
7 U* i; R7 q* F* z' F* }, Y* I+ L
: g; x R. C& I# g9 U5 z" YOct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'9 R0 f* g9 S9 H% W& Q8 x1 C
Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'0 n4 b- F! H8 m" _4 W r/ j
Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'
; i2 k W2 i6 w+ }0 [0 e) |Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'2 j1 T) |0 Y- M) S( r+ h( Z- n
Oct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'! u1 F8 g9 u3 R- Z( @) W' E) I
Oct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'
. n6 @2 j7 D0 A" @4 @4 [& TOct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'
8 e; s$ c: E) w; h1 mOct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'8 o2 U8 m& z K9 i
Oct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'
; @/ l1 I) F) GOct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'
% c: \! M4 I7 i8 ^: w4 R W8 p/ pOct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'
& V7 C+ @* u! _$ g' U- R2 o9 zOct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc') N! q$ H: h5 g a
You have mail in /var/spool/mail/root
- t' T5 q3 ^& T: B( _: Q4 |$ V# T0 v
$ z3 p( B' U. c. O6 k二、 脚本生成所有登录用户的操作历史需求:记录登陆后的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 D: T6 C& [& y' B( U# m9 L& u
0 G2 B" L/ i0 L& R- q4 t( E% O
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、生效环境变量 5 L/ b; D( `5 K m+ w
$ n8 a$ B; \2 u/ P |