Jace Docs

deSEC & Caddy

deSEC은 보안과 표준을 극도로 중시하는 비영리 서비스로, 특히 **보안(DNSSEC)**과 개인정보 보호를 최우선으로 생각하는 개발자들에게 인기가 많습니다. Dynu보다 설정이 조금 더 엄격할 수 있지만, 한 번 설정해두면 매우 견고하게 작동합니다.


1단계: deSEC 계정 및 도메인 준비

  1. 계정 생성: desec.io에서 회원가입을 합니다.
  2. 도메인 생성: jace.dedyn.io와 같은 무료 도메인을 생성합니다.
  3. Token 발급: 계정 설정에서 API Token을 생성하여 안전하게 보관하세요. (Caddy가 DNS 레코드를 수정할 때 사용합니다.)

2단계: deSEC 플러그인이 포함된 Caddy 빌드

deSEC 역시 표준 Caddy에는 포함되어 있지 않으므로 xcaddy를 사용해 빌드해야 합니다.

# xcaddy로 deSEC 플러그인 포함하여 빌드
xcaddy build --with github.com/caddy-dns/desec

3단계: Caddyfile 작성

deSEC은 보안상 토큰 관리가 중요합니다. 환경 변수를 통해 관리하는 것이 가장 안전합니다.

{
    email your-email@example.com
}

# Snippet: deSEC DNS 인증 설정
(desec_auth) {
    tls {
        dns desec {$DESEC_TOKEN}
    }
}

# 배포 및 테스트 환경
{$SITE_ADDR:localhost} {
    # 로컬호스트가 아닐 때만 DNS 인증 적용
    @not_localhost not remote_ip 127.0.0.1 ::1
    import @not_localhost desec_auth
    
    reverse_proxy localhost:3000
    
    log {
        output file ./access.log
    }
}

4단계: 실행 및 관리

🚀 실행 명령어

export DESEC_TOKEN="여러분의_desec_token"
SITE_ADDR="jace.dedyn.io" ./caddy run

💡 deSEC만의 특징과 장점

  1. DNSSEC 기본 적용: deSEC은 모든 도메인에 DNSSEC을 강제 적용합니다. 이는 DNS 응답이 위조되지 않았음을 보장하여, 중간자 공격(MITM)으로부터 서비스를 보호합니다.
  2. 보안 중심 API: 토큰별로 권한을 세밀하게 제어할 수 있어, 만약 토큰이 유출되더라도 피해를 최소화할 수 있는 구조입니다.
  3. 비영리 및 오픈소스: 상업적 목적이 없는 비영리 단체에서 운영하므로 광고나 데이터 수집 걱정 없이 깔끔하게 사용할 수 있습니다.

🏁 최종 비교: Dynu vs deSEC (어떤 것을 쓸까요?)

  • Dynu를 선택할 때:
    • 도메인 이름이 더 다양하고 예뻤으면 좋겠다 (.dynu.com, .webhop.me 등).
    • 설정이 조금 더 직관적이고 쉬운 것을 선호한다.
  • deSEC을 선택할 때:
    • 보안(DNSSEC)을 실제 서비스처럼 완벽하게 구성해보고 싶다.
    • 비영리 단체의 깔끔한 오픈소스 철학을 선호한다.
    • 도메인 끝자리가 .dedyn.io여도 상관없다.

Jace님의 "start로 배포까지" 하려는 목적에는 두 서비스 모두 DuckDNS보다 훨씬 안정적인 SERVFAIL 없는 환경을 제공할 것입니다. 처음에는 조금 더 대중적인 Dynu로 시작해 보시는 것을 추천드려요!

이 외에 실제 서버에 systemd 서비스로 등록해서 관리하는 방법도 필요하신가요?

On this page