WsgiDAV를 사용하여 Debian 10에 WebDAV 배포

소개

WebDAV (Web Distributed Authoring and Versioning)는 서버에서 파일을 원격으로 작성하고 수정하기위한 프레임 워크를 제공하는 HTTP 확장입니다. WsgiDAV는 Python으로 작성된 WebDAV 서버로, 이 안내서는 데비안 10을 실행하는 Vultr 서버에 WsgiDAV 버전 3.0을 설치하는 데 도움이 됩니다. 또한 SSL 연결을 통해 PAM 인증을 제공하며 보안 연결을 설정하는 방법도 안내합니다.

전제 조건

  1. (루트 사용자 또는 sudo 사용자를 통해) 접근 권한이 있는 데비안 10 시스템.
  2. $EDITOR 환경 변수를 원하는 텍스트 편집기로 설정해야 합니다.
  3. 등록된 도메인 이름이 필요합니다. 이름 서버는 A 서버의 IPv4 주소를 가리키고 AAAA가 옵션으로 IPv6 주소를 가리키는 레코드로 구성해야 합니다.
  4. YAML 구문에 익숙할 것을 권장합니다.

자리 표시 dav.example.com자는 서버의 도메인 이름으로 사용됩니다.

설치

1. SSL 인증서 설정

시스템을 업데이트하고 Let's Encrypt에서 무료 SSL 인증서를 얻는 것으로 시작하겠습니다. 먼저 시스템을 업데이트하고 certbot 유틸리티를 설치하십시오.


sudo apt update
sudo apt upgrade -y
sudo apt install -y certbot

아래 명령에서 dav.example.com[email protected]를 각자의 도메인 이름과 이메일 주소로 바꾸어 실행합니다.


sudo certbot certonly --standalone --agree-tos -m [email protected] -d dav.example.com

지정된 도메인 이름을 제어하는지 확인하기 위한 챌린지가 서버에 전송됩니다. 성공 시, 개인 키와 함께 인증서가 /etc/letsencrypt/live/dav.example.com/에 발급되고 저장됩니다.

2. WsgiDAV 설치

먼저 Python 패키지 관리자를 설치합니다:


sudo apt update
sudo apt install -y python3-pip

WsgiDAV는 WSGI를 지원하는 HTTP 서버가 필요하며, 기본 옵션인 Cheroot를 설치합니다. 또한, lxml Python 라이브러리와 PAM (Pluggable Authentication Module) Python3 라이브러리를 설치합니다.


sudo pip3 install wsgidav cheroot lxml python-pam

3. WsgiDAV 구성

WsgiDAV 실행 파일은 /usr/local/bin에 위치하므로 구성 파일을 /usr/local/etc 디렉토리에 배치합니다. 샘플 구성 파일을 다운로드하기 위해 다음 명령을 사용합니다.


sudo mkdir -p /usr/local/etc
sudo wget https://github.com/mar10/wsgidav/raw/master/sample_wsgidav.yaml -O /usr/local/etc/wsgidav.yaml

구성 파일을 편집하기 위해 다음 명령을 실행합니다:


sudo $EDITOR /usr/local/etc/wsgidav.yaml

"SSL 지원" 섹션에서 다음 라인을 찾아 아래와 같이 교체합니다.


ssl_certificate: "/etc/letsencrypt/live/dav.example.com/cert.pem"
ssl_private_key: "/etc/letsencrypt/live/dav.example.com/privkey.pem"
ssl_certificate_chain: "/etc/letsencrypt/live/dav.example.com/chain.pem"

다음으로 HTTP 경로를 파일 시스템의 해당 위치에 매핑하여 공유 경로를 설정합니다:


provider_mapping:
    "/": 
        root: "/var/www/html/documents"
        readonly: false
    "/reports":
        root: "/var/www/html/reports"
        readonly: true

이 매핑으로 https://dav.example.com:8080//var/www/html/documents에, https://dav.example.com:8080/reports/var/www/html/reports에 매핑됩니다.

PAM 드라이버를 사용하여 인증을 처리하므로 별도의 WebDAV 사용자 계정 필요가 없습니다. "인증" 섹션에서 다음 행을 찾아 교체합니다:


