马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
liux登录日志 环境配置,实现监控所有登录用户的操作历史8 C; {) d' g6 [, g9 i
5 E" W5 ]4 ]0 y
5 D2 M1 ^4 W4 r1 ^作为系统管理员,不可能实时去盯着谁登陆了系统,做了一些什么操作,下面主要通过一个脚本来生成所有登录用户的操作历史,从而更好的管理linux系统,看是不是有一些违规操作。0 {4 {; g! D9 L( y
2 u$ r# j2 s5 X- Q. f; ]
一、查看日志文件% j5 _1 t w8 n2 I
1、查看/var/log/wtmp文件看是否有可以IP地址登录5 a9 U' _8 B( ^" b/ @8 M
$ S6 n/ M& z- _ j$ Z8 ?[root@it-elassearch tmp]# last -f /var/log/wtmp 0 ?8 j+ X- f+ |' `7 q4 c
devops pts/0 172.24.21.7 Wed Oct 23 15:06 still logged in
) u9 s* [( @' `# [* ddevops pts/0 172.24.21.7 Wed Oct 9 13:59 - 16:33 (02:33) ; d u7 Z2 r; q1 a5 o
devops pts/0 172.24.21.7 Wed Oct 9 10:15 - 11:40 (01:24) ; a* V' _0 B- S0 T+ m6 Z
devops pts/0 172.24.21.7 Tue Sep 17 10:09 - 10:44 (00:34) # S, Q; l6 ]7 s$ W1 d! h3 t7 X
devops pts/0 172.24.21.7 Tue Sep 3 11:00 - 11:01 (00:00)
- P9 t" k5 T2 W# treboot system boot 3.10.0-1160.24.1 Mon Jul 8 18:54 - 15:42 (106+20:48) - w* A$ e$ h0 ?
devops pts/0 172.24.21.6 Mon Jul 8 18:53 - 18:53 (00:00)
8 |1 F5 ?" a+ l; y2 edevops pts/1 172.24.21.6 Mon Jul 8 17:05 - 17:10 (00:04) 3 \6 F8 |2 _* B4 t7 }
devops pts/0 172.24.21.6 Mon Jul 8 16:24 - 18:14 (01:50) % {% a8 }% `" I' ^
root tty1 Mon Jun 11 18:31 - 10:17 (15:45)
6 [6 t! K9 D3 J( ^reboot system boot 3.10.0-693.el7.x Mon Jun 11 18:31 - 10:44 (16:13) + e& M0 t- r& Q) l. K. x
reboot system boot 3.10.0-693.el7.x Mon Jun 11 18:30 - 10:44 (16:14) 3 @& k0 N5 w+ c! R* A2 s
reboot system boot 3.10.0-693.el7.x Mon Jun 11 18:21 - 10:44 (16:23)
; l9 t2 m; ~& J0 K
4 g8 i9 W" z- i% A u' Lwtmp begins Mon Jun 11 18:21:20 2018
, H& I: x0 m* f+ l' Q' _8 u! q! @( Q- J D& Q' _( {4 e: r
' l! ?+ [2 \/ f/ l3 A. q
( b8 v4 ?( l i ~: ^
" U. E. s: z& u3 z" p/ O该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,
( \0 H4 V2 |& v* t; F4 B+ j0 H1 L3 t P. h2 L8 K9 w3 ?1 f
增加的速度取决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录,
- U; z9 e4 V9 \2 _) L" H) Z4 U% \; ?7 p4 E
last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端tty或时间显示相应的记录。
1 E0 j: G* p- F& p: e' `/ ?" G9 w6 I/ S" S! c$ G
3 q# F" K+ F) J. H5 p( m0 R8 ]
6 E1 s: l# n( N$ I- j 2、查看/var/log/secure文件寻找可疑IP登陆次数
1 Z' A2 J3 q) ~; f
2 d: h; e8 }: {3 Z+ f1 zcat /var/log/secure
! Q5 t# J3 ]* _
& `+ k& R4 ^! `( Q$ `1 ] U" N, t. E
5 m8 F1 V6 Y/ l$ b6 Q, w% U- a. Z( ]6 I5 C5 F% O( [4 M
Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'8 e* T$ P2 M" `$ b! Z5 m0 u! ~
Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'
7 a. e- T) {0 r' p. S% gOct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'( I% C# H; b3 D; o8 r# t- j7 q7 d, h
Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'% ~" j+ x/ Z2 P( H$ J. N; H2 g
Oct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'" M Z/ e6 L; A; x( @- {
Oct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'7 K' Y" ^1 o- _6 [$ l+ @5 m9 x
Oct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'# A) a6 R) r$ F0 y5 h, P- b
Oct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'
; O6 C K$ \3 ? O' n6 TOct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'
) X5 U+ c8 Z t0 h% ]Oct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'& Z* G8 i4 B0 j5 {/ c
Oct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'
# i. m) l! `5 [% Z* G6 _Oct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'
2 p; j$ [6 C! U9 L: W$ bYou have mail in /var/spool/mail/root
: {2 g! ~) O9 m9 g! P! Z9 c
4 o* p! k: l) E' v
$ y3 `7 ~* E' q7 W二、 脚本生成所有登录用户的操作历史需求:记录登陆后的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 0 C! m R. s8 d: P
5 `+ P) \$ T9 F! F( h5 L& v+ ~
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" _4 a' m: m( T3 m& l2 s
; D; ` x' u5 U; W6 Z3 Q+ a( Y |