본문 바로가기

취미, 관심/NAS, Server

[Synology] 시놀로지에서 클라우드플레어 DDNS 설정하고 와일드카드 인증서 받기 #1 [22.02.15 API토큰 추가]

이전에 시놀로지 와일드카드 인증서 적용에 대한 글을 올린적이 있습니다.

2021.05.12 - [Synology] 시놀로지에 Let's Encrypt 와일드카드 인증서 적용[21.8.2 수정]

사무실에 설정해둔 부분이 정상적으로 동작하지 않아, 예전 클라우드플레어를 이용한 와일드카드 인증서를 발급받던게 생각나 변경을 위해 찾아보니 클플 역시 DDNS 설정이 가능하네요.

와일드카드 인증서 적용은 아래 문서를 확인해주세요.

2021.10.01 - [Synology] 시놀로지에서 클라우드플레어 DDNS 설정하고 와일드카드 인증서 받기 #2

 

나중의 작업을 위해 작업 과정을 기록해봅니다.

 

사용 환경은 아래와 같습니다.

사용 모델 : DS1821+ 

DSM 버전 : 7.0.1

 

 

클라우드플레어 가입 및 네임서버 변경

일단 클라우드플레어 계정이 필요하고, 네임서버 변경을 해 줘야 합니다.

 

우상단 가입을 클릭해 가입 진행을 하시면 됩니다. 이메일만 있으면 간단하게 가입이 됩니다.

우리는 Free 요금제를 사용합니다.

 

클플을 이용할 도메인을 넣어줍니다.

 

기존의 레코드를 검색해 그대로 넣어주는 편리한 기능이 있어요 :)

 

저는 DNSZI를 사용했습니다. 2를 참고해서 도메인을 구입한 사이트에서 네임서버 설정을 변경해줍니다.

 

네임서버 변경을 하셨다면, 이름 서버 확인 버튼을 눌러 클플에서 변경확인이 가능하도록 해 줍니다.

 

보통 네임서버 변경은 24시간까지 걸린다고 하기는 합니다만, 보통 1시간 이내에 완료됩니다. 이번에는 10분도 안되어서 적용된것같아요.

 

DNS 탭을 클릭하면

 

이렇게 DNS 관리 부분이 나옵니다. 프록시 상태 부분을 DNS전용으로 설정하는것이 속도면에서 유리합니다.

무료 요금제에서는 프록시 시키면 접속이 굉장히 느려집니다..

 

시놀로지 NAS에 클라우드플레어 DDNS 추가하기

https://github.com/namukcom/SynologyCloudFlareDDNS

위 내용을 참고합니다.

 

- DSM 7.0 인 경우 파이썬이 포함되어 있어, 소스 제작자인 나무쿤님의 설명을 그대로 따라하시면 됩니다.

1. 제어판 -> 작업 스케줄러로 들어갑니다.

2. 사용자 정의 스크립트를 생성합니다.

생성 -> 트리거된 작업 -> 사용자 정의 스크립트.

아래와 같이 설정합니다.

[일반]

작업 : Cloudflare DDNS (식별 가능한 이름 아무거나 넣으면 됩니다.)

사용자 : root

이벤트 : 부트업

 

[작업 설정]

실행 명령의 사용자 정의 스크립트에 아래 내용을 넣어줍니다.

curl https://raw.githubusercontent.com/namukcom/SynologyCloudflareDDNS/master/setddns.py | python3 -

 

아래 내용은 위 방법이 불가능한 경우에 사용해주세요.

 

본인의 나스에 SSH로 접속이 가능해야하합니다.putty 등의 툴을 이용하여 SSH로 접속, 관리자 계정으로 로그인합니다.

 

이렇게요.

 

스크립트 적용을 하기 위해 root 권한이 필요합니다.

 

아래 내용을 넣어줍니다.

sudo su
#관리자 비밀번호 입력
sudo curl https://raw.githubusercontent.com/namukcom/SynologyCloudflareDDNS/master/setddns.py | python3 -

 

끝입니다.

 

클라우드플레어를 선택할 수 있게 되었습니다.

 

이제 클라우드플레어 API 토큰을 생성합니다.

아래 주소에서 생성이 가능합니다.

https://dash.cloudflare.com/profile/api-tokens

