본문 바로가기
My Projects

최신 Apache WebDAV 설치 및 설정하기 / Apache 2.4.43 / Windows 10 / LINUX

by BestUgi 2020. 6. 13.
본 문서는 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'를 우클릭하여 '속성'을 선택하면 확인 가능하다. 

 

[그림 1] 시스템 종류 확인 (내컴퓨터 - 내 PC 우클릭 - 속성)

이제 아파치 라운지의 다운로드 페이지에 접속해 보자.

아파치 다운로드 페이지

아파치를 다운로드 하기 전에 'Visual C++ 재배포 가능 패키지'를 설치해야 한다. 위의 그림에서 초록색으로 표기된 링크를 클릭하여 재배포 가능 패키지를 다운로드 가능한데, 자신의 시스템 종류에 맞게 바이너리를 선택 후 다운로드하도록 하자. 다운로드하였다면 더블 클릭 후 설치하면 된다.

 

그리고 [그림 2]에서 빨간색으료 표기된 아파치 바이너를 자신의 시스템 종류에 맞게 다운로드하도록 하자. 다운로드 완료 후 압축을 풀면 된다. 아파치는 별도의 설치 과정이 필요 없고 단순히 압축 해제만 하면 된다. 압축을 해제하고 Apache24 폴더를 적절한 위치로 이동한다. 필자의 경우 C:\로 이동하였다.

Apache 설치 경로

 

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'를 추천한다. 

댓글