본 문서는 Windows 10에 Apache WebDAV를 설치, 설정하는 과정을 설명하고 있습니다. 설정 과정부터는 리눅스에서도 동일하게 적용 가능합니다.
Windows 10에 최신 아파치를 기반으로 한 WebDAV를 설치하고 설정하는 방법에 대해서 공유하고자 한다. IIS를 사용하여 WebDAV를 구축할 수 있지만 IIS가 성능적으로 떨어지는 부분이 있다는 글을 본 적이 있어서 Apache를 기반으로 한 WebDAV를 구축하게 되었다. 또한, 최신 Apache(현재, Apache 2.4.43)를 기반으로 한 WebDAV 설정 방법과 관련된 정보를 딱히 찾을 수 없어서 직접 진행해 보고 그 방법을 소개한다.
우선 시작 전에 설치 환경과 설치 바이너리에 대해서 명확시 명시하고자 한다.
[설치 환경]
Windows 10 Enterprise LTSC (Windows 10 다른 버전과 차이 없음)
[Apache 버전]
httpd-2.4.43-win64-VS16
[그 외 설치]
Visual C++ Redistributable for Visual Studio 2015-2019 v14.25.28508.3
설치 및 설정 방법은 다음과 같은 과정으로 진행한다.
- Step 1. 아파치 다운로드 및 압축해제
- Step 2. Apache 설정(httpd.conf 파일 수정)
- Step 3. WebDAV 설정(httpd-dav.conf 파일 수정)
- Step 4. HTTPS 설정(httpd-ssl.conf 파일 수정)
- Step 5. 아파치 서비스 등록 및 부팅시 자동 시작 설정
Step 1. 아파치 다운로드 및 압축해제
다운로드를 하기 전에 내 Windows가 64bit 환경인지 32bit 환경인지 알아야 한다. 파일 탐색기에서 '내 PC'를 우클릭하여 '속성'을 선택하면 확인 가능하다.
이제 아파치 라운지의 다운로드 페이지에 접속해 보자.
아파치를 다운로드 하기 전에 'Visual C++ 재배포 가능 패키지'를 설치해야 한다. 위의 그림에서 초록색으로 표기된 링크를 클릭하여 재배포 가능 패키지를 다운로드 가능한데, 자신의 시스템 종류에 맞게 바이너리를 선택 후 다운로드하도록 하자. 다운로드하였다면 더블 클릭 후 설치하면 된다.
그리고 [그림 2]에서 빨간색으료 표기된 아파치 바이너를 자신의 시스템 종류에 맞게 다운로드하도록 하자. 다운로드 완료 후 압축을 풀면 된다. 아파치는 별도의 설치 과정이 필요 없고 단순히 압축 해제만 하면 된다. 압축을 해제하고 Apache24 폴더를 적절한 위치로 이동한다. 필자의 경우 C:\로 이동하였다.
Step 2. Apache 설정(httpd.conf 파일 수정)
이제 아파치 설정을 진행해 보자. 설정 파일은 아래의 경로에서 찾을 수 있다.
C:\Apache24\conf\httpd.conf
httpd.conf 파일을 편집해야 하는데, 해당 파일의 편집해야 할 라인 번호와 변경 내역을 아래의 표를 참고하여 수정하자.
Line 설명 |
변경전 | 변경후 |
60 | Listen 5080 | Listen 80 |
설명 | HTTP 포트, 사용자가 원하는 값으로 설정. powershell을 실행하여 'netstat -an | select-string 포트번호' 명령어를 사용하여 출력되는 결과가 없는 포트번호를 사용. | |
74 | #LoadModule access_compat_module modules/mod_access_compat.so | LoadModule access_compat_module modules/mod_access_compat.so |
설명 | 접근 권한과 관련된 오래된 설정(Apache 2.2 이전)을 Apache 2.4에서 사용할 수 있도록 함. |
|
80 | #LoadModule auth_digest_module modules/mod_auth_digest.so | LoadModule auth_digest_module modules/mod_auth_digest.so |
설명 | 사용자 인증 관련 모듈 활성화. | |
107 108 109 |
#LoadModule dav_module modules/mod_dav.so #LoadModule dav_fs_module modules/mod_dav_fs.so #LoadModule dav_lock_module modules/mod_dav_lock.so |
LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule dav_lock_module modules/mod_dav_lock.so |
설명 | WebDAV 관련 모듈 활성화 | |
174 | #LoadModule socache_shmcb_module modules/mod_socache_shmcb.so | LoadModule socache_shmcb_module modules/mod_socache_shmcb.so |
설명 | HTTPS에 접근하는 세션들에 대한 SSL 캐시 모듈 활성화 | |
176 | #LoadModule ssl_module modules/mod_ssl.so | LoadModule ssl_module modules/mod_ssl.so |
설명 | SSL 모듈 활성화 | |
227 | #ServerName www.example.com:80 | ServerName 192.168.0.11:80 |
설명 | 현재 서버의 IP와 60번 Line에서 설정한 포트를 사용. | |
516 | #Include conf/extra/httpd-dav.conf | Include conf/extra/httpd-dav.con |
설명 | WebDAV 관련 세부 설정 파일 지정 | |
527 | #Include conf/extra/httpd-ssl.conf | Include conf/extra/httpd-ssl.conf |
설명 | HTTPS 관련 세부 설정 파일 지정 |
Step 3. WebDAV 설정
WebDAV 설정 파일을 변경해야 하는데, 경로는 다음과 같다.
C:\Apache24\conf\extra\httpd-dav.conf
기존 httpd-dav.conf 파일의 17(포함)~51(포함) 라인의 내용을 제거하고, 아래의 설정으로 대체하도록 하자.
Alias /Data "D:"
<Location "/Data">
Dav On
# 인증 타입
AuthType Basic
# You can use the htdigest program to create the password database:
# htpasswd -c "${SRVROOT}/user.passwd" admin
AuthUserFile "${SRVROOT}/user.passwd"
AuthGroupFile "${SRVROOT}/groups.htgroup"
AuthDigestProvider file
<RequireAny>
Require user admin
</RequireAny>
</Location>
<Directory "D:">
Order Allow,Deny
Allow from all
AllowOverride None
Options Indexes
<RequireAny>
Require user admin
</RequireAny>
</Directory>
자신에게 맞게 변경해야 할 설정은 다음과 같다.
- Alias /Data "D:"
- '/Data'는 WebDAV 서버의 상대 URL 주소이다. 'https://192.168.0.111:80/Data'와 동일한 의미이다.
- 'D:'는 '/Data'에 매핑되는 실제 디렉토리 절대 경로이다. 'http://192.168.0.111:80/Data'로 접속할 경우 'D:'로 매핑된다.
- <Location "/Data">
- '/Data'는 Alias에서 지정한 상대 URL 주소와 동일하게 설정되어야 한다.
- <Directory "D:">
- 'D:'는 Alias에서 지정한 상대 URL 주소에 매핑될 디렉토리 경로와 동일해야 한다.
각 항목을 자신에 맞게 수정 하였다면, 이제 admin 유저를 생성하고 패스워드를 설정할 차례이다. cmd.exe를 실행하여 아래의 명령어를 사용하여 'user.passwd' 파일을 생성해 보도록 하자.
cd C:\Apache24\bin
htpasswd.exe -c "C:\Apache24\user.passwd admin
위의 두번째 명령어(htpasswd.exe)에서 '-c' 옵션을 사용하지 않을 경우, 기존 파일에 새로운 유저를 추가하는 것이다.
이제 admin의 접근 권한 파일(C:\Apache24\groups.htgroup)을 새롭게 생성하여 아래의 내용을 추가하자.
admins:admin
이 과정까지 완료하면 WebDAV를 실행할 준비는 다 된 것이다. HTTPS를 사용하지 않을 사용자는 바로 Step5로 건너뛰어도 된다. 하지만, 현재의 설정으로는 외부에서 WebDAV 서버를 접근할 경우 보안이 취약하다. Basic 인증 방식보다는 Digest 인증 방식이 보안에는 더 낫다. 그래서, Basic 인증 방식을 사용할 경우에는 HTTPS 설정을 통해 보안을 강화하는 것을 추천한다.
Step 4. HTTPS 설정
HTTPS 설정 파일(C:\Apache24\conf\extra\httpd-ssl.conf)을 편집하도록 하자.
Line | 변경 전 | 변경 후 |
36 | Listen 443 | Listen 5443 |
설명 | HTTPS 포트, 사용자가 원하는 값으로 설정. powershell을 실행하여 'netstat -an | select-string 포트번호' 명령어를 사용하여 출력되는 결과가 없는 포트번호를 사용. | |
88 | SSLPassPhraseDialog builtin | SSLPassPhraseDialog exec:C:\Apache24\conf\ssl_passwd.bat |
설명 | Apache 서버를 시작할 때 마다 SSL 인증서의 비밀번호를 물어보는데, 배치 스크립트(ssl_passwd.bat)에서 자동 리턴해 주도록 하여 서버 실행시 물어보지 않도록 한다. | |
123 | <VirtualHost _default_:443> | <VirtualHost *:5443> |
설명 | 35번 라인을 변경하였을 경우 함께 번경 | |
127 | ServerName www.example.com:443 | ServerName 192.168.0.111:5443 |
설명 | 서버 이름을 IP 주소와 36번 라인에서 지정한 포트번호를 사용하여 기입한다. |
이제 SSL 인증서를 생성해야 한다.
cd C:\Apache24\bin
openssl.exe req -config ..\conf\openssl.cnf -new -out server.csr -keyout server.pem
openssl.exe rsa -in server.pem -out server.key
openssl.exe x509 -in serve.csr -out serve.crt -req -signkey server.key -days 365
move server.key ..\conf
move server.key ..\conf
del server.csr
del server.pem
2번째 라인을 실행하면 private key에 대한 암호(pass phrase)를 입력하는 과정이 있는데 해당 암호를 작 기억해 두어야 하며, 나머지 추가 정보를 입력하라고 나오는데 문제를 일으킬만한 요소는 없으므로 적당히 입력하길 바란다. 4 번째 라인에서 365는 인증서의 유효기간인데 1년 정도를 추천한다.
마지막으로 배치 스크립트(C:\Apache24\conf\ssl_passwd.bat)를 작성하여 SSL 인증서에 사용된 암호(위의 인증서 생성시 2번째 명령어 라인에서 생성한 pass phrase)를 아파치 서버에게 알려주도록 하자.
@echo 암호
Step 5. 아파치 서비스 등록 및 부팅시 자동 시작 설정
아파치 서버를 서비스로 등록하여 윈도우 시작 시에 자동으로 실행되도록 설정하자. cmd.exe를 실행하여 아래의 명령어를 사용하여 서비스로 등록 가능하다.
cd C:\Apache24\bin
httpd.exe -k install -n "Apache-WebDAB"
서비스 등록 후 '윈도우 시작 키' + 'R' 버튼을 사용하여 services.msc를 실행하자.
지정한 이름(Apache-WebDAV) 서비스가 등록되어 있음을 확인할 수 있다. 해당 서비스에서 마우스를 우클릭하여 '속성'을 선택해 보자.
'시작 유형'이 자동으로 되어 있을 경우 윈도우 시작 시마다 아파치 서버가 자동 시작되어 WebDAV 서비스를 제공할 것이다.
이제 모든 설치 및 설정 과정을 마쳤으니 웹 브라우저에서 접속 확인을 해보길 바란다. 또한, Windows에서 해당 WebDAV를 네트워크 드라이브로 연결하기 위해서는 'RaiDrive'를 추천한다.
'My Projects' 카테고리의 다른 글
징동닷컴(jd.com)에서 노트북 직구 방법 (2) | 2021.03.11 |
---|---|
저전력 서버 구축 Windows 10 전원 옵션 자동 변경 프로그램 (1) | 2020.12.08 |
NAS 토렌트 프로그램 선택 및 추천 설정 (feat. Windows 10) (4) | 2020.06.10 |
Windows 10 트랜스미션(Transmission)의 개념과 설치/설정 방법 (0) | 2020.06.09 |
시놀로지 대체를 위한 고성능 저전력 NAS 구축하기 (J5005, 9W) / 자작 NAS 만들기 (4) - "최적화 그리고 소비전력" (11) | 2020.06.07 |
댓글