首页 » 后端 » Apache » 正文

用 .htaccess 防止自己的站被用于 ddos

发布者:站点默认
2013/10/14 浏览数(2,396) 分类:Apache, 数据安全 用 .htaccess 防止自己的站被用于 ddos已关闭评论

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

点击返回顶部
  1. 留言
  2. 联系方式