分享
 
 
 

请教:使用apache2web服务器,如何使打开某一页面时需要密码认证

王朝厨房·作者佚名  2007-01-05
窄屏简体版  字體: |||超大  

才能浏览该页面

QSECOFR 回复于:2004-04-27 19:40:40

Apache用户认证方法汇总

http://www.chinaunix.net 作者:南非蜘蛛 发表于:2003-01-16 13:34:28

http://sinbad.dhs.org 作者:吴阿亭

一.基本的Apache用户认证方法:

若对某一目录下的文件如/home/ftp/pub需要做到用户认证,则在httpd.conf

中加入下面的行

<>

optionsindexesfollowsymlinks

allowoverrideauthconfig

orderallow,deny

allowfromall

<>

用在目录/home/ftp/pub下放文件.htaccess,内容如下:

authname"sharedfiles"

authtypebasic

authuserfile/etc/.passwd

requirevalid-user

用随Apache来的程序htpasswd生成文件/etc/.passwd,每行一个用户名:密码

只要能提供正确的用户名和密码对,就允许登录访问,这是针对任何地址来的

请求都要求提供用户名和密码认证。

二.针对部分网段或地址要求认证。

若公司LAN所在网段为192.168.0.0/24,且有一防火墙专线接入Internet,

内部网卡的地址为192.168.0.1/32,则现在希望所有通过拨本地163通过

防火墙上的apache反向代理向LAN上的另一WWW服务器访问时需要认证,而本地

LAN上的用户不需认证。可以在httpd.conf中放入:

〈Directory/home/ftp/pub>

OptionsIndexesFollowSymLinks

AllowOverrideAuthConfig

orderdeny,allow

denyfrom192.168.0.1

〈/Directory>

且在/home/ftp/pub/.htaccess中放入:

AuthName"sharedfiles"

AuthTypeBasic

AuthUserFile/etc/.passwd

requirevalid-user

satisfyany

三.对同一目录及其下的子目录有不同的权限,仅某些人可以存取一目录下的

子目录。

如有一目录/home/ftp/pub/sales,有三个用户user1,user2,user3都需要用户名

和密码进入/home/ftp/pub,但仅user1,user2能进入/home/ftp/pub/sales.则

放下面的行到httpd.conf

〈Directory/home/ftp/pub>

OptionsIndexes

AllowOverrideAuthConfig

orderallow,deny

allowfromall

〈/Directory>

〈Directory/home/ftp/pub/sales>

OptionsIndexes

AllowOverrideAuthConfig

orderallow,deny

allowfromall

〈/Directory>

且看/home/ftp/pub/.htaccess为:

AuthName"sharedfiles"

AuthTypeBasic

AuthUserFile/etc/.passwd

requirevalid-user

且看/home/ftp/pub/sales/.htaccess

AuthName"sharedfiles"

AuthTypeBasic

AuthUserFile/etc/.passwd

AuthGroupFile/etc/.salesgroup

requiregroupmanager

且文件/etc/.passwd内容为:

user1:passwd1

user2:passwd2

user3:passwd3

且文件/etc/.salesgroup内容为:

manager:user1user2

wuerhe 回复于:2004-04-28 16:51:05

为什么照楼上做不行呢,提示如下:

但页面是真实存在的。

Object not found!

The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.

If you think this is a server error, please contact the webmaster.

Error 404

xxx.xxx.xxx.xx

Wed Apr 28 16:48:11 2004

Apache/2.0.46 (Unix) DAV/2 PHP/4.3.4

wuerhe 回复于:2004-04-28 16:54:40

是不是apache2 有些特殊的地方呢?

icekernel 回复于:2004-04-28 21:33:17

启用认证

先介绍用密码来保护服务器上的目录。

首先需要建立一个密码文件。这个文件应该放在不能被网络访问的位置,以避免被下载, 例如,如果,/usr/local/apache/htdocs以外的空间不能被网络访问, 那么可以考虑把密码文件放在/usr/local/apache/passwd目录中。

Apache在其安装目录的bin子目录中提供了叫htpasswd的工具,以建立密码文件,可以这样使用:

htpasswd -c /usr/local/apache/passwd/passwords rbowen

htpasswd会要你输入密码,并要求重新输入以确认:

# htpasswd -c /usr/local/apache/passwd/passwords rbowen

New password: mypassword

Re-type new password: mypassword

Adding password for user rbowen

如果htpasswd不在搜索路径中,则必须使用完整路径, 如,/usr/local/apache/bin/htpasswd

然后,需要修改httpd.conf或.htaccess文件, 以指示服务器允许哪些用户访问并向用户索取密码。 例如,要保护 /usr/local/apache/htdocs/secret 目录, 则可以将下列指令写入 /usr/local/apache/htdocs/secret/.htaccess, 或者httpd.conf的 <Directory /usr/local/apache/apache/htdocs/secret> 段。

