우리집에 NAS 구축하기

유용한 도구|2020. 11. 1. 22:03

작년까지 Google Cloud Platform을 공짜로 쓰다가 더이상 사용 할 수 없는 상황이 되어 NAS라는 것을 구매하게 되었다.

내가 구매한 제품은 Synology DS218+ 이고, 램이 2GB 였다.

만약 docker를 운영한다면 메모리를 추가적으로 설치하는 것을 권장한다. 나는 4GB를 추가해서 총 6GB로 사용 중이다.

 

NAS를 활용하는 방법은 개개인에 따라 모두 다르다.
나같은 경우는 웹서버를 하나 운영하고 있고, 영화 음악 사진 등을 편리하게 접근하기 위한 용도로 많이 활용한다.
그리고 다양한 실험도 가능하다는 것이 매력적이다.
패키지로 제공하고 있는 docker를 이용하여 다양한 시스템을 설치해 보고 그것을 사용해 본다.
대표적으로 ntopng, guacamole 등 이다.
ntopng은 네트워크 모니터링 툴이고, quacamole는 웹으로 RDP 또는 SSH등을 사용하게 하는 오픈 소스 시스템이다.
quacamole는 여러모로 유용하게 사용하고 있다.

 

 

목차

  • 우리집 네트워크 다이어그램
  • 우리집 NAS
  • ipTIME을 허브 모드로 설정하는 방법
  • 내가 ipTIME을 허브 모드로 설정하게 된 이유
  • NAS를 사용하게 되면서 접하는 용어들
  • 사진 관리 (Photo Station)
  • 함께 사용하면 좋은 필수 앱
  • 백업하기
  • 2단계 인증 사용하기
  • 계정 자동 차단 활성화
  • 작업 스케줄러에 사용자 정의 스크립트 추가하기
    전원 예약 설정
  • 전원 예약 설정
  • NAS 고정 아이피 할당하기
  • 역방향 프록시 이용하기

 

 

| 우리집 네트워크 다이어그램

자~ 그럼 우리집 네트워크 환경을  살펴 보도록 하자.

우리집 네트워크 환경

우리집 네트워크 환경이다.

LGU+ 공유기가 외부 인터넷과 연결 되어 있다. (보안상 외부 IP는 안 보이게 처리 했음)

LGU+ 공유기에는 무선 공유 기능이 없어서 셋톱 박스에서만 유선으로 연결하여 사용 중에 있다.

그리고 ipTIME 공유기는 허브 모드로 동작하여 NAS, 노트북, 휴대폰등에 연결되어 사용 중에 있다.

물론 NAS는 ipTIME과 유선으로 연결되어 있는 상태이다.

 

 

| 우리집 NAS

실제 우리집에 있는 NAS의 모습이다.

나름 선정리 한다고 케이블 타일을 이용하였지만 해소되지 않는 이 갈증은 뭐지?

우리집 NAS

내가 가지고 있는 NAS에는 하나의 HDD가 꼽혀있다.

RAID 구성을 하기에는 비용적인 문제와 딱히 RAID 구성을 하지 않아도 사용에 큰 문제가 없다고 판단해서이다.

대신 외장하드를 하나 연결하여 중요한 파일들을 주기적으로 백업하고 있다.

백업은 하이퍼 백업을 이용하고 있다.

 

| ipTIME을 허브 모드로 설정하는 방법

이건 제품의 버전마다 다르겠지만 허브모드로 변경하기 위해서는 이와 같은 설정이 필요하다는 것을 알았으면 한다.

 

1. 설정 > 고급 설정 > 네트워크 관리 메뉴에서 설정을 변경해야 한다.

2. 인터넷 설정 정보 : 동적 IP 방식으로 지정, 사설 IP 할당 허용하기 체크

3. 내부 네트워크 설정

4. DHCP 서버 설정

5. WAN포트가 아닌 LAN포트에 인터넷을 연결해야 한다.

ipTIME 랜선을 연결하는 포트들을 잘보면 WAN으로 적혀 있는 부분이 있는데 그 부분에 연결하는 것이 아닌 LAN으로 적혀 있는 부분에 연결해야 한다라는 것이다.

 

 

| 내가 ipTIME을 허브 모드로 설정하게 된 이유

처음에는 ipTIME을 WAN 포트에 연결하여 사용하고 있었다.

