Apache中实现身份验证和访问控制

  Linux不仅是UNIX操作系统的优秀例子,它还为实现和检查与CIW安全专家考试相关的许多安全概念提供了条件。在这个练习中,可以对 Red Hat Linux系统的Apache Web服务器的目录执行访问控制。使用.htaccess访问文件和htpasswd程序为一个日录建立ACL。这个目录称为/acltest.
  1.以root身份登录Linux系统。
  
  2.检查是否安装了Web服务器:
  host# rpm -qa | grep apache
  hostft apache-1.3.9-4
  
  3.如果任何有关Apache服务器的信息被返回,说明已安装过了。如果没有安装,从下列其中一个网站获取Apache Red Hat Package Manager(RPM):
  http: //www.rpmfind.net
  http: / /www.apache.org
  
  4.打开一个浏览器,看http是否在运行,或使用下列命令:ps aux |grep httpd。既然已经知道httpd已在运行,改变到根目录下:cd /
  
  5.建立一个名字为acltest的目录,这就是你将进行访问控制的目录.
  mkdir acitest
  
  6.使用chmod命令,使得此目录的所有者是名字为apache的用户和名字为apache的组.同样,允许名字为apache的用户对此目录的权限为可读和可执行.
  host# chown apache acltest/
  host# chgrp apache acltest/
  host# chmod 500 acltest/
  
  7.使用cd命令改变到acltest目录下,使用touch命令在acltest目录下建立一个名为index.htm的文件,你需要这个文件,否则,Apache服务器不允许访问这个目录.
  touch index.html
  
  8.使用文本编辑器如vi,输入下列代码到index.html文件中:
  
  
  
  
  
  This is a secret page
  
  
  
  9.先按Esc键,然后输入ZZ(确保都是大写字母)保存这个文件的变化并退出.这一系列命令由vi保存所做的变化.
  
  10.你已经建立了一个简单的HTML文件,下一步,要编写Apache服务器程序识别这个新目录,这样你就可以在浏览器中看到它.改变到/etc/httpd/conf目录下:
  Cd /etc/httpd/conf/
  Red Hat Linuxwgkq/conf/目录.其他版本的Linux和其他Apache的安装可能将配置文件存储在不同的录中,如/var/usr/httpd/conf.
  
  11.使用文本编辑器,打开httpd.conf文件:
  Vi httpd.conf
  
  12.向下滚动屏幕到文件的Aliases部分,然后正确地输入下列代码:
  Alias /acltest  "/acltest"
  
  AllowOverride All
  Order allow/deny
  Allow from all
  
   输入部分的第一行建立一个别名为/acltest。用户输入这个别名进入浏览器。别名指令的语法非常严格。首先,列出别名的名字(如用户输入浏览器的文 本),然后是存在硬盘上的目录名。第二行开始是对硬盘上/acltest目录的一个目录定义。Allow-Override指令允许你指定一个。 htaccess文件,文件中允许定制这个目录的行为。下面两行代码中Apacne服务器允许访问所有的用户,除了.htaccess文件中定义的语句。 最后要结束目录定义。
  若要了解Apacne服务器指令的更多信息,请访问
  http: //httpd.apache.org/docs-2.O/mod/directives .html
  如果URL路径中多包含了一个斜杠(/),表示服务器要求用这个斜线扩展别名。换句话说,如果你使用Alias/acltest//acltest/。则URL/acltest将不由Apache服务器起别名。你将不得不使用反斜线符号/acltest/.
  
  13.一旦你正确输入完新的别名和目录定义后,退出vi并确认保存所做的变化。
  
  14.你只是建立了一个虚拟目录。现在,Apache服务器需要重读它的配置文件,这样你先前建立的新虚拟目录和别名才会起作用。完全停止并重新启动Apache服务器:
  /etc/rc.d/init.d/httpd restart
   只简单地使用kill HUP命令或httpd start命令不会很快起作用,因为Apache服务器是多线程处理各种连接。为保证练习进行得快一些,停止所有httpd进程,然后使用 /etc/rc.d/rc.local/httpd stop命令从根目录重新启动httpd。也可以使用如下killal1命令:killall apache。如果知道Apache的进程ID(PID),还可以使用kill命令。要保证完全停止Web浏览器上的以前的全部实例,它可能会缓存旧的信 息。

        15.打开一个浏览器,如Netscape Navigator或Lynx(一种基于文本的Web浏览器)用来测试工作。你可能希望使用完全资格域名(FQDN),例如,如果使用的FQDN为 myserver.mynetwork.com,则输入下列语句:
  lynx myserver.mynetwork.com/acltest
   如果只使用一个IP地址或服务器的的第一个名字,你不得不输入两次口令,因为Apache服务器认为请求来自它的FQDN,而不是IP地址或相关的(如 部分)DNS名字。如果想改变这种设置,可以通过在httpd.conf中输入ServerName指令。假设服务器名是student1O,则输入下列 语句:
  ServerName myserver
  然后必须重新启动Apacne服务器。因为许多Web浏览器缓存信息,如果有必要,退出并重新启动浏览器以保证能从后台程序读到当前的输出结果。
  
  16.检验此目录工作正常后。准备为它建立一个ACL。改变到/acltest目录下:
  cd/acltest/
  
  17.用touch命令建立一个隐藏文件,名子为.htacess。这个隐藏文件是此资源的ACL.为执行这个操作,在文件名前使用一个点号:
  touch .htaccess
  必须在htaccess文件前添加一个点号,如果不这样做,就无法建立ACL,因为点号表示建立一个隐藏文件。
  
  18.使用vi文本编辑器,打开.htaccess文件。确保文件名前使用了点号,否则,你会打开一个名字为htaccess的新文件,而不是你实际想编辑的隐藏文件.htaccess:
  vi .htaccess
  
  19.输入下列代码
  AuthUserFile /apachepasswd/ .htpasswd
  AuthGroupFile /dev/null/
  AuthName "My secret directory"
  AuthType Basic
  require valid-user
  
  20.你刚刚建立了一个允许使用ACL的文件。这个被编辑过的文件必须在你所希望限制访问(/acltest)的目录中存在。AuthName语句用于指定文本,帮助用户知道在服务器的什么地方进行验证。现在退出这个文件,确保保存所做的改变。
  
  21.下一步,你要建立一个新的用户账号数据库,Apache服务器用它识别验证用户。这个数据库将是ACL,它是与/etc/passwd或/etc/shadow分隔开的用户数据库。第一步,建立数据库所在的目录:
  Mkdir/apachepasswd
  可以给这个目录起任何名字,在这个练习中使用/apache passwd.
  
  22.让/apache passwd目录的所有者是名字为apache的用户和名字为apache的组。同样,允许名字为apache的用户对此目录的权限为可读和可执行,如下所示:
  host# chown apache apachepasswd/
  hosttt chgrp apache apachepasswd/
  host# chmod 500 apachepasswd/
  
  23.输入下列命令建立用户身份验证数据库。会立即要求你为新用户wennseri设置口令,设置口令为:passwords
  htpasswd -c /apachepasswd/.htpasswdwebuserl
  New password:
  Re-type new password:
  
   24.目前,你已经在/apachepasswd目录下建立了一个名为.htpasswd的文件,并用名字为webuseri的用户填充它。你还给这个 用户设置了口令。现在,要为这个数据库填充其他用户账号。名字为webuser2、webuser3和webuser4。当创建其他用户时,不能像上面一 样使用-C选项。要确保你没有使用向上的箭头键。每次使用htpasswd命令就会建立一个新的账号,然后要求你立刻设置新口令让所有的账号都使用 password作为口令:
  host@ htpasswd /apachepasswd/.htpasswd webuser2
  New password:
  Re-type new password:
  再次强调,不要在htpasswd命令后使用-C选项,因为这样做会删掉现有的文件并重建一个新的文件。
  目前,你已经为Apache服务器建立了一个用户账号数据库。
  
  25.现在。从你的X-Window系统使用一个浏览器,如Lynx或Netscape Navigator(或来自于独立的Windows2000系统的浏览器),通过/acltest别名访问/acltest/目录。
  
   26.你应该被提示输入口令,如果没有,就要确认是否正确建立了虚拟目录和为.htpasswd文件指定了合适的位置。检查你的.htaccess文 件,它应该被隐藏(名字前面应该有个点号)。还应包含第19步中的代码。最后,你要确认使用了FQDN,保证浏览器不是简单地给你缓存中的信息。
  
  27.现在,使用下列命令:
  tail /var/log/httpd/access_log
  你应该看到哪些人访问了Weh服务器的纪录。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值