apache2.0.54防止盗连接详细配置

apache2.0.54防止盗连接详细配置

apache2.0.54防止盗连接

作者:修理工
要让apache防盗连接,首先要让apache支持.htaccess客户设置文件,还要增加mod_rewrite模块。以下是我的编译安装过程。
1. 安装apache增加mod_rewrite模块
tar xfzv httpd-2.0.54.tar.gz
cd httpd-2.0.54
./configure --prefix=/usr/local/httpd --enable-module=most --enable-shared=max --enable-rewrite
--enable-rewrite将od_rewrite模块编译进来
make
make install
查看apache编译进来的模块
[root@TFP httpd-2.0.54]# /usr/local/httpd/bin/apachectl  -l
Compiled in modules:
  core.c
  mod_access.c     //支持.htaccess文件
  mod_auth.c
  mod_include.c
  mod_log_config.c
  mod_env.c
  mod_setenvif.c
  prefork.c
  http_core.c
  mod_mime.c
  mod_status.c
  mod_autoindex.c
  mod_asis.c
  mod_cgi.c
  mod_negotiation.c
  mod_dir.c
  mod_imap.c
  mod_actions.c
  mod_userdir.c
  mod_alias.c
  mod_rewrite.c     //已经将od_rewrite编译进来了
  mod_so.c
[root@TFP httpd-2.0.54]#
2.设置apache配置文件httpd.conf
<Directory />;
    Options FollowSymLinks
    AllowOverride All   将None修改为All
</Directory>;


AllowOverride All       将None修改为All
修改默认APACHE名去掉#ServerName前的#设置为127.0.0.1
ServerName 127.0.0.1
设置虚拟主机

NameVirtualHost 220.202.19.82
<VirtualHost 220.202.19.82>;
    DocumentRoot /home/down
    ServerName down.sy165.cn
</VirtualHost>;

重启Apache2服务器
接下就是做一个 .htaccess 文件了,其 .htaccess 文件内容为
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://www.sy165.cn/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://www.sy165.cn$      [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp|rar|zip|exe)$ http://www.sy165.cn/err.htm [R,NC]

将这个文件放到/home/down目录下
RewriteCond %{HTTP_REFERER} !^http://www.sy165.cn/.*$      [NC]
只允许通过www.sy165.cn/*才能下载down.sy165.cn下的文件。
RewriteCond %{HTTP_REFERER} !^http://www.sy165.cn$      [NC]
只允许通过www.sy165.cn才能下载down.sy165.cn下的文件
RewriteRule .*\.(jpg|jpeg|gif|png|bmp|rar|zip|exe)$ http://www.sy165.cn/err.htm [R,NC]
jpg|jpeg|gif|png|bmp|rar|zip|exe是要保护的内容,如果岛连接将跳转到http://www.sy165.cn/err.htm

测试地址可以通过http://www.sy165.cn下载CS1.6 标准版3147版下载
不能直接通过URL:http://down.sy165.cn/game/CS_16_3174.exe 下载
兄弟写的不错

希望多多交流
辛苦啦~~  好文章,顶一个~~
: )

[Copy to clipboard] [ - ]
CODE:
wget --referer=http://www.sy165.cn http://down.sy165.cn/game/CS_16_3174.exe

其实在配置文件里直接加入如下配置应该就可以了吧:

<Directory /home/down>;
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://www.sy165.cn(/.*)?$      [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp|rar|zip|exe)$ http://www.sy165.cn/err.htm [R,NC]
</Directory>;

我没试,应该是可以的。
一个就是可以直接写到Directory里,我的apache的.htaccess项都关掉了,不然多少会慢一些的。另外就是条件里的正则合并一下就成了。
[quote]原帖由 "wwy"][/quote 发表:


人家的目的也就是防止一般盗链,你这种比较特殊
问一下,如果模块加载不指定为share的话,是不是在modules目录下看不到so文件?那么模块文件在哪里?
挺实用的
学习了,支持一下。
不错不错,学习了,支持一下