즉, 우리집에 두 개의 네트워크 환경이 셋팅되어 있었던 것이다.

이게 무슨 말이냐면

LGU+ 공유기도 게이트웨이 역할을 하고

ipTIME 공유기도 게이트웨이 역할을 하고 있기 때문에 각 기기에 연결되어 있는 디바이스들은 서로 다른 내부 네트워크 환경에서 동작을 한다라는 것이다.

이렇게 동작을 하게 되면서 여러 가지 문제점이 발생했다.

셋톱박스에서 NAS에 있는 영상을 네부 네트워크를 통해 가져 올 수 없다라는 것..이로 인해 외부로 경유해서 비디오 영상 데이터를 가져와 플레이 하다보니 속도가 느렸다.

그 외에도 내가 사용하는 노트북에서 LGU+ 공유기의 웹 설정 화면에 접속을 할 수가 없었다.

 

서로 다른 네트워크 환경에 있다 보니 여러모로 불편한 점이 많았기에 허브 모드로 사용하여 ipTIME의 네트워크 환경을 제거하고 LGU+ 공유기의 네트워크 환경에 포함 시킨 것이다.

허브 모드로 ipTIME을 설정하고 난 뒤부터는 위와 같은 문제점들이 싹~~ 사라졌고, 현재는 아주 잘 사용하고 있다.

 

아마 위와 같이 두 개의 네트워크 환경에서 서로 통신 할 수 있는 방법들이 있을 것이다.

하지만 난 네트워크 전문가도 아니고, 개발자이기 때문에 그 수준까지는 도달하지 못했다.

 

 

| NAS를 사용하게 되면서 접하는 용어들

NAS를 사용하면서 다양한 용어를 접하게 된다.

몰라도 그만 이지만 아는 만큼 보인다고 했다.

용어들이 의미하는 바를 정확히 이해하고 NAS를 사용한다면 좀 더 효과적으로 이용 할 수 있고, 다양한 아이디어가 떠오를 수 있다.

용어 설명
DMZ 공유기에 연결되어 있는 시스템의 모든 포트를 오픈하는 것이다. (보안 취약)
Super DMZ 공유기에 연결되어 있는 특정 시스템의 모든 포트를 오픈하는 것이다. (그나마 덜 취약)
DDNS Dynamic DNS

유동아이피를 도메인에 맵핑해 주는 시스템

