1

글타래: 이기종 간 파일 공유를 위한 WebDAV 설정

이기종 간 파일 공유를 위한 WebDAV 설정

WebDAV(Web-based Distributed Authoring and Versioning)는 이기종 간 파일 공유 시 접속자들에게는 최소한의 간단한 설정만을 필요로 하는 가끔은 그냥 간과될 수도 있는 유용한 프로토콜입니다. 여기서는 Windows에 설치된 IIS, Mac OS X 그리고 Linux의 Apache에서 실행되는 WebDAV 서버들의 설정 방법과 각 OS에서 기본적으로 제공되는 WebDAV 클라이언트를 사용해서 접속하는 방법을 설명해 드리겠습니다.

Windows를 WebDAV 서버로

WebDAV는 IIS 5 이후 버전에서는 기본으로 제공되고 있습니다. Windows XP의 경우, IIS를 실행하면 기본적으로 WebDAV를 사용할 수 있게 됩니다. Windows XP Pro에서 IIS를 사용하려면, 프로그램 추가/삭제에 있는 Windows 컴포넌트 추가/삭제에서 설치합니다. 아래에 보이는 바와 같이 추가/삭제 대화 상자의 IIS 컴포넌트에 포함된 World WIde Web sub-sub-component를 선택하고 설치 후에 IIS를 실행합니다:

http://appletree.or.kr/forum/files/webdav/addremove_iis.gif

IIS를 설치하고 실행한 후에는, 공유할 폴더를 생성합니다. 여기서는 f:\webdav를 사용하겠습니다. 특정 폴더에서 WebDAV를 사용하려면, Windows 탐색기에서 폴더를 찾아 선택하고, 오른쪽 클릭을 해서 속성(properties)을 선택한 후, 웹 공유(Web Sharing) 탭을 엽니다:

http://appletree.or.kr/forum/files/webdav/websharing.gif

이 폴더를 공유(Share this folder) 단추를 선택하고, 읽기, 쓰기, 디렉토리 검색 접속 권한, 그리고 애플리케이션 접근 권한을 설정합니다. 여기에 보이는 가상본(alias)은 IIS가 사용할 이름이고, 이것은 기본적으로 폴더 이름과 같습니다:

http://appletree.or.kr/forum/files/webdav/websharing_alias.gif

IIS MMC 콘솔에서 보면, 새로 공유한 폴더가 Default Web Site 항목 중에 새로운 가상 디렉토리로 표시되어 있음을 확인하실 수 있습니다. 이 시점에서 이 폴더는 WebDAV를 통해 접근할 수 있게 됩니다. 더 안전한 보안을 위해, SSL 인증서를 설치하고 webdav의 가상 디렉토리를 128bit 암호화해 놓으시기 바랍니다. 여기서는 그냥 기본 Windows Integrated Authentication을 사용합니다.

http://appletree.or.kr/forum/files/webdav/iisconsole.gif

OS X를 WebDAV 서버로

OS X에서 Apache를 실행하려면, 시스템 환경설정의 공유 항목에서 개인 웹 공유(Personal Web Sharing)를 켜줍니다:

http://appletree.or.kr/forum/files/webdav/systemprefs_apache.jpg

httpd.conf 파일을 열고, 아래와 같이 mod_dav 모듈 관련 설정에 포함된 코멘트를 지워줍니다:

$ sudo vi /etc/httpd/http.conf
..
#LoadModule unique_id_module    libexec/httpd/mod_unique_id.so
LoadModule setenvif_module      libexec/httpd/mod_setenvif.so
LoadModule dav_module       libexec/httpd/libdav.so
    
..
AddModule mod_so.c
AddModule mod_setenvif.c
AddModule mod_dav.c

그리고, DAVLockDB의 경로와 공유될 폴더를 가리키는 디렉토리 설정을 추가합니다. 여기서 설정된 Apache 설정은 암호를 요청할 때에 이 암호는 암호화되지는 않습니다만, 더 안전한 보안을 위해서는 SSL 인증서를 설치하고 webdav 디렉토리가 SSL 접속들만 인가하도록 설정하십시오:

..
DAVLockDB /Library/WebServer/davlocks/DAVLockDB
<Directory “/Library/WebServer/Documents/webdav”>
  DAV On
  AuthName “WebDAV Login”
  AuthType Basic
  AuthUserFile /etc/httpd/.htpasswd
  <LimitExcept GET HEAD OPTIONS>
    require valid-user
  </LimitExcept>
  Order allow,deny
  Allow from all
</Directory>

이제 디렉토리를 생성하고 권한을 설정해 줍니다:

$ sudo su
# mkdir /Library/WebServer/davlocks
# chown www:www /Library/WebServer/davlocks
# mkdir /Library/WebServer/Documents/webdav
# chown www:www /Library/WebServer/Documents/webdav

마지막으로, 사용자와 암호 파일을 생성하고 httpd daemon을 재실행합니다:

# htpasswd -m -c /etc/httpd/.htpasswd testuser
New password:
Re-type new password:
Adding password for user testuser
# apachectl restart
/usr/sbin/apachectl restart: httpd restarted

Linux를 WebDAV 서버로

Linux의 경우, 마음에 드는 Apache 패키지를 설치하시면 되겠습니다. 대부분의 배포판은 Apache httpd 2.0을 사용하는데 이것은 mod_dav 모듈이 기본적으로 제공되므로, httpd.conf 파일에서는 DAVLockDB와 디렉토리 정의 관련 설정만 해주면 되겠습니다. 주의할 것은, Active Directory 혹은 LDAP를 위한 인증을 위해 mod_auth_kerb 혹은 mod_auth_ldap Apache 모듈을 사용할 수도 있습니다만, 여기서는 htpasswd를 사용하겠습니다:

