主要包括,命令审计,文件审计,日志分析,网络监控
在linux运维中,命令审计是非常重要的一个环节,命令审计也不需要太复杂的工具,几个脚本就可以搞定了。
1、在系统的全局变量中添加如下环境变量: vim /etc/profile
export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger " seciland user=$(whoami)" client=$SSH_CLIENT path=`pwd` command="$msg"; }'
2、修改一下syslog.conf的配置文件,添加
*.info;mail.none;authpriv.none;cron.none @ip地址
service syslog restart
当然后面可以部署syslog统一日志服务器,这样就可以随时分析用的行为了。
文件审计可以使用inotify-tools
他提供两种工具,一是 inotifywait,它是用来监控文件或目录的变化,二是inotifywatch,它是用来统计文件系统访问的次数。
这样的话就可以知道哪些文件被修改过,之前只要有备份就很容易的恢复出来。
文件监控当然还有一种方式是对关键文件进行打标签,如果有变化就告警。
网络监控 执行iftop -N -n -i eth1后界面为
+-----------------+-----------------+--------------------+--------------------+--------------------- 192.168.1.11 => 192.168.1.66 5.3Mb 3.22Mb 3.20Mb <= 219kb 45.7kb 49.3kb 192.168.1.11 => 192.168.1.29 144kb 30.8kb 29.6kb <= 11.3Mb 2.38Mb 2.74Mb 192.168.1.11 => 12.2.11.71 0b 6.40kb 6.66kb <= 0b 0b 0b 192.168.1.11 => 192.168.1.8 2.63kb 1.43kb 932b <= 1.31kb 1.05kb 893b 192.168.1.11 => 192.168.2.78 2.53kb 1.54kb 2.15kb <= 160b 160b 187b 192.168.1.11 => 111.126.195.69 0b 166b 69b <= 0b 0b 0b ------------------------------------------------------------------------------------------------------ TX: cum: 9.70MB peak: 15.6Mb rates: 15.4Mb 3.26Mb 3.23Mb RX: 8.38MB 14.9Mb 11.5Mb 2.42Mb 2.79Mb TOTAL: 18.1MB 30.5Mb 27.0Mb 5.69Mb 6.03Mb
用最基本的命令也可以 netstat -n|grep ESTABLISHED|grep 182.92.99.120 ,基本上一个命令就找到了所有的对外连接。
tcp 0 0 182.92.99.120:3306 117.88.154.251:51669 ESTABLISHED
tcp 0 0 182.92.99.120:51405 110.75.102.62:80 ESTABLISHED
tcp 0 52 182.92.99.120:22 117.88.154.251:61149 ESTABLISHED
对日志分析来说,个人认为常用的行为就是,密码猜测分析,密码猜测成功分析,异常登录时间分析。只要分析到此日志就可以产生告警。这样事后分析就比较方便,当然更好的办法是当分析到有攻击行为的时候能迅速的进行补救就最好了,最简单的办法就是防火墙封ip。
如果这些工作都能自动化做就好了,产生告警,直接发个邮件。这样维护人员就不用天天看监控了。