Mac의 Finder에서 Synology Nas에 접속해 파일을 관리하는 방법을 알아봅니다.

 

 

 

전송 프로토콜 선택

 

Synology NAS는 다양한 네트워크 액세스 프로토콜을 제공하고 있습니다. 우리는 가장 먼저 이 중에서 어떤 프로토콜을 사용할지 선택해야 합니다. 

 

DS718+의 파일 서비스에서 제공하고 있는 프로토콜

 

위의 사진에서처럼 다양한 프로토콜이 있으며 이 중 어떤 프로토콜을 사용할지 선택해야 합니다. 해당 프로토콜에 대한 설명은 다음 글을 참고해 주시기 바랍니다: 2021/01/30 - [Programming] - 파일 서비스 프로토콜: SMB, AFP, NFS, FTP, TFTP, RSync, WebDAV

 

파일 서비스 프로토콜: SMB, AFP, NFS, FTP, TFTP, RSync, WebDAV

시놀로지의 파일 서비스 시놀로지는 파일 서비스를 제공합니다. 파일 서비스는 중요 디지털 자산을 빠르고 안전하게 공유하고 Windows, macOS, Linux 플랫폼 간에 원활하게 파일을 공유할 수 있도록 D

smoh.tistory.com

 

이 글에서는 AFP와 WebDAV로 접속하는 방법을 알아보도록 하겠습니다.

 

 

 

AFP로 맥에서 Synology NAS에 접속하기

 

먼저 공유를 위한 폴더를 생성합니다. File Station에서 공유 폴더를 생성해 주세요.

 

 

특별한 설정은 하지 않고 기본값으로 둔 채 공유 폴더를 생성합니다.

 

 

폴더를 생성한 뒤 제어판 -> 파일 서비스 -> SMB/AFP/NFS로 이동해 AFP를 활성화시켜줍니다.

 

 

이제 맥에서 Finder를 켠 후 cmd + K 혹은 이동 -> 서버에 연결을 클릭해 시놀로지 접속 주소를 입력합니다. 

 

 

연결을 클릭하면 인증 절차를 수행해야 합니다. Synology NAS의 계정 정보를 입력한 뒤 연결을 눌러 접속을 시도합니다.

 

 

정상적으로 접속이되면 마운트 하려는 볼륨을 선택하라는 창이 뜹니다. 여기서 원하는 볼륨을 선택한 뒤 확인 버튼을 클릭해 마무리합니다.

 

 

정상적으로 연결되어 사용할 수 있습니다.

 

 

 

WebDAV를 통해 맥에서 Synology NAS에 접속하기

 

이 방법은 외부망에서 접속할 때 사용하면 좋습니다. 먼저 Synology에서 WebDAV를 활성화시켜줘야 합니다. WebDAV Server를 열어 HTTP/HTTPS를 활성화해 줍니다. 두 프로토콜 모두 사용 가능하지만 HTTPS를 추천드립니다. 일단 이 글에선 두 프로토콜 모두를 활성화한 채 진행하도록 하겠습니다.

 

 

동일하게 Finder를 열고 서버에 연결 창을 열어줍니다. WebDAV는 HTTP 프로토콜을 이용하며 5005번 포트를 사용합니다. 만약 HTTPS 프로토콜을 사용하고 싶다면 5006번 포트를 사용해야 하며 다음과 같이 작성한 뒤 연결을 클릭하면 됩니다.

 

 

이제 AFP와 동일한 절차를 수행해 주시면 됩니다. 인증 정보를 입력 한 뒤 연결 버튼을 클릭해 접속을 시도합니다.

 

 

인증 절차에 성공하면 이제  WebDAV를 통해 Synology NAS에 접속할 수 있습니다. 앞서 만든 공유 폴더를 확인할 수 있습니다.

 

 

 

 

 

 

반응형

 

 

시놀로지의 파일 서비스

 

시놀로지는 파일 서비스를 제공합니다. 파일 서비스는 중요 디지털 자산을 빠르고 안전하게 공유하고 Windows, macOS, Linux 플랫폼 간에 원활하게 파일을 공유할 수 있도록 DSM에서 네트워크 프로토콜(FTP, SMB, AFP, NFS, rsync 및 WebDAV)을 종합적으로 지원합니다. Universal Search와 Mac의 Finder가 통합되어 Synology NAS에서 탑재된 폴더에 있는 인덱싱 된 문서, 사진 및 기타 콘텐츠를 빠르고 자세하게 검색할 수 있습니다.

 

