当前位置 主页 > 服务器问题 > win服务器问题汇总 >

    预防PHPDDOS的发包攻击别人的方法(iis+linux)

    栏目:win服务器问题汇总 时间:2019-10-20 22:23

    说下防止PHPDDOS发包的方法
    复制代码 代码如下:
    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()函数请求外部,那就不让他请求

    php.ini里设置
    allow_url_fopen = Off
    如果这样他还是能发包

    extension=php_sockets.dll
    改成
    ;extension=php_sockets.dll

    重启APACHE、IIS、NGINX

    这样就可以防止PHP DDOS发包了

    对这种攻击的处罚政策是,

    Further violations will proceed with these following actions:

      1st violation - Warning and shutdown of server. We will allow 24 hours for you to rectify the problem. 第一次是警告+关机,给24小时的时间来解决问题

      2nd violation - Immediate reformat of server. 第二次是立即格式化服务器

      3rd violation - Cancellation with no refund. 第三次是取消服务并不给退款

      针对这个问题,给一个简单的描述,

      表现特征:一打开IIS,服务器的流出带宽就用光-----就是说服务器不断向别人发包,这个情况和受到ddos攻击是不同的,Ddos是不断收到大量数据包.

      解决办法:

      先停止IIS,这样就暂时没法对外攻击了,然后

      禁止上述的代码:

      在c:\windows\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

      在c:\windows\php.ini里设其值为Off

      allow_url_fopen = Off

      并且:

      ;extension=php_sockets.dll

      前面的;号一定要有,意思就是限制用sockets.dll

      前面的;号要保留

      然后启动IIS

      在IP策略,或防火墙中,禁止所有udp向外发送

    linux下解决办法

      一、禁止本机对外发送UDP包

      iptables -A OUTPUT -p udp -j DROP

      二、允许需要UDP服务的端口(如DNS)

      iptables -I OUTPUT -p udp --dport 53 -d 8.8.8.8 -j ACCEPT

      绿色“53”,为DNS所需要的UDP端口,黄色“8.8.8.8”部分为DNS IP,根据您服务器的设定来定,若您不知您当前服务器使用的DNS IP,可在SSH中执行以下命令获取:

      cat /etc/resolv.conf |grep nameserver |awk 'NR==1{print $2 }'

      附完整iptables规则
    复制代码 代码如下:
      #iptables -A INPUT -p tcp -m tcp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT

      #iptables -A INPUT -p udp -m udp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT

      #iptables -A OUTPUT -p tcp -m tcp --sport 1024:65535 -d 8.8.4.4 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT

      #iptables -A OUTPUT -p udp -m udp --sport 1024:65535 -d 8.8.8.8 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT

      #iptables -A OUTPUT -p udp -j REJECT

      #/etc/rc.d/init.d/iptables save