AuthType Basic

AuthName "Restricted Files"

AuthUserFile /usr/local/apache/passwd/passwords

Require user rbowen

其中,AuthType指令选择了对用户实施认证的方法, 最常用的是由mod_auth提供的Basic。 很重要的必须认识到的一点是,Basic认证方法并不加密来自用户浏览器的密码, 因此,不应该用于高度敏感的数据。Apache在最近的版本中还有另一种更安全的认证方法, 即由mod_auth_digest提供的AuthType Digest。

AuthName指令设置了使用认证的领域, 它起两个作用,首先,此领域说明会出现在显示给用户的密码提问对话框中, 其次,也帮助客户端程序确定应该输入哪个密码。

所以,如果一个用户已经在"Restricted Files"领域通过了认证, 则客户端就可以尝试使用"Restricted Files"的密码来访问同一个服务器的其他任何领域, 从而使多个受限领域共享密码,以避免用户重复输入。 当然,考虑到安全,如果服务器变了,客户端始终会要求重新输入密码。

AuthUserFile指令设置了密码文件, 也就是刚才我们已经用htpasswd建立的。 如果用户很多则认证速度会很慢,因为对每个请求都必须搜索这个纯文本文件, 对此,Apache还支持把用户信息存入快速数据库, mod_auth_dbm模块提供了指令AuthDBMUserFile, 并可以用dbmmanage程序建立和操作这些数据库。 Apache模块数据库中还提供了其他许多认证选项。

最后,Require指令设置了允许访问的用户, 下一节将对Require指令作详细说明。

允许多人访问

上述指令只允许一个人(一个叫rbowen的用户)访问这个目录, 但是多数情况下,都需要允许多人访问,所以就要用到AuthGroupFile。

首先,需要建立一个组文件以确定组中的用户。 其格式很简单,可以用你喜欢的编辑器建立,例如:

GroupName: rbowen dpitts sungo rshersey

它只是每组一行的一个用空格分隔的组成员列表。

向已有的密码文件中增加一个用户,可以输入:

htpasswd /usr/local/apache/passwd/password dpitts

程序的提示和上面的一样,但是,它会附加到已有的文件中, 而不是建一个新的(参数-c可以强制建立新的密码文件)。

现在,需要修改.htaccess文件如这样:

AuthType Basic

AuthName "By Invitation Only"

AuthUserFile /usr/local/apache/passwd/passwords

AuthGroupFile /usr/local/apache/passwd/groups

Require group GroupName

如此,GroupName组中的成员都在密码文件中有一个相应的记录, 从而允许他们输入正确的密码以进入。

除了建立组文件,还有另一种途径允许多人访问,即使用如下指令:

Require valid-user

使用上述指令,而不是require user rbowen, 可以允许密码文件中的所有用户以正确的密码进行访问。 这里甚至允许列举各个组,而为每个组建立密码文件, 其优点是,Apache只需要校验一个文件,而缺点是,必须维护众多密码文件, 而且要确保AuthUserFile指令指定了一个正确的密码文件。

可能的问题

由于采用了Basic认证的方法, 每次向服务器请求甚至刷新一个受保护的页面或图片时都必须校验用户名和密码, 为此,必须打开密码文件并逐行搜索用户名,因此,服务器响应速度会受一些影响, 其程度与密码文件大小成正比。

所以,对密码文件中的用户总数存在一个实际上的上限, 此上限取决于特定的服务器机器的性能,但是一般有几百个用户就会对响应速度有明显的影响, 在这种情况下,可以考虑用其他认证方法。

其他认证方法

基于用户名和密码的认证只是方法之一,时常会有不需要知道来访者是谁, 只需要知道来自哪里的情况。

Allow和Deny指令可以允许或拒绝来自特定主机名或主机地址的访问, 同时,Order指令告诉Apache处理这两个指令的顺序, 以改变过滤器。

这些指令的用法:

Allow from address

这里的address可以是一个IP地址(或者IP地址的一部分), 也可以是一个完整的域名(或者域名的一部分),还可以同时指定多个IP地址和域名。

比如,要拒绝兜售垃圾的站点:

Deny from 205.252.46.165

如此,这个指令所管辖的区域将拒绝来自该地址的访问。 除了指定IP地址,也可以指定域名,如:

Deny from host.example.com

另外,还可以指定地址或域名的一部分来阻止一个群体:

Deny from 192.101.205

Deny from cyberthugs.com moreidiots.com

Deny from ke

Order可以组合Deny和Allow指令, 以保证在允许一个群体访问的同时,对其中的一些又加以限制:

Order deny,allow

Deny from all

Allow from dev.example.com

上例首先拒绝任何人,然后允许来自特定主机的访问。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有