liux登录日志 环境配置,实现监控所有登录用户的操作历史) p e' V( u7 Q" Q/ G! p1 b
$ \! b8 I5 d# [
9 W ]' [" h W4 g A9 M
作为系统管理员,不可能实时去盯着谁登陆了系统,做了一些什么操作,下面主要通过一个脚本来生成所有登录用户的操作历史,从而更好的管理linux系统,看是不是有一些违规操作。1 p( _: g1 j- K" r+ L; |% _! b
8 r9 Q7 F0 x" p+ l7 F6 b9 R一、查看日志文件
g& b/ q/ U; S) o" O 1、查看/var/log/wtmp文件看是否有可以IP地址登录4 K- r q& p9 K6 l3 C
m, b X+ H t- a9 [
[root@it-elassearch tmp]# last -f /var/log/wtmp . O7 f) v- H; l* n. l
devops pts/0 172.24.21.7 Wed Oct 23 15:06 still logged in
+ k7 h' g5 h L; F! S. Qdevops pts/0 172.24.21.7 Wed Oct 9 13:59 - 16:33 (02:33)
# ^& _% p3 f) d6 h4 i- Odevops pts/0 172.24.21.7 Wed Oct 9 10:15 - 11:40 (01:24) 3 L8 J" ~( O1 O9 L; T/ M6 X
devops pts/0 172.24.21.7 Tue Sep 17 10:09 - 10:44 (00:34)
4 j3 c7 b7 t% r' u! J8 V+ rdevops pts/0 172.24.21.7 Tue Sep 3 11:00 - 11:01 (00:00)
1 t8 g6 d4 g4 P1 h$ l# Kreboot system boot 3.10.0-1160.24.1 Mon Jul 8 18:54 - 15:42 (106+20:48)
* A) a+ O) V+ h( J7 ]. P1 T7 Cdevops pts/0 172.24.21.6 Mon Jul 8 18:53 - 18:53 (00:00) " M0 v' H% ^3 d5 Y2 v" \, n9 E
devops pts/1 172.24.21.6 Mon Jul 8 17:05 - 17:10 (00:04)
& @2 X0 w2 u F4 t( G$ Cdevops pts/0 172.24.21.6 Mon Jul 8 16:24 - 18:14 (01:50) % q0 f7 h4 _% q, T
root tty1 Mon Jun 11 18:31 - 10:17 (15:45)
- g e* Y/ s1 H# y/ a Preboot system boot 3.10.0-693.el7.x Mon Jun 11 18:31 - 10:44 (16:13)
* n5 L4 A7 L/ Y- D! x& k. U, I1 Zreboot system boot 3.10.0-693.el7.x Mon Jun 11 18:30 - 10:44 (16:14) : i6 y3 v2 a9 A5 {: Q
reboot system boot 3.10.0-693.el7.x Mon Jun 11 18:21 - 10:44 (16:23)
; Z4 j# _/ V- K. w7 c& |& X. |
4 S' |/ L) b p" e4 \ Twtmp begins Mon Jun 11 18:21:20 2018
$ K" N- t6 w4 s) M+ `9 {6 {! h/ d5 B6 J; w, l& ]: F+ \- V
9 p- D# c* v2 i' k4 `+ O5 ]5 E( Y* t; R! t D
1 G1 J" l3 I: q) ?/ ~* J3 q, V该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,
9 z* n' U" C7 E2 B# a0 `: R7 @ }7 P
增加的速度取决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录,5 m9 `0 g) P% j/ M4 P
1 J' ~" P, I# p, J: O$ o
last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端tty或时间显示相应的记录。
; G! Q y- ~- f. f- C+ `$ o- w9 L: P
& t/ L0 a) e% c- q3 J
! e, _3 i) ]* a. ~5 I) o( X+ ~ 2、查看/var/log/secure文件寻找可疑IP登陆次数
; n" d' i( g G7 N1 X
! R$ i+ E Q" F) V wcat /var/log/secure
4 f7 {: g6 ^9 G2 H& g% Y) |. V" }/ X
+ I4 w% {5 e( i% ^$ T
' ^ W5 H7 j( X6 c! H0 k' DOct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc': ?' g9 N6 d% o& b
Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'
% L3 R. O8 \6 e F# z qOct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc', B/ }, L( r$ f6 G! T0 z
Oct 23 15:42:01 it-elassearch crond[19394]: pam_limits(crond:session): unknown limit item 'noproc'+ A. b4 R3 y3 F c+ V
Oct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'& a# C$ H% ]: D! }) f
Oct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'
4 [ ]: f# u( e ` {' ^$ d4 tOct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'
& F8 c- y9 ~! ZOct 23 15:43:01 it-elassearch crond[19404]: pam_limits(crond:session): unknown limit item 'noproc'* N- V1 t5 b+ \1 D5 K; F* L8 [9 B
Oct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'
; r) R6 ~) ~. u3 i/ ~! SOct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc'2 h. Q ^: o% Y- G9 p
Oct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc': @4 Y/ |% M4 @1 N
Oct 23 15:44:01 it-elassearch crond[19412]: pam_limits(crond:session): unknown limit item 'noproc' K9 c# Z; n3 }$ O' F- n v. G
You have mail in /var/spool/mail/root! h8 ^, k% N/ R5 T/ M' a
$ a9 v& Q& a9 _4 |9 B
+ O% T0 P% T+ G l. y5 }# K$ 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 9 D ~6 W+ d2 n/ N$ |3 N
' G5 P' p# ?' _, h( ]3 A
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、生效环境变量
' _$ M- J/ K0 N
0 S3 c, w% H# Y5 I$ ]$ H6 u7 _ |