집에서 사용하는 인터넷 회선은 유동IP를 할당 받아서 사용한다. iptime 같은 장비에 ddns 설정을 하면 주기적으로 현재 사용중인 유동 IP를 DDNS 시스템에 전송하게 된다. 그렇기 때문에 내가 생성한 DDNS 이름(http://test1234.iptime.org)과 유동 아이피가 연결될 수 있는 것이다.

iptime에서 제공하는 DDNS 외에도 NAS에서 제공하는 DDNS 도 있다.
iptime upnp 포트포워딩을 위한 3가지 방법
- 포트포워딩
- UPnP
- DMZ

포트포워딩을 자동화 한것이 UPnP(universal plug and play)
모든 포트를 개방하는 것이 DMZ

 

| 사진 관리 (Photo Station)

NAS에서 제공하는 사진 관리 프로그램 중에 하나이다.

대부분 포토스테이션, 모멘츠를 사용하는데 나는 포토스테이션을 사용하고 있다.

DS Photo 안드로이드 앱을 이용하여 사진을 업로드 할 수 있고, NAS 장비에 있는 사진을 볼 수 있는 장점이 있다.

기본적인 설정 방법은 별 것 없다.

아래 photo 디렉토리에 사진을 넣어주면 된다.

 

| 함께 사용하면 좋은 필수 앱

Synology NAS를 사용했을 때의 장점은 다양한 모바일 앱을 지원한다는 것이다.

내가 설치한 앱은 아래와 같이 5가지 이다. (이것 말고도 엄청 많음)

DS get : 토렌트 파일을 이용하여 미디어 파일을 다운로드

Drive : 파일 관리

DS audio : 음악

DS photo : 사진

DS video : 영화

DS file : 내 NAS의 파일 탐색기

이렇게 다양한 앱을 활용하여 모바일 환경에서도 적절하게 NAS를 활용 할 수 있다.

 

| 백업하기

NAS에 저장되어 있는 나의 소중한 자료를 백업하기 위해서 Hyper Backup을 많이 사용한다.
해당 앱에 대한 설명을 하기에 앞서 RAID 구성에 대한 이야기를 해보고자 한다.
흔히들 RAID 구성을 하면 백업 환경이 잘 구축되었다고 오해를 한다.
하지만 RAID는 백업을 위한 구성이 아니다.
RAID 구성은 여러 디스크(HDD, SSD)들을 논리적으로 하나의 디스크로 인식하도록 하여 사용하는 방식이다.
이처럼 사용하게 되는 이유는 성능 향상의 이점을 얻을 수 있기 때문이다.

 

나같은 경우에는 2베이 NAS이긴 하지만 하나의 HDD를 사용하고 있고, 백업은 외장하드에 하고 있다.

NAS 위에 있는 외장하드로 백업을 하고 있음

어짜피 혼자 쓰는 NAS이기도 하고, 가족들이 NAS에 있는 사진을 보는 용도로 활용되기에 RAID 구성이 필요치 않았다.


여튼 그러하고, 이제 Hyper Backup에 대한 이야기를 해보고자 한다.

현재 내가 구성한 백업은 다음과 같이 두 가지이다.
폴더 백업은 문서, 사진, 음악 등을 하루에 한번씩 백업하고 있다.

다음과 같이 document, drive, music, photo 디렉토리를 지정한다. 

설정 탭에서는 작업 이름을 지정한다. (나는 간단하게 폴더 백업이라고 지정)

스케줄 탭에서는 내가 원하는 백업 시간대를 지정하면 된다.

회전 탭에서는 이전에 백업된 파일을 언제까지 보관할지에 대한 설정을 할 수 있다.

예를 들어 하루에 한번씩 백업을 했고, 그것이 10일이 지나면 10개가 된다.

그리고 다시 한번 백업을 진행하게 되면 총 11개가 되는데 이때 아래 설정에 나와 있는 '최대 보전 버전 수' 설정 영향을 받는다. 10으로 되어 있기 때문에 최초에 백업한 파일이 삭제가 되고 10개가 유지되는 것이다.

 

 

| 2단계 인증 사용하기

내가 사용하는 계정이 탈취 됐을 경우를 대비하여 2단계 인증을 설정한다.

구글 OTP를 이용하여 인증을 강화 할 수 있다. 물론 로그인 할 때 OTP 인증을 받아야 하지만 소중한 내 데이터와 NAS를 지키기 위한 최소한의 안전장치이니 꼭 설정하기를 바란다.

제어판 > 사용자 > 고급으로 이동하여 2단계 인증을 활성화 한다.

 

| 계정 자동 차단 활성화

누군가가 나의 NAS 로그인 웹에 접근하여 로그인을 시도 할 수 있다.

로그인 정책을 설정하여 내 NAS를 보호하자.

제어판 > 보안 > 계정 탭에서 설정 가능하다.

 

| 작업 스케줄러에 사용자 정의 스크립트 추가하기

내 NAS에 설치되어 있는 MariaDB는 하루에 한번씩 백업을 진행하고 있다.
이렇게 예약 작업을 통한 백업을 하고 싶을 때에는 작업 스케줄러를 활용하면 된다.

제어판 > 작업 스케줄러 > 생성 > 예약된 작업 > 사용자 정의 스크립트
아래와 같이 설정을 추가해 주면 새벽 12시 03분마다 DB 백업 쉘 스크립트가 수행된다.

일반 탭
스케줄 탭
작업 설정 탭


이와 같이 사용자 정의 스크립트를 활용하여 다양한 스케줄링 설정이 가능하다.

참고로 사용자 정의 스크립트를 추가한 뒤에는 NAS 재부팅을 해야 한다. 재부팅 안 해서 삽질 많이 했음.

 

| 전원 예약 설정

NAS가 24시간 구동되어 있으면 좋겠지만 전기세 절약을 위해서 사용하지 않는 시간대에는 꺼두는 것이 좋다.

이때 전원 예약 설정을 통해서 내가 원하는 시간대에 NAS를 종료하고 시작 할 수 있다.

제어판 > 고급모드 > 하드웨어 및 전원 > 전원 예약 탭으로 이동 하여 다음과 같이 설정을 하면 된다.

나는 새벽 1시 30분에 NAS를 종료시키고, 새벽 5시 40분에 시작하도록 예약했다.

 

| NAS 고정 아이피 할당

집에서 NAS 환경을 구축하면 고정 아이피를 할당해야 할 필요가 있다.

왜냐하면 외부에서 접속이 가능하도록 게이트웨이 장비에서 포트포워딩을 설정하는데 이때 NAS의 아이피가 입력되기 때문이다.

게이트웨이 포트포워딩 설정 부분 (아이피가 입력되어 짐)

이말인 즉슨, NAS의 아이피가 변경된다면 포트포워딩 설정이 무용지물이 된다라는 점이다.

그렇기 때문에 고정 아이피 할당을 해야 한다.

고정 아이피를 할당 하기 위해서는 NAS에서 설정하고, 게이트웨이에서도 설정을 진행해야 한다.

 

NAS에 고정 아이피 할당

제어판 > 네트워크 > 네트워크 인터페이스 > LAN 포트 > 편집

수동 구성 이용으로 설정한다.

 

게이트웨이에서 NAS 고정 아이피 할당

이건 제품마다 다르기 때문에 메뉴를 잘 찾아서 등록해 주기를 바란다.

이제 내가 사용하는 NAS는 항상 192.168.219.102 아이피를 사용하게 된다.

 

 

| NAS 시작 시 실행하고 싶은 shell script 가 있다면?

NAS 시스템이 시작될 때 실행하고 싶은 shell script가 있다면 /usr/local/etc/rc.d 경로에 넣어두면 된다.

나는 NAS 가 구동되면 java application 이 실행되도록 shell script를 넣어 두었다.

 

 

| 역방향 프록시 이용하기

내가 만든 웹 애플리케이션을 8080 포트로 띄우면 다음과 같이 외부에서 접속한다.
http://xxxx.duckdns.org:8080
만약 포트를 이용하지 않고, 도메인으로만 응용 프로그램에 접속하고 싶다면 역방향 프록시를 이용하면 된다.

제어판 > 응용 프로그램 포털 > 역방향 프록시 > 생성
다음과 같이 소스와 대상을 입력해 주면 된다.

소스는 사용하고자 하는 프로토콜과 도메인을 입력해 주고, 대상에는 동작하고 있는 애플리케이션의 호스트와 포트 그리고 프로토콜을 입력해 주면 된다.
내가 구동하고 있는 애플리케이션은 NAS안에서 http://localhost:8888 로 동작하고 있으니 다음과 같이 입력하면 된다.
만약 NAS 안이 아닌 다른 장비에 애플리케이션이 동작하고 있다면 해당 장비의 아이피를 입력해 주면 된다.
이제 https://myapp.xxxx.duckdns.org 로 접속이 가능해 졌다.


헌데 https 로 접속하니 인증서 오류가 난다.
4차 도메인으로 설정한 myapp.xxx.duckdns.org 에 인증서가 등록되어 있지 않아서 발생하는 현상이다.
제어판 > 보안 > 인증서 > 추가 하여 새로운 인증서를 등록한다.

도메인 이름 : 기존에 발급받은 duckdns.org 를 그대로 넣어준다.

이메일 : 개인 이메일 주소

주제 대체 이름 : 역방향 프록시 규칙에 추가한 웹 애플리케이션의 4차 도메인 정보를 추가해 준다. (myapp.xxx.duckdns.org;myapp2.xxx.duckdns.org; 세미콜론 구분자를 통해 여러개 등록 가능)

 

인증서를 생성한 뒤에 한 가지 더 추가 작업을 해야 한다.

생성한 인증서 선택 후 "구성" 버튼을 클릭한다.

 

팝업창에 내가 추가한 역방향 프록시 규칙들이 보여지게 된다.

역방향 프록시와 방금 내가 추가한 인증서를 연결시켜 주면 설정 끝이다.

이제 https://myapp.xxxx.duckdns.org 로 접속하게 되면 인증서 오류 없이 정상적으로 연결 가능해 진다.

 

여기서 잠깐!!!

여기까지 설정을 했는데도 인증서 오류가 발생하면 브라우저를 모두 종료 한 후에 다시 시작하여 접속하면 된다.

'유용한 도구' 카테고리의 다른 글

RFID 리더기를 이용한 카드 복제 활용  (37) 2021.02.15
Listary 프로그램  (0) 2019.09.20
동영상제작 프로그램 Wink  (0) 2009.03.15

댓글()