使用php脚本批量封IP

对于网络被攻击,管理员都希望能有简单而又有效的处理方式,使用shell也是个好办法,其他编程语言也都可以做到。今天我写个简单的php脚本来封IP。
linux杀手锏之无效路由_route-add-or-del-host-ip-reject这篇日志里介绍了无效路由的block方法。
现在简单的介绍一下这个脚本的工作流程,首先他是读取apache2目录下的日志文件,我们可以先对攻击者的特征做出判断,然后把攻击者的IP列出来,放在一个文本文件,至于是awk或是sed的来抽取及如何判断,这个我想应该管理服务器的人会比我清楚。
我的测试文本文件是这样的:

  1. debian:~/test# cat ip.list
  2. www.baidu.com
  3. www.g.cn
  4. g.cn
  5. www.163.com
  6. www.sina.com
  7. www.qq.com

当然上面的地址只是测试用的,要是真这样做了,在重启之前那台执行脚本的机器就无法与上述的域名或IP通信了。

  1. #!/usr/bin/php -q
  2. <?php
  3. system("tail -n 5000 /var/log/apache2/access_log|awk '{print $1}' > /root/test/ip.list");
  4. $a = file("/root/test/ip.list");
  5. foreach ($a as $key=>$value)
  6. {
  7.         #$cmd = "route del -host $value reject";
  8.         $cmd = "route add -host $value reject";
  9.         $cmd = str_replace("\n",'',$cmd);
  10.         system($cmd);
  11. }
  12.         echo "\n";
  13. ?>

如果是删除,当然是把add换成del,换掉注释就可以了。
当然,要完善还得加上log的记录及其他,有时间再补上。

5 Comments

  1. 技术文章~不错

  2. 技术文章,不错


    谢谢来访,常联系哦!

  3. 很受用啊

  4. 您的友链我也已经做好了,o(∩_∩)o…哈哈
    ——————————————————————————
    随便啊
    http://www.SuiBianA.com
    用自己的方式走的比别人更远|随便啊,就这样随变

  5. 您的友链已经做好了,呵呵…


    我的链接也好了,常联系哦!