Linux下检测程序的md5值异常自动报警的脚本

简介:

有一次办公室的测试服务器由于开启了对外访问权限,开启了tomcat管理页面,且设置了个弱口令。这3个因素同时成立了,没几天被不速之客放了个木马。事后随未造成严重影响,但是也给我敲了警钟。于是有了下面的小小的安全措施。

1、关闭用不到的用户

直接在命令行执行:

# cp /etc/passwd /etc/passwd-$(date +%F).bak

# for i in xfs news nscd dbus vcsa games nobody avahi haldaemon gopher ftp mailnull pcap mail shutdown halt uucp operator sync adm lp;

do

sed -i "s/^${i}/#${i}/" /etc/passwd;

done

 

2、这是一个我自己写的小脚本,用于检测重要目录的MD5SUM值是否发生变动

step1、首先在确认无问题的电脑上执行下面几条命令,将MD5SUM保存下来,作为原始模板:

#!/bin/bash

# 记录原始的执行文件的md5sum

 

if [[ ! -d /var/md5sum/ ]];then

    mkdir /var/md5sum -p

fi

 

for i in /bin /sbin /usr/local/bin /usr/local/sbin /usr/bin;do

    find $i  -maxdepth 1 -type f | xargs -n1 md5sum >> /var/md5sum/md5sum.log.ori

done

 

step2、下面是我的/home/scripts/chkmd5sum.sh脚本,作用是检查相关目录的md5sum是否发生变化。

#!/bin/bash

# 需要配置计划任务定期执行这个脚本,比对md5sum是否发生变化,变化则自动告警。

 

if [[ ! -d /var/md5sum/ ]];then

    mkdir /var/md5sum -p

fi


rm -f /tmp/md5sum*

 

for i in /bin /sbin /usr/local/bin /usr/local/sbin /usr/bin;do

    find $i  -maxdepth 1 -type f | xargs -n1 md5sum >> /tmp/md5sum.log_`date +%F`

done

 

if ! diff /tmp/md5sum.log_`date +%F`  /var/md5sum/md5sum.log.ori > /tmp/md5sum_status ;then

    cat /tmp/md5sum_status |mail -s "Warning,Md5sum has changed." lirulei90@126.com

fi

rm -f /tmp/md5sum_status 

 

step3、添加定时任务,每天检查一遍,有变化就发送邮件告警

echo '30 7 * * * /bin/bash /home/scripts/chkmd5sum.sh > /dev/null 2>&1' >> /var/spool/cron/root


我们也可以将其他需要关注的文件加入上述的for循环中,监控其md5sum的变化情况,出现异常及时报警。


当然,我们还要配置/etc/mail.rc这个文件,不然是无法发送出去邮件的。这个步骤不是本文重点,就省略了吧。










本文转自 lirulei90 51CTO博客,原文链接:http://blog.51cto.com/lee90/1826888,如需转载请自行联系原作者
目录
相关文章
|
23天前
|
Linux Shell
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
77 1
|
26天前
|
Linux Shell Python
Linux执行Python脚本
Linux执行Python脚本
26 1
|
1月前
|
Shell Linux C语言
【Shell 命令集合 磁盘维护 】Linux 用于检测和标记坏扇区(bad blocks)mbadblocks命令使用教程
【Shell 命令集合 磁盘维护 】Linux 用于检测和标记坏扇区(bad blocks)mbadblocks命令使用教程
27 0
|
18小时前
|
Java Shell Linux
【linux进程控制(三)】进程程序替换--如何自己实现一个bash解释器?
【linux进程控制(三)】进程程序替换--如何自己实现一个bash解释器?
|
1天前
|
Linux 开发工具 C语言
Linux 安装 gcc 编译运行 C程序
Linux 安装 gcc 编译运行 C程序
11 0
|
1天前
|
Linux Shell Android开发
自动化脚本之GPIO/LED相关适用于Android/Linux
自动化脚本之GPIO/LED相关适用于Android/Linux
10 0
|
22天前
|
Ubuntu Unix Linux
【Linux/Ubuntu】Linux/Ubuntu运行python脚本
【Linux/Ubuntu】Linux/Ubuntu运行python脚本
|
22天前
|
Shell Linux
Linux的shell入门教程shell脚本入门教程
Linux的shell入门教程shell脚本入门教程
15 0
|
23天前
|
Linux Shell
Linux脚本获取输入参数判断文件还是文件路径
Linux脚本获取输入参数判断文件还是文件路径
12 4
|
27天前
|
Linux Shell 调度
linux脚本任务调度
Linux的`crontab`用于计划任务,按照预设时间执行脚本或命令。步骤包括:1) 创建并赋予执行权限的脚本,如`backup.sh`;2) 使用`crontab -e`编辑任务列表;3) 添加cron表达式(如`0 1 * * * /path/to/backup.sh`,表示每天凌晨1点执行脚本);4) 保存并启动/检查cron服务。cron表达式包含分钟、小时、日期、月份和周几字段。根据需求调整表达式以满足不同任务需求。
12 3