免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2493 | 回复: 5
打印 上一主题 下一主题

用APACHE搭建的WEB平台,如何争对单一文件或者目录加密 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-03 01:46 |只看该作者 |倒序浏览
请前辈,推荐一些文章,看看,谢谢。

论坛徽章:
0
2 [报告]
发表于 2007-09-03 15:35 |只看该作者
1、VI编辑Apache Server配置文件,确保文件中如下两句话没有加注释,如果这两句话前有”#”符号,去掉”#”号。

  AccessFileName . htaccess
  AllowOverride All

  2、passwd程序创建用户文件:

  htpasswd - c /usr/httpd/secrects/.htpasswd gamesh

  其中,-c表示选项告诉htpasswd你想生成一个新的用户文件, /data/web/apache/secrects/ 是你想存放 .htpasswd 文件的目录,文件名称为 .htpasswd,gamesh 是在验证时所用到的用户名,敲如以上命令后,系统提示你输入密码,这个密码就是验证时所需要用到的密码,该密码在 .htpasswd 文件中是加密的。现在用more来查看 /data/web/apache/secrects/.htpasswd文件,可以看到其中有一行用户名和一串加密密码。

  3、创建 .htaccess 文件:

  在需要限制的目录下创建 .htaccess 文件,在文件中加入如下语句:

  AuthName “用户验证”
  AuthType Basic
  AuthUserFile /usr/httpd/secrets/.htpasswd
require user gamesh

  保存所做操作后,再去看目录,将提示验证窗口,输入刚用 htpasswd 命令创建的用户名和密码,即可进入该目录。

二、增加基于主机的访问控制:

在修改了目录名和增加访问验证机制后,应该说现在的phpMyAdmin已经很安全了,但由于phpMyAdmin 目录一般只是数据库管理员使用,为防止别人还知道目录名称和验证密码,还可以增加如下的基于主机的访问控制,基于主机的访问是通过验证用户机器IP来实现的,即只有符合条件的IP才可以反问该目录,否则拒绝访问。

修改 .htaccess 文件如下:

  AuthName “用户验证”
  AuthType Basic
  AuthUserFile /data/web/apache/public/htdocs/phpMyAdmin/.htpasswd
require user gamesh

  order deny,allow
  deny from all
  allow from 202.100.222.80

  这里增加了三条基于主机访问控制指令,其中第一条 order 指令的值是由一个逗号隔开的名单,这个名单表明了哪一个指令更高的优先权,第二条指令 deny 定义不能访问该目录的主机,第三条指令 allow 定义可以访问该目录的主机,这样,该目录除了IP地址为 202.100.222.80 的机器可以访问该目录之外,其他的都不能访问,读者可以把该地址该为用户数据库管理员IP。

论坛徽章:
0
3 [报告]
发表于 2007-09-03 15:36 |只看该作者
详细可以上 www.apache.org官方网站查看

论坛徽章:
0
4 [报告]
发表于 2007-09-03 15:44 |只看该作者
今天又被这两个参数小小的耍了一把,痛下决心整理一下,免得再被耽误时间。

Allow和Deny可以用于apache的conf文件或者.htaccess文件中(配合Directory, Location, Files等),用来控制目录和文件的访问授权。

所以,最常用的是:
Order Deny,Allow
Allow from All

注意“Deny,Allow”中间只有一个逗号,也只能有一个逗号,有空格都会出错;单词的大小写不限。上面设定的含义是先设定“先检查禁止设定,没有禁止的全部允许”,而第二句没有Deny,也就是没有禁止访问的设定,直接就是允许所有访问了。这个主要是用来确保或者覆盖上级目录的设置,开放所有内容的访问权。

按照上面的解释,下面的设定是无条件禁止访问:
Order Allow,Deny
Deny from All

如果要禁止部分内容的访问,其他的全部开放:
Order Deny,Allow
Deny from ip1 ip2
或者
Order Allow,Deny
Allow from all
Deny from ip1 ip2

apache 会按照order决定最后使用哪一条规则,比如上面的第二种方式,虽然第二句allow允许了访问,但由于在order中allow不是最后规则,因此还需要看有没有deny规则,于是到了第三句,符合ip1和ip2的访问就被禁止了。注意,order决定的“最后”规则非常重要,下面是两个错误的例子和改正方式:

Order Deny,Allow
Allow from all
Deny from domain.org
错误:想禁止来自domain.org的访问,但是deny不是最后规则,apache在处理到第二句allow的时候就已经匹配成功,根本就不会去看第三句。
解决方法:Order Allow,Deny,后面两句不动,即可。

Order Allow,Deny
Allow from ip1
Deny from all
错误:想只允许来自ip1的访问,但是,虽然第二句中设定了allow规则,由于order中deny在后,所以会以第三句deny为准,而第三句的范围中又明显包含了ip1(all include ip1),所以所有的访问都被禁止了。
解决方法一:直接去掉第三句。
解决方法二:
Order Deny,Allow
Deny from all
Allow from ip1

论坛徽章:
0
5 [报告]
发表于 2007-09-03 15:47 |只看该作者
1、修改httpd.conf
  假设你想控制/usr/local/apache/htdocs下各目录的不同访问权限,你可以在与之间加入一行:

AllowOverride All

  意思是在/usr/local/apache/htdocs下不同目录的访问权限由该目录下的.htaccess文件来控制,而且不同目录的权限策略可互相覆盖。需要注意的是,在httpd.conf文件中要将所有涉及到该文件夹(以及父文件夹)的权限都设置为 AllowOverride All !!!! 这点很重要,否则会发现设置好的权限控制不起作用。

2、编辑你想要控制的目录下的.htaccess文件
  假设你的phpmyadmin目录在/usr/local/apache/htdocs下,你可以这样在/usr/local/apache/htdocs/phpmyadmin/目录下创建一个.htaccess文件,内容如下:

AuthUserFile /usr/local/apache/htdocs/phpmyadmin/.htpasswd
AuthType Basic
AuthName "Protected Area"
ErrorDocument 401 /catchErrors/err_401.html
require valid-user


该文件说明了几个问题:
(1) 用户信息存放在/usr/local/apache/htdocs/phpmyadmin/.htpasswd中.
(2) 认证类型为基本型(此外还有一些其他的加密类型).
(3) ErrorDocument 所指向的html文件.
(4) 认证方式:用户认证(valid-user)或组认证(valid-group).

3. 生成用户密码文件
有一个用户密码生成程序:htpasswd(在/usr/local/apache/bin下), 它可以生成加密过的密码(好像是MD5加密),使用方法如下:

htpasswd -nb test 123456

这样就生成了一对用户名和密码,用户名为test,密码为123456,不过显示出来的密码是经过加密的,我们需要把这个加密的密码保存起来,在 /usr/local/apache/htdocs/phpmyadmin/下新建一个.htpasswd文件,将上面那行命令所生成的代码拷到文件中,保存退出即可。当然,好像htpasswd这个命令是可以直接将密码写入文件的,但我没有仔细研究,呵呵

4. 重起apache deamon
/usr/local/apche/bin/apachectl restart

5. 测试
用IE浏览受保护的页面,如http://ip/phpmyadmin/ (可能需要refresh几次才能凑效),这时应该出现一个身份认证窗口,你需要输

论坛徽章:
0
6 [报告]
发表于 2007-09-03 19:07 |只看该作者
哭谢了~~~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP