ddos的脚本通常会包含这些代码:
eval($_POST[ eval($_GET[ $_POST['port'] $_GET['port']; set_time_limit(0); set_time_limit(999999); 65535 while(1) fsockopen("tcp:// fsockopen("udp:// packets/s
日志里会是这样:
Timeoit.php?port=53&time=20&host=183.001.002.129 Timeois.php?port=53&time=10&host=122.001.0.222
我们可以通过上边的特征码去查找这些恶意脚本,并通过下边的方法来防止自己的站被别人用于DDOS(只能稍稍增加被利用的难度):
将以下内容保存为“.htaccess”放入网站根目录并取消写权限,这个文件可以将参数中有“port=”、“host=”或IP地址格式的URL拦截下来。
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{QUERY_STRING} port=|host=|[0-9]{1,3}(\.[0-9]{1,3}){3} RewriteRule .* – [F] </IfModule>
如果你可以操作 apache 的配置文件,你可以将站点的配置文件改为如下格式:
<VirtualHost *:80> ServerName blog.upall.cn php_admin_value open_basedir .:/var/lib/php/session/:/tmp/:/var/tmp/:/site/blog.upall.cn/ DocumentRoot "/site/blog.upall.cn" <Directory "/site/blog.upall.cn"> AllowOverride All Order Allow,Deny Allow from all </Directory> # 禁止在这些目录里执行脚本 <DirectoryMatch "(html?\/|\/a\/|data\/|templets\/|include\/|attachment\/|uploads\/|upload\/|cache(.*)\/ <FilesMatch "\.((php|jsp|aspx?)|((php\.|jsp\.|aspx?\.).*))$"> Order allow,deny Deny from all </FilesMatch> </DirectoryMatch> # 防止模板被下载 <DirectoryMatch "templets\/"> <FilesMatch "\.html?$"> Order allow,deny Deny from all </FilesMatch> </DirectoryMatch> # 以独立的身份运行网站 <IfModule mpm_itk_module> AssignUserId upall_cn root </IfModule> # 过滤一些非法请求 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{QUERY_STRING} port=|host=|[0-9]{1,3}(\.[0-9]{1,3}){3} RewriteRule .* – [F] </IfModule> </VirtualHost>
请多的安全设置可以参考 php.ini 中的 disable_functions、iptables、SELinux、安全类网站等。