冰与火之歌 发表于 2015-6-10 14:57:12

Centos系统下php对外DDOS攻击如何防范处理

前段时间有个客户租用了台CentOS系统的服务器,不停地向外发包,网络带宽一直很高,导致机器经常卡死 无法远程操作。检查发现可能是php程序被植入了PHP-DDoS攻击脚本,被触发后会不停地对外攻击其他服务器,所以导致了网络的瘫痪.


特征:用PHP代码调用sockets,直接用服务器的网络攻击别的IP。 PHP脚本DDOS攻击的原因及php脚本部分源码:
$fp = fsockopen(“udp://$host”, $port, $errno, $errstr, 5);
if($fp){
       fwrite($fp, $out);
       fclose($fp);
}


php脚本中的 fsockopen 函数,对外部地址,通过UDP发送大量的数据包,攻击对方。


解决方案:
可通过 php.ini 禁用 fsockopen、 fwrite、 fclose这三个函数
一、禁用fsockopen函数
在php.ini里禁用如下函数:
disable_functions=gzinflate,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,fwrite,fclose


在php.ini里禁用
fopen allow_url_fopen = Off




二、通过iptables禁止向外发包
iptables -I OUTPUT -p udp --dport 53 -d 8.8.8.8 -j ACCEPT#允许需要UDP服务的端口(如DNS)
iptables -A OUTPUT -p udp -j DROP#禁止本机对外发送UDP包
#“53”,为DNS所需要的UDP端口,“8.8.8.8”部分为DNS IP,根据您服务器的设定来定。
#若您不知您当前服务器使用的DNS IP,可在SSH中执行以下命令获取:
cat /etc/resolv.conf 或者查看网卡配置文件 ifcfg-eth0

页: [1]
查看完整版本: Centos系统下php对外DDOS攻击如何防范处理