본문 바로가기

리눅스

라즈베리파이 webdav 연결하여 나만의 영화 서버 구축(HTTPS 편)

라즈베리파이에 넣어둔 영화 파일을 외부에서 폰으로 보고 싶다면 잘 따라하시면 됩니다.

 

참고로 저도 이 방법으로 폰으로 영화를 보고 있는데 속도가 sftp 보다 webdav 가 더 속도도 빠르고 좋은 것 같아서 webdav 방식을 이용한 연결 방법으로 택했습니다.

 

참고로 이 게시물은 webdav HTTPS 편 이므로 SSL인증서가 준비가 먼저 되 있으셔야 합니다.

인증서 없이 구현을 원하시는 분들은 아래 링크인 webdav HTTP 로의 구성 편으로 이동해 주세요.

 

lance.tistory.com/14

 

라즈베리파이 webdav 연결하여 나만의 영화 서버 구축(HTTP 편)

라즈베리파이에 넣어둔 영화 파일을 외부에서 폰으로 보고 싶다면 잘 따라하시면 됩니다. 참고로 저도 이 방법으로 폰으로 영화를 보고 있는데 속도가 sftp 보다 webdav 가 더 속도도 빠르고 좋은

lance.tistory.com

 

 

그럼 시작하겠습니다.

 

 

먼저 아파치2를 설치해 줍니다.

sudo apt-get update
sudo apt-get install apache2

update 를 한번 하고 apache2 를 설치 합니다.

 

sudo a2enmod dav
sudo a2enmod dav_fs

그 후 위와 같이 webdav 사용을 위한 dav, dav_fs 모듈을 켜 줍니다.

 

이제 기능은 다 준비 되었습니다.

 

 

라즈베리파이 서버의 영화를 담을 폴더를 하나 만들어 줍시다.

(저는 외장하드 안에 담았기 때문에 아래와 같은 예시로 하겠습니다)

mkdir -p /mnt/exHDD/movies

영화 파일은 이 폴더 안에 잔뜩 담아 주시면 됩니다.

 

 

그리고 이제 심볼릭 링크를 하나 만들겠습니다.

sudo ln -s /mnt/exHDD/movies/ /webdav

위와 같이 /webdav 의 경로로 심볼릭 링크를 주고 나중에 apache webdav 설정을 /webdav 경로로 주게 되면 알아서 심볼릭 링크를 타고 /mnt/exHDD/movies 안으로 찾아 들어 갑니다.

 

원래는 /mnt/exHDD/movies 폴더의 소유권을 www-data:www-data 로 바꿔서 apache 설정 상에 직접 경로를 줘도 되지만 심볼릭 링크로 주는게 나중에 관리하기 더 편해서 이 방식으로 택했습니다.

 

 

그럼 계속 이어서,

 

이제 webdav 계정을 만들겠습니다.

 

sudo htpasswd -c /etc/apache2/webdav.passwd username

위 명령어로 끝에 username 대신 원하는 아이디를 넣으시면 됩니다.

 

명령어를 수행하면 계정에 대한 비밀번호를 입력하라고 나오게 되고 비밀번호까지 입력을 잘 하시면 계정이 만들어 집니다.

 

해당 /etc/apache2/webdav.passwd 파일을 cat 으로 열어보시면 계정이 만들어졌고 비밀번호가 암호화되어 있는 걸 볼 수 있습니다.

 

추가적으로 2번째 계정을 만들고 싶다면,

sudo htpasswd /etc/apache2/webdav.passwd username

위와 같이 -c 옵션을 빼고 명령어를 수행하면 /etc/apache2/webdav.passwd 파일 상에 누적으로 계정들이 만들어 집니다.

 

sudo chown root:www-data /etc/apache2/webdav.passwd
sudo chmod 640 /etc/apache2/webdav.passwd

이제 두 명령어로 webdav.passwd 파일의 소유권 및 권한을 위와 같이 바꿔 줍니다.

 

 

이제 apache2 설정 입니다.

 

cd /etc/apache2

여기로 이동 합니다.

 

 

