目标
定期或者不定期的批量检测线上所有服务器的iptables状态变化,发现异常后自动将各台服务器对应的异常iptables项发邮件到管理员的邮箱。
构建原理:saltstack、shell脚本、sendEmail。基于saltstack的配置下发执行功能,批量搜集异常iptables项,搜集到的异常项用sendEmail发送邮件到管理员邮箱。
构建过程:saltstack机器以下称为master,待检测的机器称为a、b、c、d、e,发送邮件的机器称为mail。 批量检测iptables与批量检测进程的思路和实现原理是一样的,它们不同的部分(iptables的检测比进程检测复杂一点点)。
- 服务器的进程是每时每刻都在不停变化的,每次搜集到的异常进程肯定是对比白名单中多出的进程。
- 服务器的iptables设置一般是不会变化的,每次检测iptables时要将比白名单多和比白名单少的项目都给提取出来。
功能脚本
机器 a、b、c、d、e自检测脚本变成了这样,即返回iptables增加的项,也返回iptables减少的项:
1 |
|
master下发和检测的sls文件与进程检测的类似,请参考进程检测上篇。
主要的检测和更新白名单的脚本如下(和进程检测脚本的变化不大):
1 |
|
联动脚本和进程检测那篇也是类似的,参考那个就可以。 同样和进程检测一样,耦合各个脚本的执行时间就能愉快的检测监控iptables的变化了。