`
fantasyeye
  • 浏览: 64048 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

apache WebDAV 服务器配置指南

 
阅读更多

WebDAV服务器部署指南

引语

话说WebDAV(Web-based Distributed Authoring and Versioning )是"网络分布式创作与版本管理"的简称,个人感觉WebDAV更像是以"HTTP请求"形式工作的文件服务器。更成熟的版本控制系统可以考虑基于 WebDAV协议开发的Subversion,近些时日折腾WebDAV纯属兴趣之作。如果你阅读了这篇技术文章有什么疑问可以随时留言询问。我会尽量在 最短的时间内予以作答的。

概要

这篇文章阐述了如何在windows平台Apache服务器上部署WebDAV及与其访问权限控制。逐步介绍了两种认证类型及与其两种认证支持模块和目录 及文件访问控制、操作权限的配置方法:两种HTTP认证类型分别为"基本认证(Basic Authentication)"和"摘要认证(Digest Authentication)";两种认证类型的认证支持分别为file和dbm,当然还有其他认证支持(比如DBD和LDAP);目录访问控制主要介 绍了Directory和Location配置指令,文件访问控制则介绍Files配置指令,验证介绍了require配置指令;目录和文件的操作权限则 介绍limit、limitExcept配置指令和HTTP协议所定义的各种操作方法。最后将其所有综合应用来实现我们的各种需求。

所需资源

Apache Web服务器

以下列出所需使用的Apache模块

认证类型模块

mod_auth_basic 提供HTTP基本认证支持

指令集简要
  1. AuthBasicAuthoritative 指令指定是否将(基本)认证和授权操作交由更底层的模块来处理
  2. AuthBasicProvider指令设置该区域的(基本)认证支持者(Provider)

mod_auth_digest 提供HTTP摘要认证支持

指令集简要
  1. AuthDigestAlgorithm 指令选择在摘要认证中用于计算请求和应答的散列值的算法
  2. AuthDigestDomain 指令在同一保护区域中需要进行摘要认证的URI
  3. AuthDigestNcCheck 指令禁用或启用检查服务器nonce-count发送
  4. AuthDigestNonceFormat 指令定义nonce如何生成
  5. AuthDigestNonceLifetime 指令服务器nonce(当前值)的有效秒数
  6. AuthDigestProvider 指令设置该区域的(摘要)认证支持者(Provider)
  7. AuthDigestQop 指令 指定 摘要认证的保护质量
  8. AuthDigestShmemSize 指令为了跟踪客户端而分配的共享内存字节数

认证支持模块

mod_authn_dbm 使用DBM文件数据库为认证提供支持

指令集简要
  1. AuthDBMType 指令 设置DBM文件数据库类型
  2. AuthDBMUserFile 指令设定一个含有认证使用的用户名/密码列表的DBM文件

mod_authn_default 在未正确配置认证模块mod_auth_basic的情况下简单拒绝一切认证信息

指令集简要
  1. AuthDefaultAuthoritative 指令指定是否将认证操作交由更底层的模块来处理

mod_authn_file 使用纯文本文件为认证提供支持

指令集简要
  1. AuthUserFile 指令设定一个含有认证使用的用户名/密码列表的纯文本文件

授权支持模块

mod_authz_dbm 使用DBM数据库文件为组提供授权支持

指令集简要
  1. AuthDBMGroupFile 指令设定一个包含用于执行用户认证的用户组列表的DBM文件
  2. AuthzDBMAuthoritative 指令指定是否将授权操作交由更底层的模块来处理
  3. AuthzDBMType 指令 设置DBM文件数据库类型

mod_authz_default 在未正确配置授权支持模块mod_authz_user或mod_authz_groupfile的情况下简单拒绝一切授权请求

指令集简要
  1. AuthzDefaultAuthoritative 指令指定是否将授权操作交由更底层的模块来处理

mod_authz_groupfile 使用纯文本文件为组提供授权支持

指令集简要
  1. AuthGroupFile 指令设定一个包含用于执行用户认证的用户组列表的纯文本文件
  2. AuthzGroupFileAuthoritative 指令指定是否将授权操作交由更底层的模块来处理

mod_authz_user 基于require配置指令为每个用户提供授权支持。

指令集简要
  1. AuthzUserAuthoritative 指令指定是否将授权操作交由更底层的模块来处理

WebDAV支持模块

mod_dav 允许Apache提供DAV协议支持

指令集简要
  1. Dav 指令启用WebDAV HTTP协议
  2. DavDepthInfinity 指令允许propfind方法请求深度为无限
  3. DavMinTimeout 指令 服务器为DAV资源保留锁定时间数

mod_dav_fs 为mod_dav访问服务器上的文件系统提供支持

指令集简要
  1. DavLockDB 指令 DAV文件锁定数据库位置

mod_dav_lock 为mod_dav锁定服务器上的文件提供支持

指令集简要
  1. DavGenericLockDB 指令 DAV文件锁定数据库位置(与DavLockDB指令区别是该指令可以作用域于Directory)

其他模块

mod_alias提供从文件系统的不同部分到文档树的映射和URL重定向

指令集简要
  1. Alias 指令 映射URL到文件系统的特定区域
  2. AliasMatch 指令 使用正则表达式映射URL到文件系统
  3. Redirect 指令 发送一个外部重定向使客户端重定向到一个不同的URL
  4. RedirectMatch 指令基于正则表达式匹配对当前的URL发送一个外部重定向
  5. RedirectPermanent 指令发送一个外部永久重定向使客户端重定向到一个不同的URL
  6. RedirectTemp 指令发送一个外部临时重定向使客户端重定向到一个不同的URL
  7. ScriptAlias 指令 映射一个URL到文件系统并视之为CGI脚本
  8. ScriptAliasMatch 指令使用正则表达式映射一个URL到文件系统并视之为CGI脚本

mod_authz_host供基于主机名、IP地址、请求特征的访问控制

指令集简要
  1. Allow 指令 控制哪些主机能够访问服务器的该区域
  2. Deny 指令 控制哪些主机被禁止访问服务器
  3. Order 指令 控制默认的访问状态与Allow和Deny指令生效的顺序

配置流程

在进入配置流程之前你需要自行下载并安装好apache服务器,以及确保我们所需的apache模块存在于apache根目录中默认模块目录modules里等待加载,现在我们直接进入编辑配置文件这个步骤。

启用模块

你需要在apache服务器配置文件中启用所需模块。因为我们即将使用它们。典型的加载模块示例:

# Example:

# LoadModule foo_module modules/mod_foo.so

认证和授权

首先介绍使用纯文本文件来做认证支持,分别列举基本认证和摘要认证的各自做法,以下分别用Basic和Digest标识,接着会介绍使用DBM文件数据库做认证支持。

认证支持

建立用户密码文件

添加或更新用户

若是第一次使用请添加-c选项

  • provider of file for Basic:htpasswd –b passwordFile username password
  • provider of file for Digest:htdigest passwordFile realm username
  • provider of DBM for Basic: htdbm –b –TDBMtype dababase username password
删除用户
  • provider of file for Basic: htpasswd –D passwordFile username
  • provider of file for Digest: 同上
  • provider of DBM for Basic: htdbm –x -TDBMtype database username
查看用户列表
  • provider of file for Basic: for /f "usebackq tokens=1 delims=:" %n in ("passwordFile") do @ echo %n
  • provider of file for Digest: 同上
  • provider of DBM for Basic: htdbm –l -TDBMtype database

建立用户组文件

添加或更新用户组
  • provider of file for Basic:htpasswd –bp groupFile groupName "group1 group2 group3 …"
  • provider of file for Digest:同上
  • provider of DBM for Basic or Digest: htdbm –bp dbgroup groupName "group1,group2,group3,…"
删除用户组
  • provider of file for Basic: htpasswd –D groupFile groupName
  • provider of file for Digest: 同上
  • provider of DBM for Basic or Digest: htdbm –x -TDBMtype dbgroup groupName
查看用户组列表
  • provider of file for Basic: for /f "usebackq tokens=1 delims=:" %n in ("groupName") do @ echo %n
  • provider of file for Digest: 同上
  • provider of DBM for Basic or Digest: htdbm –l -TDBMtype dbgroup

认证和授权支持

使用Directory、 DirectoryMatch、Location、Files、 FilesMatch指令来分别来指定目录、位置、文件以便于制定认证和授权规则,使用Require、Allow、Deny、Limit、LimitExcept和辅助Satisfy指令来制定具体的认证和授权规则。

配置段(容器)

指令简要
  1. Directory封装一组指令,使之仅对文件空间中的某个目录及其子目录生效
  2. DirectoryMatch封装一些指令并作用于文件系统中匹配正则表达式的所有目录及其子目录
  3. Location将封装的指令作用于匹配的URL
  4. LocationMatch 将封装的指令作用于正则表达式匹配的URL
  5. Files包含作用于匹配指定文件名的指令
  6. FilesMatch包含作用于与正则表达式匹配的文件名的指令

核心指令

指令简要
  1. Options 指令配置在特定目录中可以使用哪些特性
  2. AuthName指令用于HTTP认证的授权域
  3. Require指定哪些认证用户允许访问该资源
  4. Allow控制哪些主机能够访问服务器的该区域
  5. Deny控制哪些主机被禁止访问服务器
  6. Order控制默认的访问状态与Allow和Deny指令生效的顺序
  7. Limit仅对指定的HTTP方法进行访问控制
  8. LimitExcept对除了指定方法以外的所有HTTP方法进行访问控制
  9. Satisfy 指定Allow、Deny的访问控制和Require之间的相互关系

操作授权支持

HTTP方法

协议定义的HTTP方法
  1. HTTP协议中定义的方法http://tools.ietf.org/html/rfc2616#section-5.1.1
  2. WebDAV HTTP扩展定义的方法 http://tools.ietf.org/html/rfc2518#section-8
  3. WebDAV访问控制协议中定义的方法权限表http://tools.ietf.org/html/rfc3744#appendix-B
  4. 微软Exchange Server 2003 WebDAV HTTP方法定义请参见http://msdn.microsoft.com/en-us/library/aa142917(v=EXCHG.65).aspx
常用HTTP方法简要说明
  1. GET, 请求指定的页面信息,并返回实体主体
  2. HEAD,只请求页面的首部。
  3. POST, 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体
  4. PUT, 从客户端向服务器传送的数据取代指定的文档的内容
  5. DELETE, 请求服务器删除指定的页面
  6. OPTIONS, 请求获取或检索uri资源相关信息,
  7. PROPFIND, 获取与指定资源有关的信息,如作者、大小与内容类型
  8. PROPPATCH, 设置与指定资源有关的信息,如作者、大小与内容类型
  9. MKCOL, 用于创建新集合。使用此方法可避免过载 PUT 方法
  10. COPY, 用于复制资源
  11. MOVE, 用于移动资源
  12. LOCK, 为资源添加锁
  13. UNLOCK删除资源的锁
  14. TRACE追溯请求

应用实例配置参考

使用配置段指令时应遵循其合并顺序来写配置文件。

基本认证配置向导

#指定锁定列表文件路径

#DavLockDB "/path/to/file

#创建别名"

#Alias /webdav "/path/to/dir"

#指定需认证授权的目录

#<Directory "/path/to/dir">

    #Options [+|-]option [[+|-]option] ... 配置在特定目录中可以使用哪些特性

    #典型配置

    #Options Indexes

    

    #Order ordering 控制默认的访问状态与Allow和Deny指令生效的顺序

    #典型配置

    #Order Deny,Allow

    

    #Allow|Deny from all|host|env=env-variable [host|env=env-variable] ... 控制哪些主机能够访问服务器的该区域

    #典型配置

    #Allow from all

    

    #开启或关闭WebDAV

    #Dav On|Off

    

    #认证窗口的名称

    #AuthName name

    

    #使用基本或摘要认证

    #AuthType Basic|Digest    

    

    #指定认证支持,纯文本或DBM

    #基本认证的指令

    #AuthBasicProvider file|dbm

    #摘要认证的指令

    #AuthDigestProvider file|dbm

    

    #使用纯文本文件认证支持

    #用户

    #AuthUserFile "/path/to/passwdFile"

    #用户组

    #AuthGroupFile "/path/to/groupFile"

    

    #使用DBM文件数据库认证支持

    #DBM类型

    #AuthDBMType SDBM

    #用户

    #AuthDBMUserFile "/path/to/passwdFile"

    #用户组

    #AuthDBMGroupFile "/path/to/groupFile"

    

    #Require user|group|valid-user username 可以指定用户或用户组或只满足有效用户即可的指令,使用valid-user时不应该指定username

    #典型配置

    #Require valid-user

#</ Directory >

 

附加授权配置向导

#仅对当前资源URI限制某个用户组可用的一组HTTP方法

#<Location "URI">

    #<Limit|LimitExcept HEAD GET OPTIONS PROPFIND>

    #    Require group groupName

    #</Limit|LimitExcept>

#</Location>

#对目录的文件操作控制

#<Directory "/path">

#    #这里可以结合使用核心指令进行目录控制

#    #典型配置

#    Require group groupName

#    <Files filename>

#        #可以结合使用核心指令进行文件控制

#        #典型配置

#        Deny from all

#        #或者限制HTTP方法

#        <LimitExcept HEAD GET OPTIONS SEARCH PROPFIND WRAPPED>

#            Require group Admin

#            Allow from ip

#            #以上Require或Allow满足其中一个条件即可

#            Satisfy Any

#        </LimitExcept>

#    </Files>

#</Directory>

以上只是列举常用配置参考,掌握好理论基础后,便可灵活配置来解决实际应用所需。

注意事项

  1. DBM 文件数据库暂无法完全兼容 Digest 认证,解决方案请参见 http://www.berenddeboer.net/rest/apache_dbm_digest.html
  2. TRACE方法不能被使用在Limit配置指令中。
  3. Files配置段不可用于Location配置段,理论上文件系统和网络空间容器毫无关系。
  4. 启用SSL访问让WebDAV传输更加安全。

总结

在apache中WebDAV配置的基本顺序就是获取所需模块并启用,准备认证支持文件,选择配置段容器,填写相关核心指令,重新启动apache使之生效。

在解决实际应用所需时,建议先规划好资源权限赋予表,转换成具体配置指令时,多多看看官方手册,多做些测试。

Finally,Enjoy you self!

分享到:
评论

相关推荐

    阿帕奇apache服务器怎么配置?.docx

    ### 阿帕奇Apache服务器配置指南 #### 一、本地Apache服务器配置步骤 ...通过以上步骤,您可以成功地在本地计算机上配置Apache服务器,并进一步设置WebDAV服务器,以便实现文件的远程访问和管理功能。

    再次奉献SVN+apache Server配置

    【压缩包子文件的文件名称】:“apache_svn安装文档.doc”这个文件很可能是详细的步骤指南,包含了如何在Apache服务器上安装和配置SVN的详细过程。 详细知识点: 1. **SVN基础**:首先,SVN是一个开源的版本控制...

    svn1.6.3服务器配置

    总结,配置svn1.6.3服务器涉及安装、仓库创建、权限设置、Apache集成等多个步骤,对于协同开发至关重要。了解这些基础操作将有助于提升团队的代码管理效率。随着技术的发展,现在的svn版本提供了更多功能和优化,但...

    Windows7下SVN、Apache2和TortoiseSVN的配置安装.pdf

    - Apache2安装:同样从Apache官网获取适合Windows7的版本,按照指南配置。 - TortoiseSVN安装:下载并安装,完成后在Windows资源管理器中可见其集成。 - 配置Apache与SVN:通过修改Apache的httpd.conf文件,添加...

    Ubuntu上搭建SVN服务器全攻略.pdf

    本篇指南主要介绍了如何在Ubuntu 8.10操作系统上搭建一个基于Apache服务器、支持SSL安全连接的Subversion(SVN)版本控制系统。通过这个系统,开发者可以通过HTTPS协议安全地访问和管理代码仓库,实现团队协作和版本...

    Ubuntu上搭建SVN服务器全攻略

    - **WebDAV配置**:编辑Apache配置文件(通常是`/etc/apache2/mods-available/dav_svn.conf`),添加以下内容以支持通过WebDAV协议访问SVN仓库: ```apache DAV svn SVNPath /home/svn AuthType Basic ...

    CIS_Apache_HTTP_Server_2.2_Benchmark_v3.6.0.pdf

    CIS Apache HTTP Server 2.2 Benchmark是针对Apache HTTP服务器2.2版本的一套安全配置基准测试,旨在帮助用户评估和提高服务器的安全性。该基准测试文件提供了针对Apache 2.2的详细配置建议,并使用了评分机制来指导...

    Apache+Trac+SVN

    配置完成后,Apache服务器将显示包含SVN版本信息的欢迎页面,表明Apache和SVN已成功集成。 接下来是Trac的安装。Trac是一个基于Web的项目管理工具,它与SVN紧密集成,可以查看版本历史,跟踪问题,并提供wiki功能。...

    apache2.2文档.rar

    这份“apache2.2文档.rar”压缩包包含了关于Apache 2.2的详尽指南,对于管理员、开发者以及对服务器配置感兴趣的用户来说,是一个极其宝贵的资源。 一、Apache 2.2核心概念与特性 1. **模块化设计**:Apache 2.2...

    JDAVMail.0.9.006.zip_jdavma_jdavmail.0.9.006.jar_webdav

    3. **自动化脚本**:可以编写Java脚本来自动检查、下载或处理WebDAV服务器上的邮件。 总的来说,JDAVMail 0.9.006是一个强大的工具,为开发者提供了一种有效的方式去处理WebDAV邮件。其开源特性、丰富的接口以及跨...

    subversion

    Apache HTTP Server是世界上最流行的Web服务器软件,它支持Subversion模块以提供WebDAV服务。以下是Windows上安装Apache服务器的步骤: 1. 下载并安装Apache服务器:可选择带SSL支持的httpd-2.2.15-win32-x86-...

    seafile服务器管理手册.pdf

    Seafile服务器5.0引入了新的配置文件位置,手册对此进行了详细说明。升级指南涵盖了从社区版到专业版的迁移,以及如何使用Oracle数据库。对于企业级应用,Seafile提供了AD集成,包括AD/LDAP配置和ADFS登录,支持...

    svn_httpd_subversion.rar_httpd s

    4. `svn安装.txt`:这可能是详细的安装步骤或指南,指导用户如何一步步配置SVN和Apache服务器。 安装和配置步骤如下: 1. **安装Apache HTTP Server**:运行`httpd-2.2.15-win32-x86-openssl-0.9.8m-r2.msi`,按照...

    svn离线安装方法及所需资源包

    下载并安装对应操作系统的Apache HTTPD软件包,然后根据安装指南配置服务。 3. **安装SVN服务器** - **Windows系统**:离线安装通常涉及运行安装程序。找到解压后的SVN服务器安装文件,如`svn-server-setup.exe`,...

    OpenCMS内容管理入门指南(300页中文).pdf

    此外,还提到了如何对OpenCMS进行安全设置,以及如何安装和配置Apache服务器与OpenCMS的集成。 在使用方面,本书通过创建简单页面和JSP模板等实例,帮助读者快速上手OpenCMS的基本操作。不仅如此,还介绍了如何使用...

    SVN服务器官方文档

    文档可能还涵盖了通过WebDAV协议访问SVN仓库的方法,以及与Apache HTTP Server或其他Web服务器集成的步骤。 **SVN英文说明文档** 英文文档通常是最详尽的,对于深入理解SVN服务器的工作原理和技术细节非常有帮助。...

    SVN的安装和配置教程资料

    - **Apache HTTP Server**:与SVN服务器集成,提供WebDAV协议,允许通过HTTP/HTTPS访问版本库。 - **VisualSVN Server**:在Windows上简化Apache和SVN的配置,提供图形化管理界面。 - **svnserve**:轻量级的SVN...

Global site tag (gtag.js) - Google Analytics