개요
이 문서는 /var/www/web1 경로를 WebDAV 공유로 노출하기 위해 lighttpd의 가상 호스트를 구성하는 방법을 설명합니다. 주요 작업은 다음과 같습니다: WebDAV 사용자 인증 파일 생성, 파일 권한 설정, vhost 설정 변경, lighttpd 재시작, 클라이언트 연결 테스트.
Important: 아래 명령은 루트 권한으로 실행해야 합니다.
4 WebDAV를 위한 가상 호스트 구성
먼저 WebDAV 인증에 사용할 비밀번호 파일을 생성합니다. 사용자 test를 추가할 때 -c 스위치를 사용하면 파일이 없을 때 새로 생성됩니다:
htpasswd -c /var/www/web1/passwd.dav test
명령 실행 후 test 사용자의 비밀번호를 묻는 프롬프트가 표시됩니다. 기존 passwd.dav 파일이 이미 있다면 -c 스위치를 사용하지 마십시오. -c는 파일을 처음부터 다시 생성하므로 기존 사용자 목록이 모두 사라집니다.
Important: 파일을 덮어쓰지 않도록 -c 사용 여부를 확인하세요.
다음으로 /var/www/web1/passwd.dav 파일의 소유권과 권한을 변경해 루트와 lighttpd 그룹 구성원만 접근할 수 있게 합니다:
chown root:lighttpd /var/www/web1/passwd.dav
chmod 640 /var/www/web1/passwd.dav
그런 다음 vhost 설정을 편집합니다:
vi /etc/lighttpd/lighttpd.conf
아래와 같이 vhost 블록을 추가하거나 수정합니다:
| [...] $HTTP["host"] == "www.example.com" { server.document-root = "/var/www/web1/web" alias.url = ( "/webdav" => "/var/www/web1/web" ) $HTTP["url"] =~ "^/webdav($|/)" { dir-listing.activate = "enable" webdav.activate = "enable" webdav.is-readonly = "disable" auth.backend = "htpasswd" auth.backend.htpasswd.userfile = "/var/www/web1/passwd.dav" auth.require = ( "" => ( "method" => "basic", "realm" => "webdav", "require" => "valid-user" ) ) } }
|
alias.url 지시어와 $HTTP[“url”] 정규식은 /webdav 경로로 접근할 때만 WebDAV 기능을 활성화합니다. vhost의 다른 URL은 기존의 일반 HTTP로 동작합니다.
vhost 변경 후 lighttpd를 재시작합니다:
/etc/init.d/lighttpd restart
Note: 시스템에 따라 서비스 재시작 명령이 다를 수 있습니다(systemd 사용 시 systemctl restart lighttpd
).
5 WebDAV 테스트
명령줄 WebDAV 클라이언트인 cadaver를 설치합니다 (예: Fedora/Red Hat 계열):
yum install cadaver
WebDAV 동작 테스트:
cadaver http://www.example.com/webdav/
프로그램이 사용자 이름을 물으면 test와 비밀번호를 입력합니다. 접근 허가가 되면 WebDAV 셸 접속이 허용됩니다. 종료하려면 quit를 입력합니다:
[root@server1 ~]# cadaver http://www.example.com/webdav/
Authentication required for webdav on server `www.example.com':
Username: test
Password:
dav:/webdav/> quit
Connection to `www.example.com' closed.
[root@server1 ~]#
성공하면 위와 같은 흐름을 확인할 수 있습니다.
6 Windows XP에서 WebDAV 공유 연결
자세한 설명은 원문 가이드를 참고하세요. WebDAV URL에 포트를 명시하면 Windows XP가 일반 사용자 이름(예: test)을 올바르게 처리하는 경우가 많습니다. 예를 들어:
http://www.example.com:80/webdav
일부 환경에서는 포트를 명시하지 않으면 Windows XP가 NTLM 형식의 사용자명(예: www.example.com\test
)을 요구할 수 있습니다. 포트 포함 URL을 시도해 보세요.
7 GNOME(리눅스)에서 WebDAV 연결
GNOME(파일 관리자)을 이용한 연결 방법도 별도의 가이드에서 설명되어 있습니다. 일반적으로 ‘서버에 연결’에서 WebDAV URL을 입력하고 인증 정보를 제공하면 마운트됩니다.
8 참고 링크
- WebDAV: http://www.webdav.org
- Lighttpd: http://www.lighttpd.net
- Fedora: http://fedoraproject.org
추가: 문제 해결 체크리스트
- 인증 실패(401)
- /var/www/web1/passwd.dav 파일이 올바른 위치인지 확인
- 파일 소유권과 권한이 root:lighttpd, 640인지 확인
- lighttpd가 읽기 권한을 가진 그룹으로 실행 중인지 확인
- 접근 권한 문제
- vhost의 server.document-root와 alias.url 경로가 정확한지 확인
- selinux가 활성화된 경우(예: Enforcing) 관련 컨텍스트를 허용하도록 설정하거나 점검
- 디렉터리 목록이나 업로드 불가
- webdav.is-readonly 설정이 “disable”로 되어 있는지 확인
- 웹서버 로그(/var/log/lighttpd/)에서 관련 에러 확인
역할별 체크리스트
- 시스템 관리자
- passwd.dav 생성과 권한 설정 수행
- lighttpd vhost 구성 및 재시작
- 방화벽/SELinux 설정 검토
- Windows 사용자
- 포트 포함 URL로 연결 시도
- 필요 시 자격증명 관리자에서 서버 자격증명 제거 후 재시도
- 리눅스(GNOME) 사용자
- 파일 관리자에서 ‘서버에 연결’을 통해 URL 입력
- 명령줄에서는 cadaver로 연결 테스트
간단한 절차 요약
- htpasswd로 비밀번호 파일 생성(이미 있으면 -c 사용 금지)
- chown/chmod로 파일 권한 설정
- lighttpd.conf에서 vhost 및 /webdav 블록 추가
- 서비스 재시작
- cadaver 등으로 접속 테스트
짧은 용어 정리
- WebDAV: HTTP 기반의 원격 웹 파일 관리 확장
- htpasswd: Apache 계열에서 사용하는 사용자 비밀번호 파일 생성 도구
- cadaver: 명령줄 WebDAV 클라이언트
- lighttpd: 경량 웹 서버
Notes: 이 가이드는 보안 설정의 기본을 다루며, 운영 환경에서는 TLS(HTTPS) 사용과 더 강력한 인증/권한 정책 적용을 권장합니다.
요약
- /var/www/web1/passwd.dav를 htpasswd로 생성하고 권한을 적절히 설정하세요.
- vhost에서 alias.url 및 WebDAV 블록을 추가해 /webdav 경로에 대해 WebDAV를 활성화하세요.
- cadaver로 동작을 확인하고, Windows XP 연결 시 포트를 명시해 보세요.