解決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協議的進出。


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