Comments: 评论关闭

在星期五的时候,上着上着,突然页面打开相当慢。

原本以为是网络问题,没大留意。但频繁出现数次,还居然一直持续。

在Cacti中查看,网卡占用居然达到机房百兆宽带的所有,12m/s

查看网卡的实时流量,得到了相同结果。

而且 CPU 也有点不正常,用 Top 命令查看,占用最高的是 Httpd 进程。即 Apache

原以为是受到了页面攻击,但这样在进程里头出现的,还应该有 Nginx 跟 Mysql 才对。

不会就这么孤独地只有 Apache。

正在我继续查找原因,攻击停下来了,网卡流量恢复正常。

查看了所有的 WEB 访问日志,无一是有能够解释到该现状的记录。

因为如果是 页面攻击,就好比是压力测试般,肯定会有某个或几个地址有重复不断的垃圾请求。

但日志上显示得相当悠然。

好了,没过多久,流量又来了!httpd 进程把 2个 cpu核心占用到 100%

网卡冲到 12m/s

使用网络命令 netstat -ant 查看,没有 DDOS 之类攻击所产生的 wait 。

而且链接IP还越来越少,这时候从本地 Ping 服务器的响应基本上是 timeout 了

一但把 Apache 停下来,流量就会消失。再次启动!没过多久又会再来。

为了知道到底是哪个 IP 令我产生这样的事,我安装了既时流量检测工具 iftop

iftop介绍详见:http://www.oschina.net/p/iftop

经检测,传输量最大的 IP 是 60.219.100.3 这个IP,直接访问能打开到网站。

使用 IPtables 命令禁止该IP访问本机!!无效,流量继续!

哟????!! 再次使用 IPtables 命令禁止本机访问该IP !!!这下流量终于停了。

哟!!这事情就明白多了,绝对能断点我的服务器成为了肉鸡,受到操控对特定目标进行了攻击。

而进行攻击的木马,不是啥米东西,而是 PHP 程序!

应该是在服务器里头某个虚拟主机网站有漏洞,被放入了 PHP DDOS 攻击木马!

然而,剩下的问题就更加复杂了,如何在海量文件的目录里头找到那个木马?

希望是有一个杀毒程序能帮我扫描到….但我还没能找到这个,如果网友们有的不妨推荐推荐。

我的思路是,开启 Apache 的 Server Status。 这家伙能实时查看到 Apache 正在执行那个程序。

而且详细到执行时间,输出数据量等等…

详细可见:http://www.oschina.net/bbs/thread/12650

好了!这下我就可以坐着等兔子再次跑上门来!

还有一个方法,就是把 PHP safe_mod 打开,能禁用掉一些例如 调用 系统 Shell 参数的语法。

来导致木马无法执行。可以我倒还真想把这兔子抓住,所以现在在等待中…

####################

2010-11-9 更新

####################

PHP safe_mod 不能随意打开!期中一个副作用就是导致 Cacti 无法调用 rrdtools 等参数。

就算设置了例外目录也无效!

最后我在 Apache,PHP 上都配置了 php_admin_value open_basedir 选项。

使得虚拟主机的用户无法越权访问到所属目录外的文件,当然也包括 shell 命令了。

但无效,黑客依然能利用暗藏在目录里头的肉鸡程序发动攻击。

虽然攻击事件在凌晨或者早上!!虽然我没在电脑旁!!

但我使用了 curl 对 ApacheStatus 页面的定时抓取作为了日志!!

与 Cacti 配合,一发现高流量!就追索该时间的日志!!

哈哈!这下子被逮个正着!!!!!

以下是 ApacheStatus 的截图,Req 项特别高的!就是 PHP肉鸡程序送发送的  UDP 攻击数据包。

在此也顺便公布攻击来源,辽宁省盘锦市 联通 119.115.80.102 但也有可能是一台跳板肉鸡。

至此,我服务器上存在漏洞的网站被暂时关闭了,经查看文件修改日期,黑客还放了不少后门程序。

看了得好好清除清除才能再次上线了。

而抓到的肉鸡!用 VI 打开,居然是使用 Zend 加密的!!

有没朋友对加密这东西有办法解决的,短信我,我给你发去研究研究。

Author: qbanke | Category: Apache, PHP
Comments: 评论关闭

GZIP 的实现有好多种方法。包括有

1,Nginx 的 GZIP 配置

2,Apache 的 mod_deflate.so  模块

3,各种 PHP 程序中通过 PHP自身 实现压缩。

等等…

期中使用 PHP 自身也有2种实现方法,一种是开启zlib.output_compression,一种是 ob_gzhandler编码

在默认情况下,zlib.output_compression是关闭的,如需开启需编辑php.ini文件,找到以下选项并开启:

zlib.output_compression = On
zlib.output_compression_level = 6

完成后可以通过phpinfo()函数检测结果,当zlib.output_compression的Local Value和MasterValue的值同为On时,表示已经生效,这时候访问的PHP页面(包括伪静态页面)已经GZIP压缩了,通过Firebug或者在线网页GZIP压缩检测工具可检测到压缩的效果。

但如果需要使用ob_gzhandler(默认),则需关闭zlib.output_compression(2个同时开启会出乱子),把php.ini文件内容更改为:

zlib.output_compression = Off
zlib.output_compression_level = -1

ob_gzhandler是多数程序(discuz,phpwind等)推荐的用法

Top
RSS for entries