본문 바로가기

리눅스/리눅스 - 데비안 계열

DDClient & NGINX & LetsEncrypt - 1

반응형

소개


홈 서버를 활용하기 위한 기본 앞단을 아래 요소로 구성해본다.

1. DDNS

2. Reverse-Proxy

3. SSL

 

 

설치환경


OS : 데비안13

DDNS : DDClient

Reverse-Proxy : NGINX

SSL : Certbot

 

DNS Hosting Service : deSEC.io

SSL CA : letsencrypt

 

* Proxmox 9.1.4 기반의 LXC에서 데비안13 사용

 

 

간략 설명


홈 서버의 경우 대부분 유동 IP를 사용하므로 언제든 변경되는 IP를 추적해 접속할 수 있도록 DDNS 서비스를 이용해야 한다.

리버스 프록시(NGINX)는 서버가 여러개인 경우 여러 서버에 접속 할 수 있도록 경로 역할 및 SSL 적용 등 효율적인 관리를 해준다.

SSL은 HTTP 통신을 암호화해 HTTPS로 통신토록 NGNIX에 적용한다.

 

 

deSEC.io 가입


무료로 사용 가능한 DNS 호스팅 서비스다.

서브 도메인을 지원하고, 1개 도메인에 대해 완전 무료로 제공하며, 서비스도 안정적이다.

미리 가입 후 DDNS 업데이트를 위한 토큰까지 발급해놓도록 한다.

가입 과정은 생략한다. (가입시 패스워드 입력은 없고, 나중에 메일계정 인증 통해서 해결하면 된다.)

 

무료 도메인은 dedyn.io로 끝나야 한다.

예) sacstory.dedyn.io

 

 

보안상 토큰은 한번만 보여주고 이후 볼수 있는 수단을 제공하지 않으니 별도로 잘 저장해둔다.

토큰에 대한 권한에 Can create domains를 활성화시키면 ddclient로 동작시 알아서 도메인도 등록해준다.

(비활성화할 경우 웹에서 직접 미리 만들어줘야 한다.)

 

Token name은 별칭이므로 알아보기 쉽게 기입만 하면 된다.

 

 

 

DDClient 설치 및 설정


# ddclient 설치
apt install ddclient

#혹시 설정화면이 안나오거나, 다시 설정하고 싶은 경우 사용
dpkg-reconfigure ddclient

 

1. DDNS 서비스 제공자 선택

  - other 선택

  * 추후 deSEC 있는 경우엔 해당 항목 선택

2. 

3. 업데이트 프로토콜 입력

  - dyndns2

4. 업데이트 서버 주소 입력

  - update.dedyn.io

4. Username 입력

  - 자신이 만든 도메인을 입력해야 한다. (메일계정이 아님)

  - 예) sacstory.dedyn.io

5. Password 입력

  - 발급된 토큰값을 입력한다.

  - 예) 24rjavgFzS7ZJmBXh2YMhrVgKVFB

6. IP 선정 방법 선택

  - Web-based IP discovery service 또는 상황에 맞춰

7. Hosts to update

  - 자신의 서버에 할당할 도메인 주소를 입력한다.

  - 예1) sacstory.dedyn.io  # 대표주소만 할당시

  - 예2) *.sacstory.dedyn.io # 모든 서브도메인 할당시

  - 예3) mart.sacstory.dedyn.io # 특정 서브도메인만 할당시

  - 예4) sacstory.dedyn.io,*.sacstory.dedyn.io # 2가지 이상 할당시 콜론 사용

 

other 선택
dyndns2 선택

 

update.dedyn.io 입력

 

Username은 메일 주소가 아닌 자신이 만든 도메인주소다
발급된 토큰값 입력
자신의 DNS 이름으로 지정할 도메인 입력

 

 

설정이 끝났다. 하지만 추가 수정이 필요하다.

ddclient의 config 파일을 수정해야한다.

 

vi /etc/ddclient.conf

 

 

공식 deSEC 설명에 따라 아래와 같이 자신의 환경에 맞춰 수정해준다.

(참고 : https://desec.readthedocs.io/en/latest/dyndns/configure.html)

# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf

protocol=dyndns2 \
use=cmd, cmd='curl https://checkipv4.dedyn.io' \
ssl=yes
server=update.dedyn.io \
login=sacstory.dedyn.io \
password='T7v6utn7hyzgrC8himK2jZAjY5C9' \
sacstory.dedyn.io,*.sacstory.dedyn.io

 

이제 업데이트를 해준다.

# 정석(5분 간격을 주고 동작 하도록 제한되어 있음)
ddclient

# 강제 업데이트 필요시(짧은 시간내 여러번 사용시 IP 차단 당할수 있음)
ddclient -force

 

아래와 같이 SUCCESS가 보이면 된다.

 

deSEC 홈페이지에서 아래와 같이 내가 설정한 도메인이 추가가 된것을 확인 할 수 있다.

 

 

(필요한경우) 문제가 생길 경우를 대비해 ddclient 관리용 별도 명령어 스크립트를 만들어 활용한다.

#!/bin/bash

ddclient -daemon=0 -debug -verbose -noquiet

 

반응형