글로벌 API키가 필요합니다. 보안상의 이유로 아래 API토큰 발급을 해서 사용하시는것을 추천합니다.

더보기

이 키를 복사하여 시놀로지의 DDNS 추가 페이지의 암호란에 넣어줍니다.

API 토큰 페이지에서 토큰 생성 버튼을 클릭합니다.

필요한 기능은 영역DNS편집 뿐입니다.

템플릿 사용 버튼을 클릭하거나, 다른 기능이 필요한 경우 사용자 설정 토큰을 생성합니다.

관리하는 도메인이 여러개라면, 적용할 도메인만 설정하는것이 좋겠죠.

영역 리소스 -> 특정 영역 -> 원하는 도메인을 선택합니다.

여기서 클라이언트 IP 주소 필터링 기능을 이용해 NAS의 IP를 설정해주면 그 외의 IP에서는 적용이 되지 않습니다만, 우리는 DDNS의 기능을 목적으로 합니다. 즉, 클라이언트의 IP가 변경될 수 있으므로, 그 부분은 비웁니다.

TTL 부분은 설정하지 않습니다.(즉, 기간의 제한을 두지 않습니다.)

요약 계속 버튼을 누르면 아래와 같은 페이지가 뜨고,

토큰 생성을 하면 

이렇게 토큰 생성이 완료됩니다. 화면에 나오는 것처럼, 이 토큰은 앞으로 다시 표시되지 않습니다. 즉, 분실시 새로 적용하는 것 외 다른 방법이 없습니다.

이 키는 DDNS외 인증서 발급 등에도 해당되므로, 잘 보관해주세요. 물론, DDNS에 적용하는 토큰 따로, 인증서에 적용하는 토큰 따로 적용해도 무방합니다.

 

값을 넣고 연결 테스트 버튼을 누르면

 

정상작동합니다.

 

네임서버 이전 시 레코드가 완벽하게 들어오지 않을 수 있으니, 검토하여 필요한 레코드는 추가해주시면 됩니다.

다음은 클라우드플레어를 통한 와일드카드 인증서 발급을 적어볼게요!

 

* 추가로, 이 상태에서는 도메인 하나만을 클플에 연동할 수 있습니다.

도메인 여러개 연동하기

여러개를 연동하시려면 위에서 언급한 https://github.com/namukcom/SynologyCloudFlareDDNS 내용의 가장 하단을 참고하여, DDNS 설정 파일을 수정합니다.

 

먼저 아래 명령을 입력하여 설정 파일을 열어줍니다.

sudo vi /etc.defaults/ddns_provider.conf

이 글을 따라오셨다면 하단에 아래 내용이 추가되어 있을겁니다. 뒤에 숫자를 붙여서 계속 추가합니다.

# 기본 내용
[Cloudflare]
  modulepath=/usr/syno/bin/ddns/cloudflare.php
  queryurl=https://www.cloudflare.com/

# 추가 예시
[Cloudflare1]
  modulepath=/usr/syno/bin/ddns/cloudflare.php
  queryurl=https://www.cloudflare.com/
[Cloudflare2]
  modulepath=/usr/syno/bin/ddns/cloudflare.php
  queryurl=https://www.cloudflare.com/
[Cloudflare3]
  modulepath=/usr/syno/bin/ddns/cloudflare.php
  queryurl=https://www.cloudflare.com/

이렇게 하면 여러개의 도메인을 동시게 연결할 수 있습니다.

 

제 경우 회사에서 사용중인 920+에 도메인이 5개 연결되어있어, 이 방법으로 추가해 사용중입니다.

 

인증서의 경우 각각 받아서 적용하시거나, 한꺼번에 받아서 적용하시거나 편한 방법으로 사용하시면 됩니다. 

제 경우에는 아직 사용하지 않는 사이트의 도메인을 주 사용 사이트쪽으로 넘겨주고 있어서 한번에 적용 해 두었습니다;

 

재부팅 시 위 작업을 다시 해 줘야 합니다. 

나무쿤님 방법대로 작업 스케줄러에 추가하는 방식으로 하셨다면, 재부팅시에도 계속해서 작동됩니다.

단, 제 팁대로 도메인을 여러개 연결하셨다면 작업을 꼭 다시 해주셔야합니다. 불편하시다면, 나무쿤님 소스를 참고하셔서 처음부터 여러개 생성을 하시면 됩니다.. :)