联系我们

4000 555 018
(7×24)
正睿服务器  >  新闻中心  >  技术文章
新闻中心

目录保护机制提高Apache服务器安全

间隙填充
正睿科技  发布时间:2009-05-31 09:15:14  浏览数:3531

  当大家在访问一些企业门户网站的时候,后续会发现当打开某些特定连接的时候,需要输入用户名与密码才能够访问。如下图是某个门户网站的一个页面,其需要凭借用户名与密码才能够访问特定的资源。这可以提高企业Web服务器资源的安全。那么这是如何实现的呢?各种Web服务器基本上都有类似的功能。笔者现在就以Linux操作系统上的Apache服务器为例,谈谈其如何结合Linux操作系统来实现类似的配置。

  在Apache服务器中,这个安全认证机制叫做目录保护机制。当某个用户访问网页中的某个连接时,会出现一个对话框,告诉用户在登陆这个目录时,需要输入帐号和密码才能够登陆。通过Apache服务器提供的目录认证保护机制可以实现这个功能。笔者之所以推荐这种解决方法,主要是因为其弹性比较大,而且使用配置起来也比较方便。如不需要些任何程序控制就可以限制某些帐号及密码进入受保护的目录,使得一些特定的网络数据只有注册用户才能够存取。

  现在现在某个网站中http://www.test.com/test目录中的资源只有特定的用户才能够访问。为此网络管理员就需要给这个目录采用特殊的保护机制。下面笔者就一步步的对这个过程进行详细的描述,以帮助各位读者能够尽快采用这个目录认证保护机制来保护网站上的特定资源。

  第一步:建立相关的目录。

  为了变与网站资源的管理,最好能够把需要限制用户的资源放置在特定的目录中。如此的话,系统管理员就可以针对特定的目录来设置认证保护机制,而不需要根据一个个资源来进行设置。为此,系统管理员首先需要在系统中建立相关的目录。不过在建立这个目录之前,还必须了解Apacle服务器的目录结果。即需要了解其http://www.test.com/test目录在系统中对应的位置。默认情况下,其test目录存储的位置应该在/srv/test/目录下。为此系统管理员可以在/srv/test/目录下建立test目录。然后把需要进行访问限制的资源都放置在这个目录中。另为为了后续管理的方便,对于这个目录中的资源最好能够建立一个页面进行连接,以方面用户通过连接来访问相关的资源。当然这些连接要采用html格式来建立。

  第二步:把这个目录中的资源关联到网站主页上。

  在门户网站中,大部分资源都是公开开发的。也就是说,即使不是注册用户或者收费用户或者企业的员工,也是可以访问的。而只有一些特定的资源才会进行有限制的访问。所以,这里需要注意的是,要把刚在在目录中建立的html文件关联到门户网站的主页上。让用户可以通过主页上的连接来进入到相关的页面。如可以通过图形化工具,也可以在命令行下通过echo指令在主页上建立与刚才目录的对应关系。当用户点击这个连接时,如果采用了目录保护机制,那么就会提示用户输入用户名与密码。只有输入了合法的用户信息,才会被用户访问。否则的话,就会被拒之门外。

  第三步:设置目录保护机制。

  安装完Apache服务器之后,默认情况下其安装目录下会有一个default-server.conf配置文件。这个文件中就保存着Apache服务器的大部分配置参数。作为系统管理员,要对这个配置文件有非常深刻的认识。现在要进行目录保护机制,也是在这个配置文件下完成的。在对这个配置文件进行修改之前,为了保险起见,最好能够先对这个配置文件进行备份。这可以放置因为修改配置错误而导致Apache服务器无法使用。笔者再次强调一下,对于Linux操作系统中的所有配置文件进行修改之前,最好都能够对其进行备份。系统管理员在这方面不要太过于自信。认为自己水平比较高,不会改错的,就在没有备份之前就放心大胆的更改了。老马也有失前蹄的时候。像笔者有多年Linux操作系统管理经验的老手,仍然会逼着自己去这么做。虽然往往这个备份是多余的,但是这个保险还是要买的。

  默认情况下,Apache服务器是不会对任何目录采取保护认证机制。如果需要对某个目录采用这个保护措施的话在,则系统管理员需要编辑这个配置文件,并在文件的最后加入如下语句: AllowOverride authconfig 即可。在书写这个目录的时候,需要注意几个方面的内容。首先是一个配对的关键字,即要以开头,然后以结尾。有些系统管理员在编写这条语句时,最容易犯的错误就是最后的这个关键字会忘记写,从而导致Apache服务器无法正确读取这个配置文件,从而发生故障。其次,就是需要注意,在引号里面需要输入需要保护的目录信息。在输入目录的时候,需要利用英文状态下的双引号引用起来。另外需要注意的是,在Linux操作系统下目录与文件其大小写都是敏感的。为此在这里输入路径的时候,大小写字符也是敏感的。如果把小写的目录名字写成了大写,则服务器会提示找不到相关目录的错误信息。而在测试时,系统管理员也会发现相关的配置不起作用。所以,系统管理员需要注意,这个大小写的问题。一般情况下,系统管理员自己创建的目录与文件名最好都采用小写,这对于后续的维护也是很方便的。

  另外需要注意的是,当修改了这个配置文件后,并不会马上生效。系统管理员需要重新启动操作系统或者重新启动Apache服务器后才能够生效。通常情况下,系统管理员只需要利用明亮rcapache2 restart命令重新启动apache设定文件即可,而不需要重新启动服务器。

  第四步:设置对话框的提示信息。

  当用户打开受限制的目录时,系统会弹出一个对话框,提示用户输入用户名与密码等等。对于这个窗口的显示格式、所采用的认证方式等等,系统管理员可以根据自己的需要进行自定义。这个自定义的方式也很简单,不需要管理员通过编写代码来完成额。而只需要更改.htaccess文件中的相关配置参数计可。系统管理员需要在受保护的目录下产生一个.htaccess文件,并在这个文件中设置显示在窗口上面的提示符、身份认证的类型、帐号密码文件存储的位置等等信息。一般情况下,我们可以从网络上下载一个模板,然后根据实际情况修改相关的内容即可。

  另外,需要注意的是,虽然这里建立了密码文件存储位置,但是并没有建立密码文件。系统管理员需要手工来创建密码文件。还好这个建立比较简单,只需要利用一个命令htpasswd2 ?c命令即可。在设置密码文件保存位置的时候,为了其安全起见,最好能够把其保存在一个比较安全地方。以防其泄露而给企业造成不可估量的损失。其次默认情况下用户名与密码都是大小写敏感的。如SA01与sa01就是属于两个不同的用户名。为了避免这种困扰,笔者建议最好用户名与口令都采用小写,以简化用户的输入。不过对于一些安全性要求比较高的网页,则可以通过采用大小写混用的用户名与密码来提高其安全性。所以这个安全性与便利性之间往往难以平衡。系统管理员需要根据实际的需要,在其中进行抉择。

  最后笔者强调一下,在Apache服务中的目录保护机制,是针对目录设置的,而不是针对特定的网页。这就提高了其灵活性。如同一个网页上的资源,如果保存在不同的目录中(其中一些保存在受保护的目录中),那么就可以实现对于部分资源实现受限访问。这在实际部署中,非常的有用。如在培训网站上,某些试听的课程是免费开放的;而其他课程则是只有收费用户才能够访问。为此只需要把这些课程放置在不同的目录中就可以实现。而不需要设置不同的网页进行控制。这可以在很大程度上降低系统管理员的工作量。

  • 正睿合作伙伴
  • 社区
首页 | 注册 | 网站地图 | 通告 | 联系我们
CopyRight(C)2004-2022 Chongqing Zhengrui Technology Co.,Ltd. All rights reserved.
重庆正睿科技有限公司(C)版权所有 未经书面授权 不得转载、复制或建立镜像
渝ICP备11002339号-1  渝公网安备 50010702500475号