如何使用SSL和双重身份验证保护WebDAV

如何使用SSL和双因素身份验证来保护WebDAV

使用WebDAV的好处

基于Web的分布式创作和版本控制或WebDAV是创建“读写”网络的协议。 它通过互联网在许多方面促进协作,取代专有协议(例如FrontPage)或者替代较少功能的开放协议((FTP,SFTP)),采用WebDAV的主要驱动因素包括:

  • WebDAV资源可以像本地驱动器一样设置,允许您使用远程文件,就像它们在您的机器上一样。
  • 它允许“锁定”文件,因此多个用户可以同时处理文件,但一次只能进行一次更改。
  • 它比FTP或SFTP更有效。您可以通过单个TCP连接管理多个传输。
  • 它是HTTP的扩展,并使用相同的端口--80或443,从而避免潜在的防火墙问题。
  • 支持WebDAV可以在多个平台上创建跨平台解决方案。

然而,与所有互联网相关的事情一样,安全性是一个问题,特别是如果您正在处理机密信息。 然而,公司总是需要与外部人员分享信息和工作。 与第三方合作可能非常棘手,但仍然可以对用户进行身份验证。 你怎么知道用户没有共享密码? 但是,您不想向非员工提供硬件令牌,特别是对于一个简短的项目,因为您很可能永远不会收回。

将双因素身份验证与WebDAV结合在一起的情况可能是与外部公关公司合作进行财务发布的上市公司。 知道待处理的合并公告或财务结果是高度机密的公司信息,并使用双因素认证大大降低了共享静态密码的风险。 由于新的合规性规定,许多公司也可能需要更换不太安全的FTP服务。

为了我们的目的,一个关键的好处是我们可以使用可用的安全工具来保护HTTP服务来保护WebDAV。 在这个操作方法中,我们将使用来自WiKID Systems的Apache,Radius,SSL和双因素身份验证创建一个安全的WebDAV资源,以在Windows,Mac和Linux机器上设置安全的远程驱动器。

DAV命令

熟悉WebDAV是个好主意。 根据维基百科 ,这是WebDAV向HTTP 1.1添加的新方法

  • PROPFIND:用于从资源中检索以XML格式持久化的属性。 它也被重载以允许一个检索远程系统的集合结构(也称为目录层次结构)。
  • PROPPATCH:用于在单个原子行为中更改和删除资源上的多个属性。
  • MKCOL:用于创建集合(也称为目录)。
  • COPY:用于将资源从一个URI复制到另一个URI。
  • MOVE:用于将资源从一个URI移动到另一个URI。
  • LOCK:用于对资源进行锁定。 WebDAV支持共享和排他锁。
  • 解锁:从资源中删除锁。

配置服务器

对于任何安全的服务,底层服务器也需要安全。 确保您的服务器被锁定并且始终保持最新。 请注意,我在Fedora Core 5系统上使用通过RPM安装的Apache 2.2.2-1.2版本。 我不能得到mod_auth在httpd-2.2.3-5上工作,并听到2.4的相同。

创建WebDAV目录

为用户的文件创建一些目录。 甚至可能要创建单个目录:

mkdir /var/www/webdav/
mkdir /var/www/webdav/USERNAME
chown -R root:apache /var/www/webdav
chmod -R 750 /var/www/webdav

请注意,Apache用户是这些目录的所有者。

配置WiKID

WiKID强认证系统是商业/开源双因素认证解决方案。 与使用共享秘密的大多数产品不同,它使用公钥加密来安全地传输PIN和服务器和软件令牌之间的一次性密码。 使用WiKID,双重因素拥有PIN的私人密钥和知识。 因为我们正在Windows,Mac和Linux上进行测试,所以这里的屏幕截图是开放源码的J2SE WiKID令牌。 令牌客户端使用端口80,所以再一次,没有防火墙的关注。 有关WiKID技术的更多信息,请点击此处。

以下是它的工作原理,当用户想要访问WebDAV资源时,将提示输入用户名和密码。 用户在其WiKID令牌上生成一次性密码,并将其输入密码提示。 Apache将通过pam_auth_xradius将用户名和一次性密码路由到WiKID服务器。 如果用户名和一次性密码与WiKID期望的一致,服务器将告诉Apache授予访问权限。 首先,我们将Apache作为网络客户端添加到WiKID强认证服务器,然后向Apache添加半径。 我假设你已经有一个WiKID域和用户设置 - 有关如何安装和配置WiKID的更多信息,可以在这里找到

首先向Web服务器的WiKID服务器添加一个新的Radius网络客户端:

  • 登录WiKID服务器Web界面(http:// yourwikidserver / WiKIDAdim)。
  • 选择网络客户端选项卡。
  • 点击创建新的网络客户端“
  • 填写所需信息。
    • 对于IP地址,请使用Web服务器IP地址
    • 对于协议,选择半径
    • 点击添加按钮,然后在下一页输入共享密码
    • 不要在返回属性框中输入任何内容
  • 从终端或通过ssh,运行'停止',然后'开始'将网络客户端加载到内置的WiKID半径服务器

那就是WiKID服务器。 现在到了Apache。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