SSLSecure Socket Layer는 네트워크 보안 방식 중의 하나입니다. TLSTransport Layer Security라는 이명으로도 많이 알려져 있는데, 네트워크의 전송(Transport)계층에 보안을 적용해 그 상위 계층 프로토콜인 HTTP, FTP의 보안 전송을 가능하게 하죠.

아무래도 보안을 적용하는 일이니만큼 약간의 속도 하락을 피할 수는 없으나, 요즘의 웹 브라우저는 보안 인증이 되어있지 않은 페이지에는 경고를 발생시키는 등, 보안 장치가 되어있지 않은 사이트의 이용을 엄격하게 제한하는 편이니 적용하는 편이 좋아요.


Let’s Encrypt

Let’s Encrypt 공식 홈페이지

TLS 인증서는 어떤 도메인에 대해 인증기관이 해당 도메인에 대한 인증키를 도메인 운영자에게 제공하고, 도메인에 이를 탑재하여 안전한 사이트임을 인증받게 되는 구조입니다. 즉, 브라우저가 인정하는 인증기관 - 인증기관이 인증하는 도메인과 인증서 - 인증서를 탑재한 도메인의 삼박자가 맞아 돌아가며 사이트를 인증하는 방식이에요.

Let’s Encrypt는 TLS 인증서를 무료로 발급해주는 기관입니다. DVDomain Validate 방식의 인증서를 발급하여 프로그램에 의한 자동화가 가능하므로, 나스에서 이를 쉽게 발급받아 활용할 수 있습니다.

사전 작업

홈 네트워크 외부와 뭘 하려면 공유기에 포트포워딩 설정을 해주어야 한다는 사실은 이제 익숙하죠?

공유기 포트포워딩 설정

HTTPS 포트포워딩 설정

HTTPS 서비스는 기본적으로 443 포트를 사용합니다. 이제 포트를 나스에 중계시키는 포트포워딩 규칙을 설정해줍시다.

Let’s Encrypt 설치

시스템 > 플러그인 메뉴로 들어가 Let’s Encrypt를 설치합니다.

Let's Encrypt 설치

이제 서비스 메뉴에 LetsEncrypt 메뉴가 보이네요. 기본 설정을 위해 설정 탭으로 들어갑니다.

Let's Encrypt 기본 설정

이후에 발급 발을 인증서의 자동 갱신을 위해 Schedule Refresh를 활성화하고, 인증을 위한 메일 주소와 인증서 이름을 설정합니다.

RSA Key Length는 더 크게 설정할 수도 있는데, 그만큼 보안 인증에 CPU 자원이 더 소모되니 적당한 수준에서 설정합시다.

인증 도메인 추가 및 인증서 생성

Domain 탭에서 인증서를 발급받을 도메인을 추가합니다. 저는 저번에 추가한 2개의 서비스에 FTP까지 총 3개를 만들 예정이에요.

  • cpanel.banyazavi.duckdns.org (OMV 제어 패널)
  • ftp.banyazavi.duckdns.org (FTP)
  • torrent.banyazavi.duckdns.org (트랜스미션 RPC)

Let's Encrypt 도메인 추가

인증할 도메인들을 ,로 이어 붙여줍니다. 한 번에 100개 정도까지 가능하다고 합니다. 100개까지 쓸 일이… 이때 도메인 인증을 위한 Web Root는 OMV의 루트 경로인 /var/www/openmediavault/로 지정해주면 됩니다.

그러면 목록에 인증할 도메인이 목록에 뜨게 되는데, 다음과 같이 인증서 > Generate 버튼을 눌러 인증서를 발급받아 봅시다.

Let's Encrypt 인증서 생성

인증서가 무사히 생성되었으면 아래와 같은 메시지가 나오며 완료됩니다.

Let's Encrypt 인증서 완료

자 이제 서비스에 적용해 보자!

FTP에 SSL/TLS 적용

FTP부터 연결해 봅시다. 서비스 > FTP > SSL/TLS 탭에 들어가서 아래와 같이 설정합니다.

FTP SSL/TLS 적용

고급 설정의 네 가지 항목들은 사용하는 FTP 서비스가 정상적으로 동작하지 않을 때 바꿔 보며 테스트해 보세요. Required를 끄게 되면 평문 FTP로도 통신할 수 있으므로 실제로는 FTP가 적용되지 않은 것일 수도 있다는 점 주의하세요. 묵시적 SSL은 FTP 클라이언트에서 Implicit이라고 불리는 보안 모드인데, 간혹 이 모드로 연결이 필요할 수가 있습니다.

웹 사이트에 SSL/TLS 적용하기

시스템 > 일반 설정 메뉴에 가면 OMV 관리 페이지도 FTP와 비슷하게 인증서를 추가할 수 있습니다. 그런데 우리는 이미 엔진엑스를 통한 역방향 프록시로 관리 페이지에 접속하고 있으므로, 이곳에서 설정하는 것이 더 편해요.

서비스 > Nginx (websites) 페이지에 들어가서, 이전에 추가해놨던 서버 설정의 SSL 부분을 아래와 같이 편집합니다.

Nginx SSL/TLS 적용

Only use SSL 설정을 켜 주면 HTTPS로만 접속할 수 있습니다. 이 경우에 HTTP로 접속하게 되면 접속을 거부하게 돼요.


그리고 남은 이야기

이제 OMV4를 이용한 기본적인 나스 구축은 완료되었습니다. 지금까지의 과정을 잘 따라왔다면 다른 서비스들도 플러그인 페이지에서 조회하여 설치하고, 각 서비스 페이지에서 세부 설정하는 방식으로 사용할 수 있어요.

플러그인이 지원되지 않는 서비스들은 SSH로 직접 접속하여 리눅스에 서비스를 설치하는 방법을 따라 하여 설치할 수 있는데요, 이는 서버의 하드웨어 특성을 심하게 타기 때문에 일관적인 가이드가 어렵습니다.

그래서 요즘은 이런 문제를 피하고자 Docker를 이용하여 서비스를 배포하는 경우가 많아졌어요. 그래서 다음 글은 도커를 사용하는 방법에 관한 이야기입니다.

댓글남기기