UnixAgain

热爱Unix及相关的一切

博客园 首页 联系 订阅 管理
一、使用访问控制常用配置指令进行访问控制
1. 配置指令:
  • order:用于指定执行允许访问控制规则或者拒绝访问控制规则的顺序。order只能设置为:
    • Order allow, deny:缺省禁止所有客户机访问,且allow语句在deny之前被匹配。如果某条件同时匹配两条语句,则deny语句会起作用(覆盖)
    • Order deny, allow:缺省允许所有客户机访问,且deny语句在allow之前被匹配。如果某条件同事匹配两条语句,则allow语句会起作用(覆盖)
  • allow:指明允许访问的地址或地址序列。如allow from all指令表明允许所有IP的访问请求
  • deny:指明禁止访问的地址或地址序列。如deny from all指令表明拒绝所有IP的访问请求
2. 应用实例:
  • 拒绝除了pactera.com域之外的一切访问请求
Order deny, allow
Deny from all
Allow from pactera.com
 
  • 允许除了pactera.com域之外的所有一切访问请求
Order allow, deny
Allow from all
Deny from pactera.com
二、使用.htaccess文件进行访问控制
1. 在httpd.conf中启用对.htaccess文件的使用
AceessFileName .htaccess
<Files ~ "^\.htaccess">
     Order allow, deny
     Deny from all
     Satisfy All
</Files>
2. 在.htaccess文件中使用指令进行控制
     要限制.htaccess文件能够覆盖的内容,要使用AllowOverride指令。该指令可以进行全局设置或者单个目录设置。要配置没人可以使用的 选项,要使用Options指令。例如,在httpd.conf文件中,可以采用上述指令建立对/var/www/icons目录的访问控制权限的清单
<Directory "/var/www/icons">
     Options Indexes MultiViews
     AllowOverride None
     Order allow, deny
     Allow from all
</Directory>
3. AllowOverride指令介绍
     该指令指定.htaccess可以覆盖的想想。可以对每个目录进行设置。例如可以对主要文档root和UserDir有不同的标准。该功能对于用户目录特别游泳,在这些目录中用户没有访问主服务器配置文件的权限。
     可选项有:
    • Options:文件可以为该目录添加没有在Options指令中列出的选项
    • FileInfo:.htaccess文件包含修改文档类型的信息
    • AuthConfig:.htaccess文件可能包含验证指令
    • Limit:.htaccess文件可能包含allow、deny、order指令
    • Indexes:控制目录列表方式
    • None:禁止处理.htaccess文件
    • All:表示读取以上所有指令内容
4. Options指令介绍
     Options选项可以指定为 None、All或者任何Indexes、Includes、FollowSymLinks、ExecCGI或者MultiViews的组合。MultiViews不包含在All中,必须显式指定。
     可选项:
    • None:该目录没有启用任何可用的选项
    • All:该目录启用了所有选项,除了MultiViews
    • Indexes:当Index.html文件或者另一个DirectoryIndex文件不存在时,目录中的文件列表将作为HTML页产生,显示给用户
    • Includes:该目录允许服务器侧包含(SSI)。如果允许包含但是不允许在包含中有exec选项,则可以写为IncludesNoExec。基于安全的原因,对于没有完全控制权限的目录,如UserDir目录,该选项是一个很好的主意
    • FollowSymLinks: 允许访问符号链接到文档目录的目录。这种方法不好,不要将整个服务器全部设置为该选项。对某个目录可以这样设置, 但是在仅当有足够的理由时才这样设置。该选项是一个潜在的安全隐患,因为允许Web用户跳出文档目录以外,并且可能潜在地允许用户访问文件系统的分区,而 这些地方是不希望其他人访问的
    • ExecCGI:即使该目录不是ScriptAlias化的目录,也在其中允许CGI程序
    • MultiViews:该选项是mod_negotiation模块的一部分。当客户请求的文档没有找到时,服务器试图计算最适合客户请求的文档
5. 使用.htaccess文件实例
     例如在httpd.conf中添加
<Directory "/var/www/html/acltest">
     AllowOverride Options
</Direcotry>
在测试目录下添加.htaccess文件
Options -Indexes
     这样之后该acltest目录下的文件就不再可以访问了。
三、认证、授权核访问控制
     本节讨论的指令应该被放进主配置文件httpd.conf(通常在<Directory>段)或者针对单个目录的配置文件(.htaccess)中。
  1. 如果希望使用.htaccess文件,则必须设置服务器允许在这些文件中使用认证指令,即用AllowOverride指令指定哪些指令在针对单个目录储的配置文件中有效。例如,如果要使认证可以被覆盖,则需要
Allow AuthConfig
     2.  启用认证
    • 添加第一个用户并生成密码文件:
htpasswd -cb /etc/httpd/conf/user user1 password1
htpasswd -c /etc/httpd/conf/user user1
New password:(此处输入密码,不会输出到屏幕上)
    • 继续在同一个密码文件中添加用户:
htpasswd -b /etc/httpd/conf/user user2 password2
htpasswd /etc/httpd/conf/user user1
New password:(此处输入密码,不会输出到屏幕上)
    • 删除用户:
htpasswd -D /etc/httpd/conf/user user
 
说明:
-c 生成一个新的密码文件
-b 在命令行写密码而不是用弹出对话框的方式(不建议,因为会在命令行输入明文密码)
-D 删除用户,需要在其后指定密码文件
 
posted on 2014-01-01 23:21  UnixAgain  阅读(602)  评论(0编辑  收藏  举报