易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 38|回复: 2
收起左侧

liux登录日志 环境配置,实现监控所有登录用户的操作历史

[复制链接]
发表于 2024-10-23 15:56:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

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
 楼主| 发表于 2024-10-23 17:32:01 | 显示全部楼层
二、 脚本生成所有登录用户的操作历史
6 d! p7 Q: B- E$ ]
" k6 d% W$ U& p5 ]! @1 X% P1 b+ x# y在linux系统的环境下,不管是root用户还是其它的用户只有登陆系统后用进入操作我们都可以通过命令history来查看历史记录,可是假如一台服务器多人登陆,一天因为某人误操作了删除了重要的数据。这时候通过查看历史记录(命令:history)是没有什么意义了(因为history只针对登录用户下执行有效,即使root用户也无法得到其它用户histotry历史)。那有没有什么办法实现通过记录登陆后的IP地址和某用户名所操作的历史记录呢?答案:有的。- Q  w% p% f8 I# o8 S) Z3 ~' r' Z
! T/ h  w0 _! g! D  f2 p
通过在/etc/profile里面加入以下代码就可以实现:
" U5 ?& \: ^- e8 L8 e
- y5 {* x. E/ v" k6 KPS1="`whoami`@`hostname`:"'[$PWD]'* I$ z2 G, C* K4 c
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
# N) p: }5 s) uif [ "$USER_IP" = "" ]) l' i# m7 v$ J1 l
then( q( [# d# ^0 n. \1 `
USER_IP=`hostname`$ D5 c# Q( j( }. d  h$ P; |
fi- k; e' m  `% }" W$ z0 ?
if [ ! -d /tmp/dbasky ]
! E* m: d9 H! [( Lthen/ Y- m! p8 H, {) k1 P1 I% k
mkdir /tmp/dbasky1 h/ f; d5 S0 Z% G2 ?- b" a
chmod 777 /tmp/dbasky
4 l- }  J! ]6 i/ Ffi
# O6 e) D6 @* q& z7 _3 U1 Jif [ ! -d /tmp/dbasky/${LOGNAME} ]" e7 l3 i, }1 _, g7 ^# X# a' x
then
" Q6 A1 p1 q! n: @# j; _! y1 Kmkdir /tmp/dbasky/${LOGNAME}! D7 H3 i  R! H4 F! n# t+ Z
chmod 300 /tmp/dbasky/${LOGNAME}, l6 }$ \3 G. {( v1 {: `+ t
fi
- k2 K0 q' F7 h9 i+ d3 d" F) _& fexport HISTSIZE=40968 Y2 v# b( B5 [6 K0 l
DT=`date "+%Y-%m-%d_%H:%M:%S"`
( C$ Q2 _+ O7 Wexport HISTFILE="/tmp/dbasky/${LOGNAME}/${USER_IP}-dbasky.$DT"
" y! @1 T8 o5 i" d! m, }5 Mchmod 600 /tmp/dbasky/${LOGNAME}/*dbasky* 2>/dev/null. z- F( L7 y3 a# t

5 J/ T) {# S: f. B$ a, |6 ]——————————————————————————————————————————————————————————————————————
: k  k: f- l: Y( K$ k& z4 |; w
3 q) W) p' x/ ]  Z6 E! g ' y6 I1 Q: |; b% @' c- c% ?3 `4 O
" v6 {  E' M' k( q
source /etc/profile 使用脚本生效* K+ ?2 ]9 k, y, y

1 M& N' S- `& x! F( Z退出用户,重新登录; n9 x; z  O/ r( Q- l7 u. P
7 ^! J. x: E+ [1 a
?面脚本在系统的/tmp新建个dbasky目录,记录所有登陆过系统的用户和IP地址(文件名),每当用户登录/退出会创建相应的文件,该文件保存这段用户登录时期内操作历史,可以用这个方法来监测系统的安全性。4 P) L. Z5 C" h. y) h  k
9 N" Y* K) P' y
    root@zsc6:[/tmp/dbasky/root]ls
7 h9 s( {' ]& u6 c- `+ f    10.1.80.47 dbasky.2013-10-24_12:53:08
$ x2 @2 N! G! a- y% r    root@zsc6:[/tmp/dbasky/root]cat 10.1.80.47 dbasky.2013-10-24_12:53:08
 楼主| 发表于 2024-10-24 09:38:02 | 显示全部楼层
使用source /etc/profile 生效。  L9 K5 m& q8 e$ F0 Q
$ s, ], l+ V: S0 p  u+ o# W
但有个问题就是每次登录的时候历史命令只有五个了。或者被清空了。
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 点击这里给我发消息

GMT+8, 2026-4-8 07:26 , Processed in 0.043860 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

快速回复 返回顶部 返回列表