Shell脚本实现监控iptables规则是否被修改
最近看了一篇通过nagios实现MD5实时监控iptables状态的文章,就想是否可以用shell也做到监控iptables规则改变,经过实验,就有了下面这个脚本.
系统:centos 5.x
脚本内容:
cat check_iptables.sh
#!/bin/bash
if [ ! -f .count ];then
iptables -L -n|md5sum|awk '{print $1}' > ~/.count
exit 1
else
iptables -L -n|md5sum|awk '{print $1}' >~/1.txt
difffile=`diff ~/.count ~/1.txt|wc -l`
if [[ $difffile = 0 ]];then
echo "file is ok!"
sleep 1
rm -f ~/1.txt
else
echo "file is no ok!"
cat ~/1.txt >~/.count
sleep 1
rm -f ~/1.txt
fi
fi
然后丢到crontab里.以每隔3分钟检测一次.
chmod +x /root/check_iptables.sh
*/3 * * * * /bin/sh /root/check_iptables.sh
当然你也可以加上邮件报警来通知iptables规则有改变.
相关推荐
-
Shell实现的iptables管理脚本分享
以前的脚本是用save模式,现在把命令附加到一个文件里面,这样的话,可以方便的二次修改什么的 脚本基本是这样的,大家可以跟自己的情况再次修改~ 增加功能什么的. 复制代码 代码如下: #!/bin/bash while true do clear echo "----------------------menu----------------------" echo "(1) service iptables restart" echo "(2) ipt
-
Shell监控iptables运行状态
最近在调试服务器的iptables,自己做了个定时关iptables,但晚上回家很少开电脑,所以就没法去启动iptables,当然你可能会说,为什么不取消定时关闭iptables,我只能说个人的环境不一样,需求也就不一样. 脚本内容: 复制代码 代码如下: vi iptables-reset.sh #!/bin/bash port=`iptables -vL|grep ssh|awk '{split($NF,a,":");print a[2]}'|wc -l` if [ $port =
-
Shell脚本实现监控iptables运行状态
最近在调试服务器的iptables,自己做了个定时关iptables,但晚上回家很少开电脑,所以就没法去启动iptables,当然你可能会说,为什么不取消定时关闭iptables,我只能说个人的环境不一样,需求也就不一样. 脚本内容: vi iptables-reset.sh 复制代码 代码如下: #!/bin/bash #Powered by blog.slogra.com port=`iptables -vL|grep ssh|awk '{split($NF,a,":");prin
-
Shell脚本配合iptables屏蔽来自某个国家的IP访问
星期六我们一位客户受到攻击,我们的网络监测显示有连续6小时的巨大异常流量,我们立即联系了客户,没有得到回应,我们修改和限制了客户的 VPS,使得个别 VPS 受攻击不会对整个服务器和其他 VPS 用户造成任何影响,我们一直保持这个 VPS 为开通状态(尽管一直受攻击),攻击又持续了24小时,星期天攻击仍在继续,我们忍无可忍,但是仍然无法联系到客户,我们向客户网站的另一负责人询问是否需要我们介入来帮助解决,这位负责人答应后我们立即投入到与 DDoS 的战斗中(我们动态扫描屏蔽坏 IP,现在客户网站
-
CentOS 7 下使用 iptables
系统升级到CentOS 7后总感觉iptables怪怪的,比如不管怎么保存重启后都被初始化一下,即便我最后发大绝招启动时候加命令: 首先iptables-save > /etc/iptables.rules保存当前状态. 然后再在/etc/rc.local中强制加上 /etc/rc.local iptables-restore /etc/iptables .rules 重启后虽然规则生效但仔细看规则还是一些被莫名添加的额外的内容,让人很是不爽. 仔细一google,发现问题之所在了.RedHat
-
Shell脚本实现监控iptables规则是否被修改
最近看了一篇通过nagios实现MD5实时监控iptables状态的文章,就想是否可以用shell也做到监控iptables规则改变,经过实验,就有了下面这个脚本. 系统:centos 5.x 脚本内容: cat check_iptables.sh 复制代码 代码如下: #!/bin/bash if [ ! -f .count ];then iptables -L -n|md5sum|awk '{print $1}' > ~/.count exit 1 else iptables -
-
Shell脚本实现监控rsync数据是否传输完
今天有台服务器a要把网站程序全部传输到另外一台服务器b上去,但离下班时间就只有1个小时了,为了准时下班,简单写了个shell脚本来监控是否有传输完,我先在服务器a上看了下网站程序总大小为12G,用du -sm查看也就是11517,服务器也不会有人再传东西上去了,所以我可以放心容量不会再变大了. 系统:centos 5.x 需要的软件:rsync 脚本内容: 复制代码 代码如下: #!/bin/bash file=`du -sm /var/www/vhosts/|awk '{print $1}'`
-
shell脚本实现监控shell脚本的执行流程及变量的值
很多时候,我们都会写shell程序来完成一些不用重复造轮子的时刻,但是,又因为shell语句中也会有函数,也会有变量,在运行后到底执行了哪些相关的操作,就需要对具体执行过程中的变量等可变的因素的监控,那么我们下面就写个小小的shell例子,来完成这个对执行过程中条件语句中的变量的变化的监控和整个程序的执行流程的观察. shell程序代码: 复制代码 代码如下: #!/bin/bash function setlogfile { if ! [ -z "$1" ]; then
-
Shell脚本实现监控MySQL主从同步
代码如下: 复制代码 代码如下: #!/bin/bash #check MySQL_Slave Status #crontab time 00:10 MYSQLPORT=`netstat -na|grep "LISTEN"|grep "3306"|awk -F[:" "]+ '{print $4}'` MYSQLIP=`ifconfig eth0|grep "inet addr" | awk -F[:" "
-
Shell脚本实现监控kingate并自动启动
自己在vps做的kingate服务端,估计最近占用流量太大了,老是被服务商把我vps重启,但kingate这个东西是一旦被强制结束掉,是无法开机启动的,因为要把kingate.pid这个文件删除了才能启动,好吧,对于我们这样的懒人来说,当然不能自己去登录服务器去手动删除并启动kingate,就写了个简单的shell脚本来替我完成这些. 系统:centos 5.x 脚本内容: cat kingate.sh 复制代码 代码如下: #!/bin/bash kingate=`ps -C kingate
-
Shell脚本实现监控swap空间使用情况和查看占用swap的进程
复制代码 代码如下: #!/bin/bash echo -e `date +%y%m%d%H%M` echo -e "PID\t\tSwap\t\tProc_Name" # 拿出/proc目录下所有以数字为名的目录(进程名是数字才是进程,其他如sys,net等存放的是其他信息) for pid in `ls -l /proc | grep ^d | awk '{ print $9 }'| grep -v [^0-9]` do # 让进程释放swap的方法只有一个:就是重
-
CentOS下编写shell脚本来监控MySQL主从复制的教程
目的:定时监控MySQL主从数据库是否同步,如果不同步,记录故障时间,并执行命令使主从恢复同步状态 1.创建脚本文件 vi /home/crontab/check_mysql_slave.sh #编辑,添加下面代码 #!/bin/sh # check_mysql_slave status ip=eth0 #网卡名称 mysql_binfile=/usr/local/mysql/bin/mysql mysql_user=root #MySQL数据库账号 mysql_pass=123456 #密码
-
shell脚本实现监控某个进程意外停止后拉起进程
要监护的进程启动脚本:实现脚本写入crontab定时任务 #!/usr/bin/env bash # scheduled task at 22:00 everyday script_path=`eval pwd` user_name=`whoami` echo "crontab_script_path:${script_path}" sudo echo "* * * * * cd ${script_path} && sh xxx.sh > start_c
-
shell脚本结合iptables防端口扫描的实现
网上有现在的防端口工具,如psad.portsentry,但觉得配置有点麻烦,且服务器不想再装一个额外的软件.所以自己就写了个shell脚本实现这个功能.基本思路是:使用iptables的recent模块记录下在60秒钟内扫描超过10个端口的IP,并结合inotify-tools工具实时监控iptables的日志,一旦iptables日志文件有写入新的ip记录,则使用iptables封锁源ip,起到了防止端口扫描的功能. 1.iptables规则设置新建脚本iptables.sh,执行此脚本.
随机推荐
- win2008中设置计划任务执行PHP文件的方法
- javascript 汉字与拼音转换
- Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
- CentOS 中Nginx的安装方法
- javascript 设置文本框中焦点的位置
- EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
- php字符串替换函数substr_replace()用法实例
- 使用ASP记录在线用户的数量的代码
- Android图片三级缓存策略(网络、本地、内存缓存)
- TableSort.js表格排序插件使用方法详解
- Linux Shell循环中实现展示进度百分比的实现方法
- 读取spring配置文件的方法(spring读取资源文件)
- php以fastCGI的方式运行时文件系统权限问题及解决方法
- EJB3.0开发之多对多和一对一
- Java与Node.js利用AES加密解密出相同结果的方法示例
- sql语句之数据操作介绍
- insert into tbl() select * from tb2中加入多个条件
- jquery+php实现搜索框自动提示
- SuSE Enterprise Linux 10下面启动xdmcp
- Java反射机制(Reflection)浅析