[NAS 구축] 6. WebDAV 설치

WebDAV(Web Distributed Authoring and Versioning)는 http(s)를 기반으로 하여 웹을 읽고 쓸 수 있는 매개체로 만드는 웹 협업 프로토콜이다.
WebDAV와 ftp와의 차이는 http와 ftp의 차이로도 볼 수 있으며 이 한마디로 기나긴 설명을 충분히 갈음할만하다고 생각한다. (stateless vs. stateful, mountable vs. cli 등)

WebDAV는 http의 확장이기 때문에 http 서버 위에서 동작한다.
그러므로 http를 설치한 후 conf.d에 webdav.conf를 작성하기만 하면 된다.
물론 최종적인 WebDAV 서비스는 https로 하겠지만 이 글에서 같이 다루기에는 양이 많아 다음 게시물로 작성하였다.

필자의 NAS 환경인 Centos7을 기준으로 설명한다.

우선 httpd(apache)를 설치한다.

$ sudo yum install httpd

그 후 /etc/httpd/conf.d/webdav.conf를 생성하여 다음과 같이 작성한다.
username 대신 사용하고자 하는 계정을 넣어주면 된다.
이 때 사용하고자 하는 계정의 그룹을 apache로 해주어야 WebDAV가 해당 계정으로 디렉터리에 접근할 수 있다.

# DAV Global Setting
DavLockDB       /etc/httpd/var/DAVLockDB
ServerAdmin     Serveradmin@addr.ess
DocumentRoot    /var/www/html/webdav/
ErrorLog        /var/log/httpd/error.log
CustomLog       /var/log/httpd/access.log combined

Alias   /Webdav       /storage/hdd

<VirtualHost *:80>
</VirtualHost>

<Location /Document>
    DAV On
    Options All
    AuthType Basic
    AuthName "WebDAV"
    AuthUserFile /etc/httpd/.htpasswd
    <Limit GET PROPFIND OPTIONS REPORT>
        Require user username
    </Limit>
    <LimitExcept GET PROPFIND OPTIONS REPORT>
        Require user username
    </LimitExcept>
</Location>

파일의 각 속성이나 쓰임새를 다루기에는 너무 방대하므로 언젠가 기회가 되면 정리하여 글을 덧붙일 예정이다.

이후 80포트를 오픈하고 webdav를 사용하면 된다.
혹여라도 WebDAV로 디렉터리 접근이 되지 않는다면 SELinux 설정을 확인해보자.
다음과 같이 httpd_sys_rw_content_t 타입의 보안 속성이 있지 않을 경우 apache에서 접근할 수 없다.

drwxrwxrwx. apache apache system_u:object_r:httpd_sys_rw_content_t:s0 dir1
drwxrwxrwx. apache apache system_u:object_r:httpd_sys_rw_content_t:s0 dir2
drwxrwxrwx. apache apache system_u:object_r:httpd_sys_rw_content_t:s0 dir3

속성은 다음처럼 부여한다.

$ sudo chcon -t httpd_sys_rw_content_t -R dir1
Series Navigation<< [NAS 구축] 5. 토렌트 서버 설치[NAS 구축] 7. WebDAV에 Let’s Encrypt SSL 인증서 적용 >>

댓글 남기기