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

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

首先运行该命令

Vim /etc/profile

然后添加以下脚本内容

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

cd /var/log/

进入var/log指定目录

mkdir .hist

创建目录.hist

chmod 777 .hist

赋予最大权限

cd /var/log/.hist/

进入日志目录

ls 查看目录文件

cd root_2015-06-08_11h00m59sxxxxxxx

生成的日志文件目录

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

timing.log output.session

运行脚本查看操作内容

scriptreplay timing.log output.session

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

Yum install -y git
Cd myscripts/
Ls
rm -rf update
Make ttyecho
Yum install gcc,gcc-c++
Cp ttyecho /sbin/
Cd myscript/
Vim kinallon.sh

添加以下代码

#!/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

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

Vim /usr/sbin/kinalloconal.sh

添加的代码跟上面一样

#!/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

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

Vim /etc/sbin/kiikcon.sh
#!/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

Cp killnnn.sh /user/sbin
Crontab -e

15:05执行一次

Crontal -l

查看任务计划

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

查看log需要我们进入

 cd /var/log/.hist/

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

criptreplay timing.log output.session

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

最后我们再说说任务计划

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

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

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

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

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

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

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

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

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

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

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

时间: 2024-08-05 07:08:58

Centos7监控-谁动了我的服务器的相关文章

实时监控Linux服务器用户操作命令

在/etc/profile 追加 export HISTORY_FILE=/var/log/history/userhistory.log readonly PROMPT_COMMAND='{ date "+%y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$NF}")  #### $(id|awk "{print \$1}") #### $(his

Cacti监控Tomcat服务器实现过程

1 首先去官网上面下载通用的监控模板 一般使用TomcatStats-0.1.zip 模板居多,下载地址: http://forums.cacti.net/download/file.php?id=12310, 在linux服务器上面使用wget下载,wget http://forums.cacti.net/download/file.php?id=12310,报如下错误: 正在连接 forums.cacti.net|173.225.179.10|:80... 已连接. 已发出 HTTP 请求,

zabbix之监控MySQL服务器(可用于主从架构)

穿件监控MySQL的自定义参数 在zabbix的agent端添加配置文件 # vim /etc/zabbix/mysql/.my.cnf  用于连接MySQL的配置文件,无需显示输入用户和密码 [client]host     = localhostuser     = rootpassword = 123456socket   = /usr/local/mysql/mysql.sock[mysql]host     = localhostuser     = rootpassword =123

监控zabbix服务器本身及另一台服务器(zabbix-agent)

注:zabbix的安装及配置参考另一篇文章 监控zabbix服务器本身 [[email protected] ~]#vim /etc/zabbix/zabbix_agentd.conf Server=192.168.10.129 /etc/init.d/zabbix-agent restart 监控另一台服务器 [[email protected] ~]#rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release

监控HP服务器CPU温度的脚本

监控HP服务器CPU温度的脚本: #!/bin/bash Name=`hostname` IP=`/sbin/ifconfig eth0 | grep "inet addr" | awk -F[:" "]+ '{print $4}'` Date=`date +%m%d%y` Date2=`date +%H:%M` Num=`/usr/sbin/dmidecode | grep -i 'serial number' | head -n 1` CPU1=`/sbin/h

如何监控Tomcat服务器

如何监控Tomcat服务器 发表于:2009-06-25来源:作者:点击数:2651 标签:tomcatTomcat服务器 在进行 性能测试 时,一般都需要对应用服务器进行监控,监控的指标包括应用服务器的JVM使用状况.可用连接数.队列长度等信息.商业的应用服务器如 WebLogic . WebSphere 等都提供了Console对这些指标进行监控,在性能测试时可以很容易观察这些指标的情况. 在进行性能测试时,一般都需要对应用服务器进行监控,监控的指标包括应用服务器的JVM使用状况.可用连接数

详解 Spotlight on MySQL监控MySQL服务器

详解 Spotlight on MySQL监控MySQL服务器 前一章详解了Spotlight on Unix 监控Linux服务器 ,今天再来看看Spotlight on MySQL怎么监控MySQL服务器. 注:http://www.cnblogs.com/Javame/p/3685512.html 第一步: 下载并安装mysql-connector-3.5x Spotlight on MySQL 连接mysql必须使用mysql-connector-3.5x,5.3.2版本我试了下不行,有

使用python程序监控云服务器的带宽

将一些不重要的服务迁移到云服务上,有些下载什么的,为了防止带宽超了,python做了一个监控程序.用python3写的,由于和python2有些区别,特记录下来备查. 代码如下: #this is for monitor qingcloud# coding=utf-8import base64import hmacimport urllibimport urllib.parsefrom hashlib import sha256import urllib.requestimport dateti

Snmp 方式监控linux服务器

Snmp 方式监控linux服务器 一.  被监控端修改 shell#yum install net-snmp –y shell# mv /etc/snmp/snmpd.conf  /etc/snmp/snmpd.conf.bak shell# vim /etc/snmpd/snmpd.conf com2sec mynetwork 10.0.2.161 public  #这里写服务端的ip,表示允许这台机器访问你的snmp,如果default就是默认全部都可以访问. group MyROGrou