시놀로지가 제공하는 파일 서비스를 위한 네트워크 프로토콜에 대해 알아보도록 합시다.

 

 

 

SMB 프로토콜

 

https://searchnetworking.techtarget.com/definition/Server-Message-Block-Protocol

 

Server Message Block(SMB)는 윈도우 운영체제 간 통신에 주로 이용되는 프로토콜입니다. 기본적으로 네트워크 드라이브라는 것을 통해 네트워크상 다른 윈도우 기기와 연결해 파일 입출력과 실행을 담당하는 프로토콜입니다. 윈도우의 탐색기에서 \\HOST\FOLDER 같은 형식으로 접속할 수 있습니다. TCP/IP 기반의 NetBIOS 프로토콜을 사용하며 NFS, NIS와 같은 유닉스의 분산 인증 구조와 유사합니다.

 

 

 

AFP 프로토콜

 

 

Apple Filing Protocol(AFP)는 SMB의 macOS 버전이라고 생각할 수 있습니다. 맥에서는 파일을 전송할 때 AFP라는 프로토콜을 이용해 전송합니다. 최근의 맥은 SMB, AFP, NFS, FTP, WebDAV 모두를 지원하고 있습니다. 맥의 FInder를 킨 뒤 cmd + K 혹은 이동 -> 서버에 연결을 클릭해 AFP://HOST 같은 형식으로 접속할 수 있습니다.

 

 

 

NFS 프로토콜

 

 

Network File System(NFS)는 리눅스에서 파일 입출력을 담당하는 프로토콜입니다. 파일 공유 프로토콜이라는 점에서는 SMB, AFP, NFS전부 비슷하지만 방식은 약간씩 다릅니다. mount -t nfs <HOST> :/ <SHARE> <DIR> 같은 형식으로 접속할 수 있습니다.

 

 

 

FTP와 TFTP 프로토콜

 

 

File Transfer Protocol(FTP)는 파일 업로드와 다운로드만을 위해 만들어진 프로토콜입니다. 업로드, 다운로드, 생성, 제거 등의 파일과 관련된 명령어만 수행합니다. 보통 외부망에서 연결해 파일을 주고받을 때 사용합니다.

 

Trivial File Transfer Protocol(TFTP)는 FTP와 마찬가지로 파일을 전송하기 위해 만들어진 프로토콜입니다. 하지만 FTP보다 더 단순한 방식으로 파일을 전송합니다. FTP와 달리 UDP 기반이며 로그인 절차와 파일 디렉터리 조회 없이 단순히 파일을 전송합니다.

 

 

 

RSync

 

 

Remote Sync(RSync)는 원격에 있는 파일과 디렉터리를 복사하고 동기화하기 위해 사용되는 툴이자 프로토콜입니다. 리눅스와 유닉스에서는 백업 용도로 널리 사용됩니다. 동기화 작업을 진행할 때 비교 작업을 수행해 동일한 부분은 그대로 둔 채 수정된 부분만 찾아서 옮겨주는 작업을 수행해 줍니다.

 

 

 

WebDAV

 

 

Web Distrbuted Authoring and Versioning(WebDAV)는 HTTP의 확장으로 HTTP를 이용해 파일 서비스가 가능하도록 해주는 프로토콜입니다. 웹 서버를 표준 네트워크 드라이브로 표시할 수 있게 되며 HTTP 포트를 이용해 파일 전송을 할 수 있습니다.

 

 

 

 

 

반응형

 

Minio Object Stroage에 Region 지정하는 방법에 대해 알아봅니다.

 

 

 

0. 사전 준비.

 

미리 Minio를 준비합니다. Minio 설치 방법은 다음 글을 참고해 주세요:

2020/10/21 - [Programming] - [MINIO] 시놀로지 NAS에서 MINIO를 이용해 오브젝트 스토리지 구성하기

 

[MINIO] 시놀로지 NAS에서 MINIO를 이용해 오브젝트 스토리지 구성하기

