DAV

DAV 또는 WebDAV는 http(80포트), https(443포트)를 통하여 파일에 접근할 수 있는 기술이다.

이 페이지에서는 라즈베리 파이(Debian 계열의 리눅스 운영체제)에 아파치를 통하여 DAV 서비스를 올리고, 이를 윈도우7 또는 윈도우8 계열의 운영체제에서 접근하는 방법을 위주로 설명한다.

보안에 관해서는 거의 생략하다시피 하였으니 읽기 쓰기 권한 문제 등은 다른 자료를 찾아보자.

윈도우7 이상에서 개인 DAV 서버에 접근할 때 다음과 같은 문제가 발생한다.

  • 윈도우7의 DAV 클라이언트가 높은 수준의 보안을 요구함
    • 기본 인증(basic authentication)이나 다이제스트 인증(digest authentication)을 통해서 접근이 불가능함
    • 인증서(SSL)을 이용하여야 접근 가능
  • SSL을 이용할 경우 비용이 발생함
    • 루트 인증서를 통하여 자신의 서버 인증서를 생성하여야 하나 비용이 발생함
    • 무료 인증서 서비스1)도 있으나 편하지는 않음

이를 해결하기 위해서는 다음과 같은 해결 방법이 있다.

  • 서버에 SSL 적용하고 자기 서명(self-signed)을 통해 인증함

아파치 설치

데비안에서 DAV를 설치하는 방법은 비교적 쉽다. 첫번째 줄은 아파치 서버 설치, 다음 두 줄은 DAV 관련, 마지막 두 줄은 줄은 더 향상된 로그인 보안과 SSL을 위한 모듈이다.

sudo apt-get install apache2
sudo a2enmod dav
sudo a2enmod dav_fs
sudo a2enmod auth_digest
audo a2enmod ssl

SSL 키 생성

이 문서에서는 자기 서명한 인증서를 생성하여 사용한다.

인증서 참조

아파치 설정

다음으로 아파치 설정이 필요하다. 가상호스트(Virtual Host)등은 본인이 해결하자.

LockDB를 사용할 경우 touch 명령어로 DavLock 파일을 만들고 접근 권한을 www-data 등으로 설정하자

:!: /…/ 로 표시된 경로는 자신에 맞는 경로를 넣는다.

:!: 다이제스트 인증 방법은 스스로 찾아보자.

# http로 접근시 자동으로 https로 이동
<VirtualHost *:80>
	RewriteEngine On
	RewriteCond %{HTTPS} !=on
	RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>
<VirtualHost *:443>

	...

	# SSL 관련 설정
	SSLEngine On
	SSLCertificateFile	/.../host.pem
	SSLCertificateKeyFile	/.../host.key

	# DavLock은 생략할 수도 있다
	DavLockDB /.../DavLock

	<Location /dav>
	# 로그인 방법 설정
		AuthType    Digest
		AuthName    "blabla"
		AuthUserFile    /.../password.digest
		Require     valid-user
	# DAV 관련 설정
		DAV On
		Options Indexes MultiViews
		Order allow,deny
		Allow from all
	# DAV 파일 크기 제한 해제
		LimitXMLRequestBody 0
	</Location>
	...
</VirtualHost>

윈도우 설정

공인 기관이 생성하지 않은 인증서는 보안 경고가 뜬다. 다음은 윈도우에서 생성한 인증서를 신뢰할 수 있는 루트 인증서로 등록하는 방법이다.

인증서 참조

인증서 등록을 완료하면 네트워크 위치 추가를 통하여 dav에 쉽게 접근할 수 있다. 큰 파일에 접근하기 위해서는 레지스트리를 추가하여야 한다. 다음 레지스트리 값을 0x2faf080(50000000)에서 0xffffffff(약 4GB)로 수정하자. 이는 DAV에서 지원하는 최대 파일 크기가 4GB를 의미한다고 생각해도 무방하다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\FileSizeLimitInBytes

이후 네트워크 위치 추가나 네트워크 드라이브 연결 시 주소를 https로 쳐서 들어가야 한다.


댓글을 입력하세요. 위키 문법이 허용됩니다:
F X R C K