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、安全类网站等。