Synology Nas에서 Minio를 이용해 Object storage를 구성하는 방법에 대해 알아봅니다. 이 글은 다음 글을 번역한 내용임을 알려드립니다: medium.com/@JonahAragon/installing-minio-on-synology-diskstation-48..

smoh.tistory.com

 

 

 

1. Region? 왜 필요한가.

 

위의 글과 같이 Minio를 설치해 웹브라우저나 Object Storage Explorer를 사용해 Minio를 사용한다면 별문제 없이 사용할 수 있습니다. 하지만 프로그램을 개발하다 AWS SDK를 사용해 Minio에 접근하려고 한다면 아마 대부분이 "그래서 Region은 뭘 골라야 해?"라는 의문을 가지실 겁니다.

 

물론 S3Client를 생성할 때 S3 config를 이용해 초기화를 시키면 Endpoint만 바꾼 채 클라이언트를 생성할 수 있습니다. 문제는 이 클라이언트를 이용해 버킷에 접근하다 보면 알려진 호스트가 없다는 에러를 마주하게 될 수 있다는 점입니다.

 

따라서 이 글에서는 AWS SDK를 이용해 Minio에 접근하는 프로그램을 만들기 전에 우리의 Minio에 Region을 지정하는 방범에 대해 알아보도록 하겠습니다.

 

 

 

2. Minio에 Region 지정하기.

 

Docker container로 Minio를 사용한다면 Region을 지정하는 방법은 매우매우 간단합니다. 이 글에선 Synology NAS의 Docker를 이용해 Minio를 설치했다는 전제로 설명합니다.

 

먼저 DSM > Docker > 컨테이너로 이동해 Minio 컨테이너를 잠시 중지시킵니다. 이후 Minio 컨테이너를 클릭 > 편집 > 환경 탭으로 이동합니다. 그리고 "MINIO_REGION" 변수를 추가합니다.

 

 

값에는 자신이 원하는 Region값을 넣어줍니다. 제가 넣어준 ap-northeast-2는 서울 지역을 의미합니다. 이제 이 값을 저장한 뒤 Minio 컨테이너를 실행시켜주면 됩니다.

 

 

 

 

 

반응형

 

시놀로지 NAS에 올린 MINIO의 Credential 정보를 변경하는 방법에 대해 알아봅니다.

 

Minio 설치 및 HTTPS/SSL 적용 방법은 다음 글을 참고해 주시기 바랍니다:

2020/10/21 - [Programming] - [Minio] 시놀로지 NAS의 Minio에 HTTPS/TLS 적용하기

2020/10/21 - [Programming] - [MINIO] 시놀로지 NAS에서 MINIO를 이용해 오브젝트 스토리지 구성하기

 

 

 

1. Credential 정보 변경.

 

사실 이전 글에서 로그를 잘 읽었다면 이 글을 보지 않아도 알아서 Credential 정보를 변경했을 겁니다. Docker를 열고 컨테이너 > Minio 컨테이너의 세부사항을 열고 로그로 이동합니다. 로그를 잘 보면 다음과 같은 메시지가 출력되어 있는 것을 확인할 수 있습니다.

 

 

네 이제 우린 이 메시지대로 MINIO_ACCESS_KEY와 MINIO_SECRET_KEY를 이용해 Credential 정보를 변경하도록 하겠습니다.

 

현재 실행중인 컨테이너를 잠시 종료 한 뒤 편집 버튼을 클릭해 환경 탭으로 이동합니다. 그리고 변수에 MINIO_ACCESS_KEY와 MINIO_SECRET_KEY를 추가하고 원하는 값을 입력해 주세요.

 

 

만약 특정값이 안 떠오른다면 이런 걸 이용해볼 수도 있습니다: passwordsgenerator.net/kr/

 

무작위 비밀번호 생성기 - 보안 비밀번호를 손쉽게 생성

사회공학, 무차별 대입 공격 또는 사전 공격 방법에 의한 해킹으로부터 비밀번호를 보호하고 온라인 계정을 안전하게 유지하려면 다음 사항에 주의해야 합니다: 1. 여러 개의 중요한 계정에 대

passwordsgenerator.net

 

원하는 값을 입력 후 컨테이너를 다시 실행시킵니다. 로그로 이동해 보세요. 원하는 값으로 바뀐 것을 확인할 수 있습니다.

 

 

 

 

 

