翼度科技»论坛 云主机 LINUX 查看内容

shell脚本-入侵检测与告警

9

主题

9

帖子

27

积分

新手上路

Rank: 1

积分
27
shell脚本-入侵检测与告警

原理

利用inotifywait命令对一些重要的目录作一个实施监控,例如:当/root 、/usr/bin 等目录发生改变的,利用inotifywait看可以对其作一个监控作用。
inotifywait

介绍

inotifywait 是一个 Linux 下的命令行工具,用于监视文件系统的变化。它基于 inotify 机制,可以实时监控文件或目录的变化,并在发生变化时触发相应的动作。它可以监控文件的创建、删除、修改、移动等操作,并提供了丰富的选项和参数,可以根据需要进行定制化配置。inotifywait 可以用于实时监控日志文件、备份文件、配置文件等,可以方便地进行文件同步、备份、自动化处理等任务。
安装
  1. yum install inotifywait -y
复制代码
常用参数
  1. --timefmt 时间格式
  2.     %y年 %m月 %d日 %H小时 %M分钟
  3. --format 输出格式
  4.     %T时间 %w路径 %f文件名 %e状态
  5. -m 始终保持监听状态,默认触发事件即退出
  6. -r 递归查询目录
  7. -q 减少不必要的输出(只打印事件信息)
  8. -e 定义监控的事件,可用参数:
  9.     open   打开文件
  10.     access 访问文件
  11.     modify 修改文件
  12.     delete 删除文件
  13.     create 新建文件
  14.     attrib 属性变更
  15. --exclude <pattern> 指定要排除监控的文件/目录
复制代码
示例
  1. inotifywait /usr/local -r --timefmt '%d/%m/%y %H:%M' --format "%T %f" -e MODIFY --exclude '^.*.swp$'
复制代码
shell脚本
  1. #!/bin/bash
  2. MON_DIR=/opt/scripts
  3. inotifywait -mqr --format %f -e create $MON_DIR | \
  4. while read files; do
  5.         echo "`date +%F_%T` _$files" >> file_mon.log
  6. done
复制代码
推荐使用采用email通知shell脚本:
  1. #!/bin/bash
  2. MON_DIR=/opt/scripts
  3. inotifywait -mqr --format %f -e create $MON_DIR | \
  4. while read files; do
  5.         # 实时同步
  6.         rsync -avz /opt/scripts /tmp/
  7.         # 发送邮件通知
  8.         echo "`date +'%F_%T  '`$files" | mail  -s "inotifywait" 2661148284@qq.com
  9. done
复制代码
脚本运行测试:
  1. 1.bash 18.sh
  2. 2.再开一个终端,去/opt/scripts/文件下创建文件
  3. touch test.txt
  4. 3.检查邮箱
复制代码
这里如果采用邮箱通知需要先做好配置 可以查看文章使用Mailx发送邮件 - FouroFour - 博客园 (cnblogs.com)

来源:https://www.cnblogs.com/xuxuxuxuxu/p/17575927.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具