马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
liux登录日志 环境配置,实现监控所有登录用户的操作历史
- d, A: ]7 V a0 B# t! C4 x* N, d/ g
% x8 f: U$ g7 n8 T6 T) x
作为系统管理员,不可能实时去盯着谁登陆了系统,做了一些什么操作,下面主要通过一个脚本来生成所有登录用户的操作历史,从而更好的管理linux系统,看是不是有一些违规操作。: t, R" f2 Y5 Q% D) I
) s$ ~7 S8 N0 a- V+ q一、查看日志文件9 R1 X' ~2 `, B4 d
1、查看/var/log/wtmp文件看是否有可以IP地址登录5 [3 ^2 q8 C l+ g. F# N
! A' X3 T4 v: j[root@it-elassearch tmp]# last -f /var/log/wtmp
' s" W- F6 u/ m& [2 l Wdevops pts/0 172.24.21.7 Wed Oct 23 15:06 still logged in 7 g; _3 a s; j
devops pts/0 172.24.21.7 Wed Oct 9 13:59 - 16:33 (02:33) - C! P# ^; H- w' }, ^
devops pts/0 172.24.21.7 Wed Oct 9 10:15 - 11:40 (01:24)
% G. q; y7 T; Q# ~4 k) w+ m$ Kdevops pts/0 172.24.21.7 Tue Sep 17 10:09 - 10:44 (00:34) ( j. k% i3 b& R) R
devops pts/0 172.24.21.7 Tue Sep 3 11:00 - 11:01 (00:00) Y% w) I4 }3 _' v/ A
reboot system boot 3.10.0-1160.24.1 Mon Jul 8 18:54 - 15:42 (106+20:48) ! c( U# V2 ]' _' S5 w
devops pts/0 172.24.21.6 Mon Jul 8 18:53 - 18:53 (00:00)
* i, T& ]) o+ T5 y7 T3 K3 ~devops pts/1 172.24.21.6 Mon Jul 8 17:05 - 17:10 (00:04) # U) _6 Y& Z8 b- P
devops pts/0 172.24.21.6 Mon Jul 8 16:24 - 18:14 (01:50) . X. L5 Y/ s/ c; @3 K& w
root tty1 Mon Jun 11 18:31 - 10:17 (15:45) 8 [6 \1 K9 w! z7 j$ m3 r
reboot system boot 3.10.0-693.el7.x Mon Jun 11 18:31 - 10:44 (16:13)
+ ^- O( j5 x' O( yreboot system boot 3.10.0-693.el7.x Mon Jun 11 18:30 - 10:44 (16:14) 8 n/ x" G) I0 G
reboot system boot 3.10.0-693.el7.x Mon Jun 11 18:21 - 10:44 (16:23) / q: o. }# V- ^
6 \8 N# z+ B3 Y
wtmp begins Mon Jun 11 18:21:20 20187 Y0 X( n# z1 f% g
9 F n8 E6 T( M0 M1 \, F
( @( l6 V( [/ X C+ M2 P2 c3 y$ @# \7 o
9 h6 p% Q4 P' Q该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,
% B- R( t% X1 R+ O6 W0 J' H% q+ q# t9 b$ ~2 f$ D
增加的速度取决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录,3 m. h% B/ U+ V4 A
9 `/ r( o) o' }8 A: L
last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端tty或时间显示相应的记录。
* A; w x" u: m' N
: N8 e7 r0 j# g. w, d$ F: V4 C1 U# J4 F4 m' J6 L, U6 D& p
6 { l0 i* d- P6 J2 H
2、查看/var/log/secure文件寻找可疑IP登陆次数
& H; a: A0 D, F; R3 {+ S" i7 s
6 Z! V3 r b5 U, m" o) \cat /var/log/secure
8 N7 D$ f! G/ v* x, u& z* F) [7 U
% m' }8 x* S. V: ^
2 k5 l% n8 A' w* W) H( c
' u( O/ H8 Y" V8 SOct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'
, E8 I. k; n$ X5 mOct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'
3 f% `" K, T7 S0 O% [Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'1 c3 \- A- \; X) q$ v8 ?# Z
Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'8 P I c% E# W. ?; ~4 A
Oct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'( ^# }5 ]* T$ u% c3 C; a# d; M6 n
Oct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'
0 k' V! e5 a$ K2 C/ [5 G! w( COct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'
( o/ P! u8 L3 f; POct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'
$ E" j7 ^+ Y9 Q( wOct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'7 i9 B2 d+ c! U' B) A q! N! F
Oct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'
- p4 A/ c$ E/ S5 D1 z4 h5 D9 nOct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'
0 s3 b, _5 P; ]& \. ]Oct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'
0 v7 R( j3 T$ ]! R! x! F1 vYou have mail in /var/spool/mail/root
3 v; o; _& i2 w* B6 l1 `% Z. I
& D p4 k5 j4 {
/ `2 }0 K7 R! A9 n5 Q9 x9 t8 e3 z( d二、 脚本生成所有登录用户的操作历史需求:记录登陆后的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 * H) o$ |- X* _- R4 S
~1 Q3 u# l6 ]* ]
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、生效环境变量
' r( E. i5 D7 d2 F( f% ^7 G
( C- y% D. B+ b |