$ sudo vi /etc/httpd/conf/http.conf
..
DAVLockDB /usr/local/apache/var/DAVLockDB
<Directory “/var/www/html/webdav”>
  DAV On
  AuthName “WebDAV Login”
  AuthType Basic
  AuthUserFile /etc/httpd/.htpasswd
  <LimitExcept GET HEAD OPTIONS>
    require valid-user
  </LimitExcept>
  Order allow,deny
  Allow from all
</Directory>

다음에, 디렉토리를 생성하고 권한을 설정해 줍니다:

$ sudo su
# mkdir /usr/local/apache/var
# chown apache:apache /usr/local/apache/var
# mkdir /var/www/html/webdav
# chown www:www /var/www/html/webdav

마지막으로, Linux에서 사용자와 암호 파일을 생성하고 httpd daemon을 재실행합니다:

# htpasswd -m -c /etc/httpd/.htpasswd testuser
New password:
Re-type new password:
Adding password for user testuser
# /sbin/service httpd restart
Stopping httpd:  [ OK ]
Starting httpd:  [ OK ]

이제, 몇몇 클라이언트들을 가지고 접속을 시도해 봅시다!

Windows에서의 WebDAV 클라이언트

Internet Explorer에서, 파일 메뉴에 있는 열기를 선택하고, 웹 폴더 열기 단추를 선택한 후, 공유 폴더의 URL을 입력합니다. 주의: SSL 접속이 아닌 상태로 접속하는 경우에는, 아래에 보이는 것처럼 URL 마지막에 "/#"를 붙여야 합니다. Windows XP에서는 WebDAV를 통해 접속하는데 두 가지의 방법을 가지고 있습니다. /#를 마지막에 붙여주면 웹 폴더 클라이언트 접속 방법으로, 인증을 무사히 통과하면서, 전에 여기서 설정해 두었던 WebDAV 설정 폴더로 접속할 수 있게 해줍니다.

http://appletree.or.kr/forum/files/webdav/ie_fileopen.gif

승인 단추를 누르면 URL을 열면서 로그인할 수 있게 됩니다. 사용자 이름은 도메인/사용자 이름 형태로 입력합니다. 만약 도메인이 없는 로컬 컴퓨터 계정으로 IIS에 로그인할 경우에는, 사용자 이름을 컴퓨터 이름/사용자 이름 형태로 입력합니다. 여기서 컴퓨터 이름은 IIS 서버의 호스트 이름입니다. 이곳에서 설정한 Apache로 접속할 때에는, htpasswd 명령을 사용해서 생성해 두었던 사용자 이름과 암호를 입력합니다.

http://appletree.or.kr/forum/files/webdav/ie_login.gif

성공적으로 로그인한 후에는, WebDAV 공유 항목들이 새로운 창에서 열리게 되고, 나의 네트워크 장소(My Network Places)에 단축 가상본이 추가됩니다. 이제 이 창에 있는 파일들을 로컬 컴퓨터로 끌어다 옮기거나, 문서 파일을 직접 편집할 수도 있답니다.

http://appletree.or.kr/forum/files/webdav/explorer_connected.gif

OS X에서의 WebDAV 클라이언트

Finder에서 접속하려면, 가기 메뉴에 있는 서버로 접속(Connect to Server - command-K)을 선택합니다. 그러면 보이는 창에서 WebDAV 서버의 URL을 입력하고 접속 단추를 누릅니다:

http://appletree.or.kr/forum/files/webdav/finder_connect.jpg

로그인 창에서, 도메인 이름, 사용자 이름 그리고 암호를 입력합니다. 도메인이 없는 계정에서 IIS로 로그인할 때는, IIS 서버의 컴퓨터 이름을 도메인 항목에 입력합니다. 그리고, Apache에 접속할 때는, htpasswd로 생성해 두었던 사용자 이름과 암호를 입력합니다:

http://appletree.or.kr/forum/files/webdav/finder_login.jpg

로그인을 성공적으로 마쳤으면, WebDAV 폴더가 화면 위에 올려지게 됩니다:

http://appletree.or.kr/forum/files/webdav/finder_connected.jpg

Linux에서의 WebDAV 클라이언트

Linux의 Konqueror에서 접속할 때는, URL을 주소 막대에 http:// 대신에 webdav://을 사용해서 입력합니다. 로그인 창이 뜨면, IIS로 접속할 때 도메인/사용자 이름 혹은 컴퓨터 이름/사용자 이름 형태로 입력합니다. Apache로 접속할 때는, 앞에서와같이 htpasswd로 생성했던 사용자를 입력합니다:

http://appletree.or.kr/forum/files/webdav/konqueror_login.gif

로그인 작업을 끝내면, 아래와 같은 WebDAV 폴더가 보이게 됩니다:

http://appletree.or.kr/forum/files/webdav/konqueror_connected.gif

모든 플랫폼에서, WebDAV는 동시다발적 파일 수정을 막기 위해 기본적인 파일 잠금 기능을 제공합니다. 권한의 경우에는 기본 파일 시스템을 통해 이루어지고 원격적으로 수정될 수는 없습니다. 물론 WebDAV는 몇 가지의 약점을 가지고 있지만, 방화벽과도 친근한 이기종 간 파일 공유의 기능을 원할 때에는 손쉬운 해법이 될 수도 있습니다.

따옴 - Big Nerd Ranch Weblog - Configuring WebDAV for cross-platform file sharing

+ = ²