马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
liux登录日志 环境配置,实现监控所有登录用户的操作历史5 {1 g/ F/ `3 J8 D- ~
9 }; R. P- \# A1 R9 j
! O& m6 t! O/ i4 {+ C) u9 R
作为系统管理员,不可能实时去盯着谁登陆了系统,做了一些什么操作,下面主要通过一个脚本来生成所有登录用户的操作历史,从而更好的管理linux系统,看是不是有一些违规操作。7 Q: z; l3 e8 Y8 ]& ~+ I' t
) p3 t- O: v2 `7 C一、查看日志文件
' y& q: `; F8 b1 C$ b 1、查看/var/log/wtmp文件看是否有可以IP地址登录
- @9 D2 c, u+ j$ i9 G1 A# ?( Q. f# n, i' Y, c5 n" E
[root@it-elassearch tmp]# last -f /var/log/wtmp
; u4 s! s$ v, v) qdevops pts/0 172.24.21.7 Wed Oct 23 15:06 still logged in
1 n$ M" m2 D& `# S$ P2 P9 C4 edevops pts/0 172.24.21.7 Wed Oct 9 13:59 - 16:33 (02:33) ; @( l( r, Z; Z- y' a' U
devops pts/0 172.24.21.7 Wed Oct 9 10:15 - 11:40 (01:24) C* R7 H% k- ]4 D
devops pts/0 172.24.21.7 Tue Sep 17 10:09 - 10:44 (00:34)
. Z5 I2 b* {! N" M3 ndevops pts/0 172.24.21.7 Tue Sep 3 11:00 - 11:01 (00:00) 7 [- o8 d2 ]) m& J, w
reboot system boot 3.10.0-1160.24.1 Mon Jul 8 18:54 - 15:42 (106+20:48)
5 }+ k' m$ e) S6 N; z$ ^' v' Cdevops pts/0 172.24.21.6 Mon Jul 8 18:53 - 18:53 (00:00)
+ Z) [8 l& r: ^# s4 X3 v) Y( Udevops pts/1 172.24.21.6 Mon Jul 8 17:05 - 17:10 (00:04)
, C# l, v# W7 D5 Vdevops pts/0 172.24.21.6 Mon Jul 8 16:24 - 18:14 (01:50)
' a" H( m. T( u3 Broot tty1 Mon Jun 11 18:31 - 10:17 (15:45) 0 R) i4 _( }8 p
reboot system boot 3.10.0-693.el7.x Mon Jun 11 18:31 - 10:44 (16:13)
5 k3 n, W2 P5 A2 `5 H3 ?& xreboot system boot 3.10.0-693.el7.x Mon Jun 11 18:30 - 10:44 (16:14) 8 _# n a) }5 F6 x7 x6 R
reboot system boot 3.10.0-693.el7.x Mon Jun 11 18:21 - 10:44 (16:23) ; e5 B' D8 I1 }9 ~
\# B" E8 i0 U+ p" g6 ^% l* D
wtmp begins Mon Jun 11 18:21:20 2018
' `, o, R& H# S5 j% r5 e- O( M5 E! t8 M$ o4 t3 V
2 i8 p3 k. }& U" c" Z. R _ O
/ b. O! r2 G+ @2 ~# O: _* f7 J/ l+ a% G) O$ c! |/ |, W+ L, n6 S* n
该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,& k3 k5 M+ Z( R: W0 y
4 A% b! s( X8 z增加的速度取决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录,
: M0 R/ f1 Z& E/ S" A! c% i3 {1 `7 l# S- |
last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端tty或时间显示相应的记录。
, J( r: [) j& G9 x5 i7 H+ \5 O$ g6 i% v% f' U9 t4 d% G+ L1 }' ^
- A- J: w8 Q3 j0 U0 s5 k
$ [8 v- p% |# h- Y7 Z* g8 r- c/ q
2、查看/var/log/secure文件寻找可疑IP登陆次数
, f3 K# l b. r/ H8 S' Q" h% @4 z; Y% Y
cat /var/log/secure6 }; u3 b% Y& A& q+ o9 Y
4 Q( n- O, `8 i0 S" i* S
; v. A9 l- }) N) ]4 a: a3 {3 I$ N& ?$ X2 r
Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'/ V5 E2 f, f2 L' r6 e7 n5 Z
Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'
& c9 C: r; G; K0 n o: F' O! K; n. ROct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'! o3 o7 ~" u+ g5 G9 b
Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'
" A7 |* y2 { mOct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'
% m, P+ }+ B& [0 iOct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'* s% {3 r. H! B. | r& b! R
Oct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'
) t1 t. z$ R! B1 `4 m+ cOct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'- ~7 T. I) N, J
Oct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'1 g& F* o ]8 ?0 y. ]/ k
Oct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'3 d9 P7 V% a j4 S. Y/ F
Oct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'
! P" I$ N& p2 U" m- Y9 fOct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'
# J/ ?8 H e- }" u) b2 P2 B8 RYou have mail in /var/spool/mail/root
H- K; g% X' {& @% f2 t, Q6 E9 W: U3 f8 t7 r: h5 m5 ]9 T0 y) Q; E
4 Y! x* q5 Y3 d3 u! `
二、 脚本生成所有登录用户的操作历史需求:记录登陆后的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
7 }' [+ g$ s5 ^& }
+ J" O0 Q) c" v2 G' j
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、生效环境变量
! C3 M4 d& }% u
/ G' c: k! m6 I: g( P' h3 f$ J |