Centos7监控-谁动了我的服务器

简介:

说到系统目前最为流行的操作系统有很多:windows、linux、unix、ibm的专属操作系统等。同样在对应系统上运行的服务的安全性来说也相当重要,一般企业对linux上运行的服务会设置不同用户的操作权限,这样也能降低服务的风险,如果要对你用户在服务器上的操作做log查询也可以,可以使用系统再带的history进行操作记录查询,当然这个也是有一个局限性的,为什么这么说,因为通过history只能查看到用户在某个时间通过vim命令编辑过某个文件,对于编辑的文件内容确看不到,那有没有什么办法可以看见呢,答案是一定的,具体怎么实现呢?在这个时候我们就可以借助脚本来实现对用户的登陆及操作做记录操作,这样就当用户登陆及对服务的操作过程全部做一个监控,就类似现在的监控录像一样,当然脚本最后也会通过一定的设置来对登陆的用户进行强制断开,保证服务的安全性。具体操作见下:今天我们使用的是centos7来完成测试的,此次演示的过程中忽略的了centos7的安装步骤。

首先运行该命令

1
Vim /etc/profile

然后添加以下脚本内容

1
2
3
4
5
6
7
8
9
USER_IP=$(who -u am i 2>/dev/null| awk  '{print $NF}' |sed -e  's/[()]//g' )
log_dir=/var/ log /.hist
if  [ -z  "$USER_IP"  ]; then
USER_IP= "localhost"
Fi
currentdir= "$log_dir/$(whoami)_$USER_IP_$(date +%Y-%m-%d_%Hh%Mm%Ss)"
mkdir -p $currentdir
script -q -t 2>$currentdir/timing. log  -a $currentdir/output.session
"/etc/profile"  86L, 2060C

clip_image002

1
cd /var/ log /

进入var/log指定目录

1
mkdir .hist

创建目录.hist

1
chmod 777 .hist

赋予最大权限

1
cd /var/ log /.hist/

进入日志目录

ls 查看目录文件

1
cd root_2015-06-08_11h00m59sxxxxxxx

生成的日志文件目录

进入日志目录后运行ls此时会多出两个文件

1
timing. log  output.session

运行脚本查看操作内容

1
scriptreplay timing. log  output.session

注以上操作需要用户操作完后通过exit退出后才会生成log,所以我们还需要对用户的登陆进行控制,通过任务计划对登陆的用户进行强制断开

1
2
3
4
5
6
7
8
Yum install -y git
Cd myscripts/
Ls
rm -rf update
Make ttyecho
Yum install gcc,gcc-c++
Cp ttyecho /sbin/
Cd myscript/
1
Vim kinallon.sh

添加以下代码

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
while  :
allconn=$(w | awk  '{print $2}'  |sed  '1,2d' )
do
if  [ -z  "$allconn"  ]; then
break
fi
for  conn in $allconn
do
ttyecho -n /dev/$conn  exit
done
done

clip_image003

1
2
Chmod +x kinallon.shconn.sh
Cat kinallon.sh

clip_image005

1
Vim /usr/sbin/kinalloconal.sh

添加的代码跟上面一样

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
while  :
allconn=$(w | grep output | awk  '{print $2}' )
do
if  [ -z  "$allconn"  ]; then
break
fi
for  conn in $allconn
do
/usr/sbin/ttyecho -n /dev/$conn  exit
done
done

clip_image007

如果要断开用户其实按照下面脚本

1
Vim /etc/sbin/kiikcon.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash
while  :
allconn=$(w | grep output | awk  '{print $2}' )
do
if  [ -z  "$allconn"  ]; then
break
fi
for  conn in $allconn
do
/usr/sbin/ttyecho -n /dev/$conn  exit
done
done
while  :
do
allusrconn=$(w | awk  '{print $2}'  | sed  '1, 2d' )
if  [ -z  "$allusrconn"  ]; then
break
fi
for  usr in $allusrconn
do
/usr/sbin/ttyecho -n /dev/$usr  exit
done
done

clip_image009

1
2
Cp killnnn.sh /user/sbin
Crontab -e

15:05执行一次

clip_image005[1]

1
Crontal -l

查看任务计划

clip_image011

等任务计划执行后,用户的ssh登陆及本地回话都会终端,我们再次登陆后可以查看log;

查看log需要我们进入

1
  cd /var/ log /.hist/

然后cd root_2015….xxx.xxx.x.x日期的log目录

clip_image013

clip_image014

1
criptreplay timing. log  output.session

这样就回放用户的操作整个过程了。所以使用起来还是比较方便的

最后我们再说说任务计划

clip_image016

任务执行时间的格式为:分 时 日 月 周;所以我们可以定义为以下格式

1
*/5 * * * * /usr/sbin/killallconn.sh >/root/kill. log  2>&1

每5分钟运行一次(取值范围0-59)

1
0 */1 * * * /usr/sbin/killallconn.sh >/root/kill. log  2>&1

每1小时运行一次(取值范围1-23)

1
0 0 */1 * * /usr/sbin/killallconn.sh >/root/kill. log  2>&1

每1天运行一次(取值范围1-31)

1
0 0 0 */1 * /usr/sbin/killallconn.sh >/root/kill. log  2>&1

每一个月运行一次(取值范围1-12)

1
0 0 0 0 */1 /usr/sbin/killallconn.sh >/root/kill. log  2>&1

每一周运行一次(取值范围0-6)

clip_image018



本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1660850,如需转载请自行联系原作者

相关文章
|
1月前
|
NoSQL Linux Redis
在 centos7 下重启/开启 redis 服务器
本文提供了一种在Centos 7操作系统下如何重启Redis服务器的步骤,包括停止Redis服务、确认停止成功以及重新启动Redis服务。
89 2
在 centos7 下重启/开启 redis 服务器
|
25天前
|
存储 网络协议 Linux
AWS实操-EC2-创建购买linux(centos)EC2服务器
AWS实操-EC2-创建购买linux(centos)EC2服务器
|
26天前
|
弹性计算 关系型数据库 MySQL
CentOS 7.x操作系统的ECS云服务器上搭建WordPress网站
CentOS 7.x操作系统的ECS云服务器上搭建WordPress网站
|
1月前
|
Linux 数据安全/隐私保护 Windows
centos 7.2 搭建svn服务器
centos 7.2 搭建svn服务器
49 0
|
1月前
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
100 64
|
1月前
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
110 61
|
1天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
|
2天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。
|
25天前
|
Linux 网络安全 数据安全/隐私保护
Linux系统之Centos7安装cockpit图形管理界面
【10月更文挑战第12天】Linux系统之Centos7安装cockpit图形管理界面
53 1
Linux系统之Centos7安装cockpit图形管理界面
下一篇
无影云桌面