IT,프로그래밍/Linux(Ubuntu)
개인 자작 NAS를 위한 webdav 설정 - 1
Gouse
2018. 9. 30. 18:06
최초로 개인 NAS를 구성할 때 첫번째 이유가 된
네트워크 드라이브를 설정하기 위해
Webdav를 구성하는 것에 대해 작성한다.
먼저 Webdav를 구성하기 위해 이전에 수행한 작업은 아래와 같다.
1. 우분투 서버 구성을 위한 포트 포워딩
2. Apache2 설치
위의 것들을 수행 했다면 아래의 과정을 따라 함으로써 개인 네트워크 드라이브를 소유 할 수 있다.
먼저 Webdav는 Web-Based Distributed Authoring and Versioning 의 약자로 웹 기반의 분산형 저작 및 버전관리로써
HTTP(s)프로토콜 을 이용한 웹 기반 파일 관리를 할 수 있다고 보면 된다.
이는 기본적으로 Apache2를 설치 할때 같이 설치 되어 있으며, 아래와 같이 활성화 시켜준다.
1 2 | $sudo a2enmod dav $sudo a2enmod dav_fs | cs |
활성화 시켜준 다음에 Apache를 재시작 시켜준다
1 | $sudo service apache2 restart | cs |
그 다음 Webdav에 접속할 자격증명을 생성한다.
여러가지 방법이 있지만 가장 간단한 htpasswd를 이용한다.
htpasswd로 생성된 파일은 외부(웹)에서 접근할 수 없게 apache2 내부에 저장 하였다.
1 2 3 4 | htpasswd -c /etc/apache2/webdavpw.pwd <UserID> New password: Re-type new password: Adding password for user webdav | cs |
이제 생성된 UserID 와 그에 해당하는 해쉬코드가 apache2 폴더 내부에 webdavpw.pwd 란 파일로 저장 되었다.
htpasswd 에 대한 자세한 이야기는 다른곳에서 다루겠다.
이제 웹 서버로 설정할 곳을 정해야 한다.
나의경우 기본적으로 저장된 ssd 가 아닌 추가되어 있는 하드를 웹하드의 기본 폴더로 정하기로 한다.
이를 위해 추가하드의 마운트 위치를 항상 일정하게 가져갈 필요가 있는데 이를 위해 fstab를 수정하였다.
1 2 3 | sudo vim /etc/fstab 맨 아랫줄에 아래 내용을 추가 (개인 설정에 따라 다름) /dev/sdb2 /media/nas ext4 defaults 0 2 | cs |
나의 경우 추가하드의 공간중 Nas로 쓰려고 하는 파티션이 2이므로
sdb2를 /media/nas에 마운트 시켜주었고, 이때 이 파티션은 ext4로 포멧되었으므로
ext4로 마운트 해주었다. 이제 추가 하드는 /media/nas로 접근이 가능하다
이제 실제 Webdav를 구동하기위한 설정을 해준다.
나중에 sites를 활성화 시킬때 Webdav파일을 따로 만들어서 해도 되지만
기본값인 000-default.conf 에 추가 설정을 해줬다.
/etc/apache2/sites-available/000-default.conf 파일에 아래와 같은 내용을 추가해 준다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Alias /webdav /media/nas <Location /webdav> DAV on AuthType Basic AuthName "webdav" AuthUserFile /etc/apache2/webdavpw.pwd Require valid-user </Location> <Directory /media/nas> DAV on Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny allow from all </Directory> | cs |
설정을 마쳤으면 아파치를 재시작 해준다
1 | $sudo service apache2 restart | cs |
아파치가 재시작 되었으면 터미널에서 Webdav를 사용 가능하게 해주는
Cadaver를 설치해 준다
1 | sudo apt-get install cadaver | cs |
설치된 cadaver를 통해 구성한 Webdav가 잘 동작하는지 확인 할 수 있다.
1 2 3 4 5 6 | $ cadaver http://localhost/webdav Authentication required for webdav on server `localhost': Username: UserID Password: dav:/webdav/> quit Connection to `localhost' closed. | cs |
위와 같이 아까 htpasswd에서 설정한 ID, 비밀번호를 이용하여 접속할 수 있다면
1차적으로 Webdav 설정은 마쳤다.