반응형

 

 

Synology Nas에서 Minio를 이용해 Object storage를 구성하는 방법에 대해 알아봅니다.

 

이 글은 다음 글을 번역한 내용임을 알려드립니다: medium.com/@JonahAragon/installing-minio-on-synology-diskstation-4823caf600c3

 

Installing Minio on Synology DiskStation

It seems object storage is an integral part of any cloud-based web technology these days, but sometimes offloading that aspect of your…

medium.com

 

다만 제 구성 환경과 설정에 따라 추가적인 내용을 포함하고 있습니다.

 

 

 

0. 앞선 글

 

오브젝트 스토리지는 요새 모든 클라우드 기반 웹 기술의 필수적인 부분이 된 것 같지만 때로는 이 오브젝트 스토리지의 작업을 Amazone S3나 Azure Blob Storage와 같은 공급자들이 제공해 주는 것을 사용할 수 없을 수도 있습니다. 이럴 때 우리는 간단한 인터페이스, 여러 스토리지 백엔드와의 호환성을 갖추고 있으며 S3 API와도 호환되는 자체 호스팅 클라우드 스토리지 애플리케이션인 Minio를 시작하면 됩니다.

 

이 글에서는 Docker를 사용해 공유폴더를 스토리지 백엔드로 사용하고 시놀로지 DS718+에 Minio를 설치하였습니다. 또한 시놀로지에 내장된 인증서 관리자와 작업 스케줄러를 사용해 Minio 설치에 TLS 인증서를 추가할 것입니다.

 

 

 

1. 사전 준비

 

시작하기 전에 시놀로지 패키지 센터에서 Docker 패키지를 설치합니다. 또한 제어판 > 보안 > 인증서의 인증서 관리자를 통해 Let's Encrypt 인증서를 설치해야 합니다.

 

 

 

2. 오브젝트 스토리지를 위한 공유 폴더 생성.

 

우리는 Minio로 푸시된 모든 데이터가 자체 공유 폴더 내에 있길 원하므로 제어판에서 이 공유폴더를 만들어 줘야 합니다. 제어판 > 공유폴더 > 생성을 통해 새로운 공유폴더를 생성해 줍시다.

 

 

네트워크에 표시되는 것을 원하지 않으므로 "이 공유 폴더를 내 네트워크 환경에서 숨기기"를 체크해 주었으며 휴지통도 필요하지 않을 것 같아서 비활성화해 주었습니다. 또한 이 폴더를 암호화하도록 하지 않았습니다.

 

 

동영상이나 지속적인 로그와 같은 많은 양의 데이터를 스토리지에 써야 하는 경우 데이터 체크섬과 압축을 선택하지 않는 게 좋습니다. 이제 다음 및 적용 버튼을 클릭해 새 공유폴더를 생성합니다.

 

 

 

3. Minio 설치.

 

DSM에서 Docker를 열고 레지스트리로 이동해 minio를 검색해 minio/minio:latest를 다운로드합니다.

 

 

다운로드가 완료되면 이미지로 이동해 다운로드한 이미지를 이용해 컨테이너를 생성합니다. 이름을 지정한 뒤 고급 설정을 클릭합니다. 볼륨으로 이동해 앞서 생성한 공유폴더를 선택 후 마운트 경로로 /data를 설정해 줍니다. 그리고 하나의 폴더를 더 추가해줍니다. /docker/minio/config를 선택해 주세요. 이 폴더의 마운트 경로는 /root/.minio로 설정합니다.

 

 

다음은 포트 설정입니다. 포트 설정으로 이동해 로컬 포트의 "자동"으로 설정된 부분을 원하는 포트로 변경합니다. 

 

 

마지막으로 환경 설정입니다. 환경 탭으로 이동해 실행 명령의 명령 항목을 다음과 같이 수정합니다.

 

minio server /data

 

 

다음 및 적용 버튼을 클릭해 컨테이너를 생성 후 실행해 줍니다.

 

 

 

4. 로그인

 

Minio는 이제 http://host:9000/minio/login을 통해서 액세스 할 수 있습니다.

 

 

하지만 로그인을 완료하기 위해선 자격증명이 필요하며 이 내용은 DSM에서 확인할 수 있습니다.

 