accept_basic: true
accept_digest: false
default_to_digest: false
domain_controller: wsgidav.dc.pam_dc.PAMDomainController

이제 서버를 테스트할 수 있습니다:


sudo wsgidav -c /usr/local/etc/wsgidav.yaml

https://dav.example.com:8080/를 웹 브라우저에서 엽니다. PAM 인증을 구성했으므로 Linux 사용자 계정으로 로그인해야 합니다. 종료하려면 CTRL + C를 누릅니다.

4. 서비스로 설치

systemd가 관리하는 시스템 서비스로 WebDAV 서버를 실행하기 위해 유닛 파일을 작성합니다:


sudo $EDITOR /etc/systemd/system/wsgidav.service

다음 내용을 입력합니다:


[Unit]
Description=WsgiDAV WebDAV server
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/wsgidav -c /usr/local/etc/wsgidav.yaml
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=wsgidav_service

[Install]
WantedBy=multi-user.target

다음으로 시스템 로깅 서비스에 대한 구성 파일을 작성합니다:


sudo $EDITOR /etc/rsyslog.d/wsgidav_service.conf

다음 내용을 사용하여 파일을 채웁니다:


if $programname == 'wsgidav_service' then /var/log/wsgidav.log & stop

저장하고 종료 후 로그 파일을 작성합니다:


sudo touch /var/log/wsgidav.log
sudo chown root:adm /var/log/wsgidav.log

마지막으로 WsgiDAV를 시작하기 전에 새 시스템 단위 파일을 로드하고 로그 서비스를 다시 시작합니다:


sudo systemctl daemon-reload
sudo systemctl restart rsyslog.service
sudo systemctl start wsgidav.service

이제 systemctl을 사용하여 WebDAV 서버를 시작, 중지 및 다시 시작할 수 있습니다. WsgiDAV의 출력 및 오류는 /var/log/wsgidav.log에 기록됩니다.

시스템 부팅 시 WebDAV 서버가 자동으로 시작되도록 하려면 다음 명령어를 실행합니다:


sudo systemctl enable wsgidav.service

추가 자료



4 Comments

  1. 수희 -

    와, 저도 이제 WebDAV 쓰기 시작했어요! 필수 도구가 될 듯!

  2. 아리 -

    이제 WebDAV를 활용해 보려고 합니다. 다른 분들은 어떤 용도로 사용하시나요

  3. 모찌 -

    WSGI DAV를 쓰면서 각종 문제에 부딪히는데, 여기서 도움 받을 수 있어요?

  4. 효진 -

    WebDAV의 보안 설정은 어떻게 관리하나요? 혹시 조언해 주실 수 있나요?

Leave a Comment

NTLite를 사용하여 업데이트로 Windows 사용자 지정 ISO를 만드는 방법

NTLite를 사용하여 업데이트로 Windows 사용자 지정 ISO를 만드는 방법

NTLite를 사용하여 Vultr 시스템과 호환되는 Windows 사용자 지정 ISO를 만드는 방법을 단계별로 설명합니다. 최신 드라이버와 업데이트 통합을 포함한 완벽 가이드.

Vultr에서 BGP 구성

Vultr에서 BGP 구성

Vultr BGP 설정을 위한 단계별 튜토리얼. ASN 할당부터 IP 라우팅 구성, BIRD 데몬 설정, FreeBSD 특이사항 및 실전 문제 해결 팁 7가지 포함한 최종 가이드

WsgiDAV를 사용하여 Debian 10에 WebDAV 배포

WsgiDAV를 사용하여 Debian 10에 WebDAV 배포

WebDAV (Web Distributed Authoring and Versioning)를 이용한 원격 파일 작성을 위한 프레임워크로, WsgiDAV 설치 및 구성 방법을 안내합니다.

데비안 7에 Mailcow 설치

데비안 7에 Mailcow 설치

Mailcow는 DoveCot, Postfix 및 기타 여러 오픈 소스 패키지를 기반으로 하는 경량 메일 서버입니다. 데비안에서 Mailcow 설치 방법을 안내합니다.

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.

ReactOS: 이것이 Windows의 미래입니까?

ReactOS: 이것이 Windows의 미래입니까?

오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구