防止本地用戶用fsockopen DDOS攻擊對策
更新時間:2011年11月02日 23:53:39 作者:
php腳本中的 fsockopen 函數,對外部地址,通過UDP發(fā)送大量的數據包,攻擊對方
原因
php腳本部分源碼:
$fp = fsockopen("udp://$ip", $rand, $errno, $errstr, 5);
if($fp){
fwrite($fp, $out);
fclose($fp);
php腳本中的 fsockopen 函數,對外部地址,通過UDP發(fā)送大量的數據包,攻擊對方。
應對
可通過 php.ini ,禁用 fsockopen 函數,及使用Windows 2003的 安全策略 屏蔽本機的UDP端口。
禁用函數
查找到 disable_functions ,添加需禁用的函數名,如下例:
passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen
重啟IIS后生效。
屏蔽UDP端口
將以下著色文本復制到記事本,另存為 banudp.bat 或任意名,雙擊運行即可。
REM 添加安全策略,名稱
netsh ipsec static add policy name=我的安全策略
REM 添加 IP篩選器列表
netsh ipsec static add filterlist name=允許列表
netsh ipsec static add filterlist name=拒絕列表
REM 添加篩選器到IP篩選器列表(允許上網)
netsh ipsec static add filter filterlist=允許列表 srcaddr=me dstaddr=any description=dns訪問 protocol=udp mirrored=yes dstport=53
REM 添加篩選器到IP篩選器列表(不讓別人訪問)
netsh ipsec static add filter filterlist=拒絕列表 srcaddr=any dstaddr=me description=別人到我任何訪問 protocol=udp mirrored=yes
REM 添加篩選器操作
netsh ipsec static add filteraction name=可以 action=permit
netsh ipsec static add filteraction name=不可以 action=block
REM 創(chuàng)建一個鏈接指定 IPSec 策略、篩選器列表和篩選器操作的規(guī)則(加入規(guī)則到我的安全策略)
netsh ipsec static add rule name=允許規(guī)則 policy=我的安全策略 filterlist=允許列表 filteraction=可以
netsh ipsec static add rule name=拒絕規(guī)則 policy=我的安全策略 filterlist=拒絕列表 filteraction=不可以
REM 激活我的安全策略
netsh ipsec static set policy name=我的安全策略 assign=y
php腳本部分源碼:
復制代碼 代碼如下:
$fp = fsockopen("udp://$ip", $rand, $errno, $errstr, 5);
if($fp){
fwrite($fp, $out);
fclose($fp);
php腳本中的 fsockopen 函數,對外部地址,通過UDP發(fā)送大量的數據包,攻擊對方。
應對
可通過 php.ini ,禁用 fsockopen 函數,及使用Windows 2003的 安全策略 屏蔽本機的UDP端口。
禁用函數
查找到 disable_functions ,添加需禁用的函數名,如下例:
passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen
重啟IIS后生效。
屏蔽UDP端口
將以下著色文本復制到記事本,另存為 banudp.bat 或任意名,雙擊運行即可。
REM 添加安全策略,名稱
netsh ipsec static add policy name=我的安全策略
REM 添加 IP篩選器列表
netsh ipsec static add filterlist name=允許列表
netsh ipsec static add filterlist name=拒絕列表
REM 添加篩選器到IP篩選器列表(允許上網)
netsh ipsec static add filter filterlist=允許列表 srcaddr=me dstaddr=any description=dns訪問 protocol=udp mirrored=yes dstport=53
REM 添加篩選器到IP篩選器列表(不讓別人訪問)
netsh ipsec static add filter filterlist=拒絕列表 srcaddr=any dstaddr=me description=別人到我任何訪問 protocol=udp mirrored=yes
REM 添加篩選器操作
netsh ipsec static add filteraction name=可以 action=permit
netsh ipsec static add filteraction name=不可以 action=block
REM 創(chuàng)建一個鏈接指定 IPSec 策略、篩選器列表和篩選器操作的規(guī)則(加入規(guī)則到我的安全策略)
netsh ipsec static add rule name=允許規(guī)則 policy=我的安全策略 filterlist=允許列表 filteraction=可以
netsh ipsec static add rule name=拒絕規(guī)則 policy=我的安全策略 filterlist=拒絕列表 filteraction=不可以
REM 激活我的安全策略
netsh ipsec static set policy name=我的安全策略 assign=y
相關文章
PHP內部實現打亂字符串順序函數str_shuffle的方法
這篇文章主要給大家介紹了關于PHP內部實現打亂字符串順序函數str_shuffle的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-02-02PHP常量使用的幾個需要注意的地方(謹慎使用PHP中的常量)
常量包含數字字母字符和下劃線,數字允許作為常量名。 常量名的所有字母必須大寫。類常量必須通過 const 定義為類的成員,強烈不鼓勵使用 define 定義的全局常量2014-09-09php Notice: Undefined index 錯誤提示解決方法
字面意思就是未定義的索引,一般情況下是因為程序開發(fā)作者判斷不嚴謹導致。一般不會影響程序的運行,具體的解決方法可以參考下。2010-08-08