Docker를 실행하고 컨테이너로 이동해 위에서 생성한 Minio 컨테이너의 세부사항을 확인합니다. 로그 탭으로 이동해 위로 올리면 EndpointUrl, AccessKey, SecretKey를 확인할 수 있습니다. 가리긴 했습니다만 사실 초기값은 다 minioadmin입니다.

 

 

이제 확인한 AccessKey와 SecretKey를 이용해 로그인을 하면 정상적으로 브라우저를 확인할 수 있습니다.

 

 

 

 

5. 업로드 테스트

 

파일을 업로드하기 위해선 먼저 버킷을 생성해야 합니다. 우측 하단의 + 버튼을 클릭한 뒤 HDD모양의 "Create bucket" 버튼을 클릭해 버킷 이름을 입력하고 새로운 버킷을 생성합니다. 단, 버킷 네이밍 룰을 따라야 하며 룰은 다음과 같습니다.

 

Lowercase letters, period, hyphen, numerals are the only allowed characters and should be minimum 3 characters in length.
소문자, 마침표, 하이픈, 숫자만 허용되며 버킷 이름은 3글자 이상이어야 합니다.

 

생성한 새 버킷은 좌측 사이드바에 표시가 되어야 합니다. 이제 다시 우측 하단의 + 버튼을 클릭한 뒤 "Upload File" 버튼을 클릭해 파일 하나를 업로드해 봅시다.

 

 

 

브라우저 및 공유폴더를 확인해 보면 정상적으로 파일이 업로드되었음을 확인할 수 있습니다.

 

이제 Minio에 대한 구성을 끝냈으며 Minio를 바로 사용할 수 있습니다.

 

 

 

7. 맺는 글

 

이제 NAS에 자체 오브젝트 서버를 호스팅 해야 합니다. 원한다면 Minio Client를 자신의 컴퓨터에 설치해 Minio를 관리할 수 있습니다: Minio Client

 

더 많은 문서를 원하신다면 공식 홈페이지의 문서를 참고해 주세요: docs.minio.io

 

이 가이드가 도움이 되었길 바랍니다. 만약 놓친 내용이 있거나 도움이 될만한 정보가 있으면 알려주시기 바랍니다.

 

 

 

 

 

반응형

시놀로지 NAS를 이용한 개인 저장소 구축.

 

시놀로지 NAS를 이용해 Private Registry를 구축해 봅니다.

 

 

1. Registry 설치.

 

시놀로지 도커를 이용해 레지스트리를 설치합니다.

 

볼륨 설정은 다음과 같이 추가해줍니다.

 

포트는 기본포트를 사용하지 않고 5234번 포트를 사용했습니다.

 

 

 

2. 도메인 및 역방향 프록시 설정

 

저는 https://hub.smoh.kr/ 주소를 사용해 보겠습니다. 미리 도메인을 준비하시거나 그냥 IP주소를 사용하셔도 무방합니다. 확인해보지는 않았으나 QuickConnect를 사용해도 될 거 같긴 합니다.

역방향 프록시는 제어판 > 응용 프로그램 > 응용 프로그램 포털에 있습니다.

 

위와 같이 역방향 프록시를 설정해 줍니다.

이후 https://hub.smoh.kr/v2/_catalog 에 접속해 봅시다. 레지스트리가 정상적이라면 "{"repositories":[]}"와 같은 메시지를 확인할 수 있습니다. 그런데 인증서가 유효하지 않다고 나오네요. 

 

이제 인증서를 등록해 줍시다. 인증서는 제어판 > 연결성 > 보안 > 인증서 탭에서 추가할 수 있습니다. 여기선 Let's encrypt에서 인증서를 발급받아 사용하겠습니다.

 

매우 간단하게 인증서를 발급 받을 수 있습니다. 이제 구성에 들어가 hub.smoh.kr의 인증서를 새로 발급한 인증서로 변경해 줍니다.

 

이후 다시 https://hub.smoh.kr/v2/_catalog 에 접속해 보면 인증서가 제대로 적용된 것을 확인할 수 있습니다.

 

 

3. HTTP연결 자동으로 리디렉트 하기

 