먼저 /etc/apache2/ports.conf 파일을 열어 줍니다.

vi /etc/apache2/ports.conf

vi 편집기로 열어서 

 

 

ports.conf

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf



<IfModule ssl_module>
  Listen 55000
</IfModule>

<IfModule mod_gnutls.c>
  Listen 55000
</IfModule>

 

위와 같이 Listen 55000 을 넣어줍니다.

(저는 포트를 55000 번을 사용할 것이기 때문에 위와 같이 입력했으며 다른 원하는 포트 넘버로 입력해 주셔도 됩니다. 하지만 기본 80이나 443 은 공격 시도가 많이 들어오기 때문에 되도록 저처럼 10000번대 이후 포트로 바꾸는걸 권장 합니다)

 

 

그리고 저장하고 나옵니다.

 

 

이제 아파치 파일로 갑니다.

cd /etc/apache2/sites-available/

 

여기서 default-ssl.conf 를 vi 편집기로 열어 주시면 됩니다.

 

 

default-ssl.conf

<VirtualHost *:55000>
        ### Webdav with HTTPS###
        ServerAdmin webmaster@localhost

        DocumentRoot /webdav
        <Directory /webdav>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        Alias /webdav /webdav

        <Location /webdav>
           DAV On
           AuthType Basic
           AuthUserFile /etc/apache2/webdav.passwd
           Require valid-user
       </Location>

        ErrorLog ${APACHE_LOG_DIR}/webdav_https_error.log
        CustomLog ${APACHE_LOG_DIR}/webdav_https_access.log combined

        SSLEngine on

        SSLCertificateFile /etc/letsencrypt/live/mydomain.duckdns.org/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.duckdns.org/privkey.pem
        SSLCertificateChainFile /etc/letsencrypt/live/mydomain.duckdns.org/fullchain.pem

</VirtualHost>

 

https 용은 SSL 인증서가 함께 포함이 되어야 하기 때문에,

 

먼저 인증서 발급이 되어 있으셔야 합니다.

(무료 SSL인증서는 letsencrypt 라는 단체에서 90일씩 무료 제공을 하고 있으니 참고하시면 되겠습니다)

 

 

default-ssl.conf 을 보시면 맨 하단에 SSLCertificateFile, SSLCertificateKeyFile, SSLCertificateChainFile 부분에

 

본인이 가지고 있는 SSL 인증서의 경로를 잡아 주시면 됩니다.

(위 경로는 예시경로이며, 대개 letsencrypt 로 certbot 을 통해 SSL인증서를 받으면 /etc/letsencrypt/live/ 안에 있으며 그 뒤 경로는 본인 도메인주소명으로 된 폴더, 그 안에 키 파일들이 위 경로와 같이 있습니다)

 

 

 

이제 다 되었습니다.

 

마지막으로,

sudo a2ensite default-ssl.conf
sudo a2enmod ssl

ssl 모듈 활성화를 위해 두 명령어를 먹여 줍니다.

 

 

이제,

systemctl restart apache2

위 명령어로 apache2 재기동을 한번 해주면 서비스가 시작 됩니다.

 

 

https://내도메인주소또는IP:55000/webdav

 

 

크롬이나 인터넷 브라우저에서 위 경로로 접속을 해 보시면 아이디와 패스워드를 치는 창이 나올 겁니다.

거기에서 webdav 용으로 만든 계정 및 비번을 입력하면 /mnt/exHDD/movies 안에 있는 파일 리스트들이 나오게 됩니다.

 

성공!

 

 

추가적으로 휴대폰에서 접속해서 보는 방법은 아래 링크로 이어가 주세요!

lance.tistory.com/15

 

라즈베리파이 webdav 구축 후 휴대폰으로 감상하기

지난번 라즈베리파이에 webdav 로 나만의 영화 서버 구축하는 방법에 이어 이제 어디서나 휴대폰으로 내 라즈베리파이 서버에 연결해서 영화를 감상하기 위한 방법 입니다. 이번 글은 ios, Android

lance.tistory.com