Mac

[Mac] Mountain Lion에 webdav 설정하기

louis.dev 2013. 11. 14. 16:37
맥미니에 저장되어있는 파일을 공유하는 방법은 여러가지가 있으나 그중에 http를 통해서 파일을 다운로드 하거나, 넷드라이브로 인식하여 쉽게 읽고 쓰기가 가능하도록 하는 기능인 webdav 설정방법에 대해서 알아보도록 하겠습니다. webdav의 설정은 크게
  1. 보안이 적용되지 않은 가장 단순한 형태의 webdav
  2. 보안이 적용된 webdav
로 나눌수 있는데, 첫번째 방식인 경우 설정하기는 쉽지만 패킷캡쳐에 따른 내용분석이 가능하다는 점이 단점이고, 두번째 방법은 강력한 보안을 제공하지만 설정하기 까다롭다는 단점이 있습니다. 이번 포스팅에서는 두가지 모두를 세팅하는 방법을 다루어 보도록 하겠습니다.  

0. 공통작업

아파치 설정파일인 httpd.conf에 주석처리되었던 부분을 주석해제 합니다.
$ sudo vi /etc/apache2/httpd.conf

#해당부분을 주석해제
Include /private/etc/apache2/extra/httpd-dav.conf

# 저장후 쉘로 나온 뒤

## DavLock파일은 여러 사용자가 한파일을 읽고 쓰기를 동시에 하지 못하도록 관리하는 파일
$ sudo mkdir /usr/var
$ sudo chmod 777 /usr/var
$ sudo touch /usr/var/DavLock
# /usr/var 디렉토리의 소유자를 아파치의 사용자:그룹(httpd.conf 파일에 User, Group으로 명시되어 있는 사용자 그룹) 으로 설정함
# /usr/var 하위에 DavLock 파일 뿐만 아니라 다른 파일도 자동으로 생성되기 때문에 /usr/var 디렉토리의 사용자:그룹을 변경해야함
$ sudo chown -R ${apache User}:${apache Group} /usr/var

1. 보안이 적용되지 않은 가장 단순한 형태의 webdav 설정

$ sudo vi /etc/apache2/extra/httpd-dav.conf

## 아래 내용을 httpd-dav.conf에 추가

DavLockDB "/usr/var/DavLock"

# 공유하고자 하는 디렉토리 명, 접근은 http://your.domain.com/webdav 로 접근 가능
Alias /webdav "/your/directory/name"

#위의 Alias 부분의 디렉토리 위치와 동일해야 함
<Directory "/your/directory/name">
    Dav On
    Order allow,deny
    Allow from all
    AuthType Basic      #가장 기본적인 형태의 인증
    AuthName DAV      #webdav 인증 창에 나타날 메세지
    AuthUserFile /etc/apache2/mydavuser.passwd     #로그인을 허용할 사용자를 저장하고 있는 파일, 아직 생성하지 않았음
    <Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
        require user ${mydavuser.passwd에 추가한 사용자 명}
    </Limit>
    Options FollowSymLinks Indexes
</Directory>

# 기본적으로 설정된 부분
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully

# httpd-dav.conf 파일을 저장하고 나옴

# webdav에 접근 가능한 사용자 리스트를 저장할 파일로 만든다.
# 아래에서 입력한 사용자명은 위의 httpd-dav.conf 에 require user 뒷부분에 들어갈 유저명이다
# -c 옵션은 파일을 새로 생성하는 옵션이다. 만약 존재하는 파일에 사용자를 추가하려면 이 -c 옵션을 제거 하고 하면 사용자를 추가할수 있다.
$ sudo htpasswd -c /etc/apache2/mydavuser.passwd ${로그인할 사용자 명}
New password:
Re-type new password:
Adding password for user ${로그인할 사용자 명}

## 아파치 설정이 이상없는지 확인한 뒤 아파치를 재시작 한다.
$ sudo apachectl -t
#위의 명령이 문제 없으면
$ sudo apachectl graceful
이제 브라우저로 http://your.ipORdomain.com/webdav로 접근하여 로그인이 되는지를 확인합니다. 위의 방법은 설정이 간단하다는 장점이 있지만 Windows 시스템에서 보안설정이 되어있지 않은 방식으로는 바로 네트워크 드라이브로 설정할 수가 없습니다. 따라서 위와 같이 설정한다음 windows에서도 네트워크 드라이브로 잡으려면 이 포스팅을 확인하시면 됩니다.  

2. 보안이 적용된 webdav 설정

ssl을 적용한 webdav는 여기에서 확인 할 수 있습니다