解决php服务器向外发包***其它服务器

前一段时间公司在美国的服务器经常性的流量很大,后来查了一下服务器被植入***了,立马清理***,好了几天又出现同样的问题了,接着清,由于这个服务器我接手的时候很多安全措施就没有做,php网站好多都是同时直接开放的写入执行权限,由于这个服务器上放着200多个客户站,因此又不能在短时间内整理好,就想肯定有一个php函数用来进行发包的,没有好的办法那就去百度吧,看到了下面这篇文章,禁用了fsockopen()这个函数后果然向外发包的问题解决了,接下来就是苦了活了,一个一个网站设置权限。



针对最近phpddos***程序比较恶劣,php程序突发性对外发包***的问题,我们研究了一下如何解决服务器对外发包的解决方法:

在发包的时候服务器肯定会出现 ping值丢包,CPU爆满的现象甚至服务器可能会出现崩溃。


2-130Z4161A2K7.png


因为php***造成服务器对外发包的防范措施和解决方法解决方法:


经分析发现,这些发包的PHP程序都使用了fsockopen()这个函数来进行发包的。所以***学习基地建议您修改php.ini文件,关闭这个函数,95%以上的程序是不需要这个函数的,个别程序如淘宝客、

Ucenter、部分API程序等才需要使用这个函数。如果关闭这个函数,发包程序就彻底失效,极大的增强了服务器的安全级别和性能。

1. 关闭这个函数的方法,编辑php.ini文件搜索这个文件中的“disable_functions =”,如果这行前面有;符号的就删除这个符号,然后把这行修改为:

disable_functions = popen,exec,passthru,system,fsockopen,pfsockopen


修改完成后保存退出,并重启 IIS或apache服务即可生效 。


2. 如果您的服务器上有DedeCMS程序,请特别注意检查一下文件是否存在:

/plus/config_s.php

/plus/index.php

/data/cache/t.php

/data/cache/x.php

这些一般是ddos的***程序,要及时删除

防止PHP DDOS发包的方法
if (eregi(“ddos-udp”,$read)) {
fputs($verbinden,”privmsg $Channel :ddos-udp – started udp flood – $read2[4]\n\n”);
$fp = fsockopen(“udp://$read2[4]“, 500, $errno, $errstr, 30);
if (!$fp)
{

$fp = fsockopen(“udp://$read2[4]“, 500, $errno, $errstr, 30);

或者:

fsockopen("udp://$ip", $port, $errno, $errstr, 5); //这就是利用 fsockopen 函数进行发包***
既然是用fsockopen请求外部,那就不让他请求
php.ini里设置
allow_url_fopen = Off
如果这样他还是能发包
extension=php_sockets.dll
改成
;extension=php_sockets.dll
重启APACHE、IIS、NGINX
这样就可以防止PHP DDOS发包了


查找被添加的***文件方法:

进入 C:\WINDOWS\system32\LogFiles\HTTPERR 打开最新的日志 然后搜索 port
如果能搜索到访问记录 那就可以找到是哪个站中了***对外发包.

删除掉***文件以后,
网上有不少解决方法是限制php中使用的函数,但是怕客户网站有使用到那些函数。

最后设置了策略,阻止了udp协议的进出。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章