위의 역방향 프록시를 보면 아시겠지만 현재 http://hub.smoh.kr/에 대한 처리가 없습니다. HTTP연결을 자동으로 HTTPS로 리디렉트 해주는 기능은 없으므로 DSM의 nginx에서 처리하도록 변경해 줍니다.

 

$ cd /usr/local/etc/nginx/sites-enabled
$ touch redirect.conf

파일명은 중요하지 않습니다. 적당한 이름의 conf파일을 만든 후 다음과 같이 수정합니다.

 

server {
  listen 80;
  server_name abc.domain.com;
  location / {
    rewrite ^(.*)$ https://abc.domain.com/$1 permanent;
  }
}

 

이후 nginx 리로드 합니다.

$ sudo nginx -s reload

그리고 http://hub.smoh.kr/을 통해 접속하면 자동으로 HTTPS로 리디렉트 되는 것을 확인할 수 있습니다.

 

 

4. 이미지 업로드 해보기

 

이제 테스트 이미지를 push하고 pull 해보도록 하겠습니다. 다른 접속지에서 도커 이미지를 내려받습니다.

 

$ docker pull ubuntu
$ docker images

 

우분투 이미지를 하나 다운받았습니다. 사진에서 보이듯이 앞서 레지스트리를 설치한 서버와는 다른 서버입니다. 이제 태그를 생성합니다.

 

$ docker tag ubuntu hub.smoh.kr/ubuntu
$ docker images

 

이미지가 새로 생성된걸 확인한 후 push를 시도합니다.

 

$ docker push hub.smoh.kr/ubuntu

 

이제 https://hub.smoh.kr/v2/_catalog로 이동하면 "{"repositories":["ubuntu"]}"와 같이 업로드한 이미지가 추가된 것을 확인할 수 있습니다.

 

가장 처음 폴더를 추가했던것을 기억하시나요 ? 그 폴더로 한번 이동해 봅시다.

 

사진과 같이 /docker/registry/v2 폴더가 새로 생성되었고 그 안에 업로드한 이미지가 저장된 것을 확인할 수 있습니다.

 

 

5. 유저 인증 추가

 

업로드도 확인했지만 만약 주소가 노출된 경우 어떤 유저도 해당 레지스트리에 접근할 수 있는 문제가 있습니다. 이 문제를 해결해 봅시다.

우선 시놀로지 도커에서 생성한 레지스트리 컨테이너를 종료합니다.  그후 다음과 같이 볼륨과 환경을 수정해줍니다.

 

설정 변경 후 컨테이너를 실행시키면 auth폴더 안에 htpasswd파일이 생성된 것을 확인할 수 있습니다. 이제 유저를 추가시키도록 합니다.

 

$ cd /volume1/docker/myReg
$ sudo docker run --entrypoint htpasswd registry -Bbn testuser testpassword > auth/htpasswd

위의 명령어를 시행하면 "testuser"계정이 "testpassword"의 암호를 갖은채 생성됩니다. 계정을 생성했으니 이제 https://hub.smoh.kr/v2/_catalog 를 통해 이미지 리스트를 불러오려고 시도해봅시다.

 

아까는 볼 수 없던 로그인창이 뜹니다. 로그인을 하면 정상적으로 이미지 리스트를 확인할 수 있습니다.

 

 

6. 이미지 다운로드

 

이제 다른 서버에서 이미지를 다운로드 받아봅시다.

$ docker pull hub.smoh.kr/ubuntu

 

위와 같이 인증관련 에러를 볼 수 있습니다. 이제 로그인을 한 뒤 이미지를 다운로드 받아보겠습니다.

 

$ docker login hub.smoh.kr
$ docker pull hub.smoh.kr/ubuntu

 

로그인 이후에 정상적으로 이미지를 다운받을 수 있습니다. 로그인 이후 ~/.docker/config.json에 인증정보가 저장되어 로그아웃하기 전까지 로그인 정보가 유지됩니다.

 

 

 

 

반응형

'Programming > Linux' 카테고리의 다른 글

[Ubuntu] Docker-compose 설치하기  (0) 2020.01.14
[Putty] Network error: Connection refised  (0) 2020.01.10
[Ubuntu] Docker Private Registry  (0) 2019.05.24
[Ubuntu] Docker 설치하기  (0) 2019.05.23
[Ubuntu] Putty로 우분투 접속하기  (0) 2019.05.23

+ Recent posts