-
[Linux][NAS] NAS 제작 1. OMV6 + FileBrowser 편OS/Linux 2024. 1. 14. 06:42
0. OS 선정
연구실에서 사용하던 NAS가 아파 보였다.
시놀로지의 2 베이의 구형 모델 (대략 10년 전 모델)을 사용하고 있었으나 속도, 용량, 소음 등 문제가 많다.
본 글과 추후 작성될 NAS 제작 글에서는 아래의 3가지 OS를 소개하고자 한다.
(헤놀로지에 대해서는 다루지 않을 예정이다. 여러 문제가 있으므로, 헤놀로지를 원하는 사람은 다른 사람들의 글이나 NAS에 대해 다루는 커뮤니티에서 찾길 바란다.)
1) OMV (openmediavault)
- 데비안 기반으로 NAS 운영에 특화된 OS이다. 데비안 계열이므로, apt, dpkg를 사용할 수 있는 메리트가 있다.
[장점]
- NAS 특화 os 중, 유일하게 ARM 아키텍처를 지원한다. (라즈베리를 사용하여 NAS를 구축할 수 있음.)- WebGUI를 기반으로 커맨드 없이도 설치 및 관리하기 쉽다.
[단점]
- WebGUI가 빈약하다.
- 기본적으로 지원되지 않는 기능(토렌트 다운로드, WebDAV 등)을 사용하기 위해 Docker 지식이 필요하다.
2) TrueNAS
- 데비안 기반의 NAS 운영에 특화된 OS
- Core, Enterprise, Scale 총 3가지 버전이 있다. (개인 사용자 : core & scale / 대규모 서버 : Enterprise & scale)
[장점]
- ZFS 파일 시스템 지원
- 강력한 WebGUI 기능
[단점]
- 사용에 필요한 최소 사양이 높음
3) Ubuntu
- 데비안 기반 리눅스 배포판
[장점]
- 장기적인 지원
- 커뮤니티의 규모가 큼 (관련 정보를 찾기 편함)
[단점]
- 관리를 위해 설정 및 설치할게 많음
- WebGUI x
4) FreeBSD (추후 작성 가능성 있음.. 한번 밀어버려서 당장 작성하진 않을 듯함.)[참고 _ 목적과 기능]
1. SMB 보다는 Web 브라우저를 사용하여 접근 가능
2. Web 브라우저를 통해 업로드, 다운로드, 공유가 가능
3. 유저들이 모두 접근 가능한 디렉토리가 있어야 함.
4. 유저 개인 만이 접근 가능한 홈 디렉토리가 있어야 함.
최종적으로 아래 트리 구조로 파일 구조를 만들고 이를 운영하고자 함.
[참고 _ 최종 파일 시스템의 Tree 구조]
DATA #최상단 디렉토리 (File Browser의 root dir)
|- Share_Backup #(전 인원 접근 가능, 공유 디렉토리)
| |- Dir1 #(예시임)(업로드된 디렉토리)
| |- Dir2 #(예시임)(업로드된 디렉토리)
| |- Dir3 #(예시임)(업로드된 디렉토리)|- user1 #(유저 개인 디렉토리)
|- user2
|- user3
1. OMV os 설치
본 글에서는 ISO 이미지를 통해 설치함. 따라서 usb가 필요함.
https://www.openmediavault.org
공식 홈페이지 상단 Download 페이지로 접속 후, ISO 이미지를 Stable 버전으로 다운로드한다.
주인장의 OMV 버전은 6.9.11-4 버전임.
ISO 이미지를 다운 후, 설치하는 것에 대해서는 다루지 않겠음.
설치 순서는 다음과 같음
1) 설치 언어 선택
2) 지역 설정
3) 언어팩 설정 (Locale)4) 호스트명 수정 - (openmediavault) 기본값으로 진행
5) Domain명 수정 - 기본값으로 진행
6) root 암호 설정 (리눅스에서 사용될 root 암호)
7) 설치할 디스크 설정
8) 리눅스 패키지 서버 설정 (데비안 리눅스 패키지) - 기본값 혹은 Korea, Republic of로 수정
8-2) 패키지 미러서버 설정 - ftp.kr.debian.org 기본값
9) 프록시 설정 - 빈칸 그대로 진행
10) 패키지 설치 진행 및 재부팅
2. OMV 설정
설치 후, 설치된 PC의 내부 ip로 접속.
ex) 설치된 PC ip : 192.0.0.12
초기 관리자 아이디의 사용자 이름은 'admin', 비밀번호는 'openmediavault' 이다.
2.1. 관리자 Password 변경
우측 상단 사람 모양을 클릭 후, 암호부터 바꾸도록 한다.
2.2. 관리자 페이지 접속 포트 변경
좌측 System - Workbench - Port
Port를 변경 후, 아래 그림 4와 같이 설정을 저장할 거냐는 창이 뜬다면, 저장한다.
포트를 변경했다면, 해당 포트로 포트포워딩을 해준 뒤, 해당 포트로 재 접속한다.
ex) 192.0.0.12:1234
2.3. SSH 접속 계정 생성 + SSH 서비스 활성화
사용자 - 사용자 - + 버튼 순으로 클릭
이름 : 접속할 아이디
전자우편 : 작성하지 않음
암호 : ssh를 통해 접속할 비밀번호
셸 : 접속할 셸 설정 / 아래서 설명하겠지만, ssh 관리자 계정 외, 다른 계정은 /nologin으로 설정해야 함.(접근 불가)
그룹 : root, ssh, sudo 3가지 권한을 체크 (*관리자 계정 만) (root 계정으로 전환 가능, sudo를 사용할 예정이라면)
서비스 - SSH - 활성화 클릭 - 포트포워딩
2.4. 일반 사용자 계정 및 그룹 생성
사용자 - 그룹 - + 버튼
사용자 - 사용자 - + 버튼 (일반 사용자)
SSH 계정 생성과 비슷하나, 아래 두 가지는 꼭 확인
1) 셸이 /usr/sbin/nologin 인가?
2) 그룹에 ssh나 root는 없는가?
3) 그룹에 users를 체크했는가?
아래 그림은 예시로, ssh 접근 금지 + 앞서 생성한 그룹 + OS가 분류한 Users 그룹 이 설정된 계정 생성이다.
2.5. 저장소 생성
저장소 - 디스크 - 저장장치 선택 - 지우개 버튼 클릭
순으로 해당 저장장치를 초기화하는 것이 가능하다.
이때, OS가 설치된 디스크를 지우지 않도록 주의한다.
2.5.1. 디스크를 여러 개 묶어 사용할 경우 (권장)
RAID 종류는 총 6개로 다음과 같다.
스트라이프 : 선택된 저장장치를 하나로 묶어 사용 (고장 시, 복구 불가) (비추천)
미러 : 2개의 저장 장치에 데이터를 똑같이 저장 (하나가 고장 나도 다른 하나로 복구 가능)
선형 : 스트라이프와 동일하게 묶어 하나로 저장하나, 1번 디스크부터 순차적으로 데이터를 저장한다.
RAID 10 : 최소 4개부터 생성 가능 / RAID 0 + RAID 1
RAID 5 : 최소 3개부터 생성 가능 / (성능 때문에 5개를 묶는 것을 추천)
RAID 6 : 최소 4개부터 생성 가능
보통 일반 사용자는 하드 2-3개를 사용하는데, 스트라이프 혹은 미러로 사용할 가능성이 높음.
장시간 켜두고, 장시간 자료를 보관하는 서버일수록 미러로 진행하는 것을 추천함.
이후, 저장소 - 파일 시스템 - 화살표 버튼 클릭
그림 13번을 참고하여, RAID 된 디스크를 마운트 (이때, Threshold는 85% 기본값으로 진행)
2.5.2. 디스크를 하나씩 따로 사용할 경우
이 경우, 위 과정인 2.5.1. 을 진행하지 않고 바로 파일 시스템으로 이동
저장소 - 파일 시스템 - + 버튼 - EXT4 선택
2.6. 공유 폴더 생성
저장소 - 공유 폴더 - + 버튼 클릭
이름 : 해당 폴더의 이름
파일 시스템 : 앞서 생성한 저장소
Relative path : 상대 경로
* 권한 *
전) 관리자: 읽기/쓰기, 사용자: 읽기/쓰기, 기타: 읽기 전용으로 기본값이 설정되어 있습니다.
후) 관리자: 읽기/쓰기, 사용자: 읽기/쓰기, 기타: 권한 없음으로 수정합니다.
Tages : 해당 공유 폴더의 태그
[예시]
주인장은 그림 14와 같이 최상단을 DATA 디렉토리로 생성 하고, 하위 디렉토리로 Share_Backup이라는 디렉토리를 생성했습니다. Share_Backup 아래는 공유 및 저장용 파일들이 저장 될 예정입니다.
또한, 사용자들의 home 디렉토리를 DATA 디렉토리 하위에 생성했습니다. 사용자들의 home 디렉토리에는 사용자 본인만 사용가능한 디렉토리입니다.
Tree는 다음과 같습니다.
DATA
|- Share_Backup
| |- Dir1 (예시임)
| |- Dir2 (예시임)
| |- Dir3 (예시임)|- user1
|- user2
|- user3
2.7 공유 폴더 권한 설정
권한 설정을 원하는 공유 폴더를 클릭 후, 상단 권한 버튼을 클릭합니다. (박스의 왼쪽 아이콘)
해당 페이지 내, 사용자들의 권한을 수정해 줍니다.
이후, 접근 제어를 위해 박스의 오른쪽 아이콘을 클릭해 줍니다.
해당 페이지에서도 직전 권한 설정과 동일하게 권한을 부여합니다.
이때, 생성한 사용자 외에도 www-data 사용자와 www-data 그룹에 권한을 부여해야 합니다.
이후, 하단 저장 버튼을 클릭하여 저장합니다.
2.8 네트워크 공유 폴더 (SMB/CIFS) *스킵 가능*
주인장은 SMB 대신 후술할 웹 페이지를 통해 파일 업로드 및 공유 기능을 사용할 것이므로 스킵함.
서비스 - SMB/CIFS - 공유 - 앞서 생성한 공유 폴더를 선택 후 활성화
윈도우 - 파일탐색기 - 네트워크 탭 - 본인 NAS
3. FileBrowser 설정
3.1. 설치 및 기본 설정
파일을 웹 페이지를 통해 업로드, 다운로드, 공유 가능하도록 해주는 파일 매니저입니다.
본 글에서는 Docker를 사용하는 것이 아닌 apt를 통해 설치하고 관리하는 과정을 다룹니다.
우선, 파일 매니저가 접근할 수 있도록 심볼링크를 걸어줍니다.
공유 폴더 경로를 가져오기 위해 2.6. 공유 폴더 생성에서 확인가능한 최상단 디렉토리의 절대 경로를 복사합니다.
해당 경로를 루트 디렉토리로 심볼링크를 걸어줍니다.
플라이시스템 내에서 심볼링크 사용은 불가능하나, 외부에서는 사용 및 접근이 가능합니다.
#심볼링크 ln -s (경로/원본) (경로/링크이름) #(예시) ln -s /복사한_절대_경로 /DATA
위 코드를 실행하면, 앞서 생성한 공유 디렉토리의 최상단인 DATA를 /경로에 심볼링크를 걸어주게 됩니다.
https://filebrowser.org/installation/
https://github.com/filebrowser/filebrowser
우선 관리자 계정으로 ssh를 통해 서버에 접속합니다.
이후, 아래 명령어를 입력하여, 설치합니다.
주인장은 1번을 사용했습니다.
#1. curl로 설치하기 curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash #2. Brew를 사용한 설치 brew tap filebrowser/tap brew install filebrowser
이후, 본인이 원하는 위치에 디렉토리를 생성합니다.
해당 디렉토리는 filebrowser의 설정 파일과 db 그리고 커스텀을 위한 사진과 자료들이 들어갈 위치입니다.
아마 그림 24와 같이 filebrowser.db와 filebrowser.json이 없을 겁니다.
vim을 통해 두 파일을 생성해 줍니다. filebrowser.db는 빈 파일로 두고, filebrowser.json은 아래 내용을 추가합니다.
{ "port": 12344, "baseURL": "", "address": "192.0.0.12", "log": "stdout", "database": "/filebrowser/filebrowser.db", "root": "/DATA" }
port는 본인이 원하는 포트를 입력 후, 해당 포트로 포트 포워딩 합니다.
address는 PC의 내부 ip입니다.
database는 앞서 생성한 filebrowser.db가 있는 경로로 입력합니다.
root는 filebrowser가 접근할 홈 디렉토리 입니다. 본 글에서는 공유 폴더 최상단 위치의 심볼링크로 입력했습니다.
3.2. Filebrowser 권한 설정
앞서 2.7의 접근 권한 설정으로 이동하여, 검색해 보면 Filebrowser가 생긴 것을 알 수 있습니다.
Filebrowser에게 읽기 쓰기 권한을 주고 저장합니다.
3.3. Filebrowser 유저 생성
앞서 설정한 포트로 접속하면 아래와 같은 로그인 페이지가 나옵니다.
초기 관리자 아이디는 admin, 비밀번호는 admin입니다.
접속 시, 처음 구상한 것과 동일하게, 최상단 DATA 디렉토리 내부가 기본 디렉토리가 됐습니다.
이제, 사용자 홈디렉토리에 접근권한을 주고, 공유 디렉토리에는 모두가 접근 가능하도록 계정 생성과 권한을 수정하겠습니다.
설정 - 사용자 관리 - 신규 버튼
사용자 이름, 비밀번호를 생성하고, 범위는 기본값 그대로 둡니다.
권한의 경우, 관리자 권한과 명령 실행 권한을 뺀 나머지를 부여합니다.
[중요]
최 하단, 룰 버튼을 다음 사진과 동일하게 변경하도록 합니다.
Regex /.+ : 최상단 디렉토리에 모든 파일 및 디렉토리에 접근을 막습니다. (아래 설정한 Allow 경로를 제외하고)
Allow /(해당 user의 홈 디렉토리) : /DATA/user1 경로의 접근을 허가합니다.
Allow /Share_Backup : Share_Backup 디렉토리에 접근을 허가합니다.
유저들의 권한을 위와 같이 설정할 경우, 본인의 홈 디렉토리와 공유용 디렉토리 외 다른 사람의 홈 디렉토리로의 접근을 막을 수 있습니다.
이상으로, OMV6 os와 Filebrowser를 사용한 NAS 서버 제작 첫 번째 이야기를 마칩니다.
FileBrowser는 로고와 제목 등 커스터마이징 기능을 제공하니 하단 링크를 참고하길 바랍니다.
https://filebrowser.org/configuration/custom-branding
'OS > Linux' 카테고리의 다른 글
[Linux]vim 명령어 (0) 2021.08.14 [Linux][VMware] 우분투 20.04 LTS 미러서버 변경 (0) 2021.08.14 MX Linux 설치 (MX-19.4)(VMware) (0) 2021.07.06 [Linux][VMware] 우분투 20.04 LTS 한글 입력기 설치 (0) 2021.05.24 [Linux][VMware] 우분투 20.04 LTS 설치 (2) 2021.05.24