deSEC & Caddy
deSEC은 보안과 표준을 극도로 중시하는 비영리 서비스로, 특히 **보안(DNSSEC)**과 개인정보 보호를 최우선으로 생각하는 개발자들에게 인기가 많습니다. Dynu보다 설정이 조금 더 엄격할 수 있지만, 한 번 설정해두면 매우 견고하게 작동합니다.
1단계: deSEC 계정 및 도메인 준비
- 계정 생성: desec.io에서 회원가입을 합니다.
- 도메인 생성:
jace.dedyn.io와 같은 무료 도메인을 생성합니다. - Token 발급: 계정 설정에서 API Token을 생성하여 안전하게 보관하세요. (Caddy가 DNS 레코드를 수정할 때 사용합니다.)
2단계: deSEC 플러그인이 포함된 Caddy 빌드
deSEC 역시 표준 Caddy에는 포함되어 있지 않으므로 xcaddy를 사용해 빌드해야 합니다.
# xcaddy로 deSEC 플러그인 포함하여 빌드
xcaddy build --with github.com/caddy-dns/desec3단계: 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만의 특징과 장점
- DNSSEC 기본 적용: deSEC은 모든 도메인에 DNSSEC을 강제 적용합니다. 이는 DNS 응답이 위조되지 않았음을 보장하여, 중간자 공격(MITM)으로부터 서비스를 보호합니다.
- 보안 중심 API: 토큰별로 권한을 세밀하게 제어할 수 있어, 만약 토큰이 유출되더라도 피해를 최소화할 수 있는 구조입니다.
- 비영리 및 오픈소스: 상업적 목적이 없는 비영리 단체에서 운영하므로 광고나 데이터 수집 걱정 없이 깔끔하게 사용할 수 있습니다.
🏁 최종 비교: Dynu vs deSEC (어떤 것을 쓸까요?)
- Dynu를 선택할 때:
- 도메인 이름이 더 다양하고 예뻤으면 좋겠다 (
.dynu.com,.webhop.me등). - 설정이 조금 더 직관적이고 쉬운 것을 선호한다.
- 도메인 이름이 더 다양하고 예뻤으면 좋겠다 (
- deSEC을 선택할 때:
- 보안(DNSSEC)을 실제 서비스처럼 완벽하게 구성해보고 싶다.
- 비영리 단체의 깔끔한 오픈소스 철학을 선호한다.
- 도메인 끝자리가
.dedyn.io여도 상관없다.
Jace님의 "start로 배포까지" 하려는 목적에는 두 서비스 모두 DuckDNS보다 훨씬 안정적인 SERVFAIL 없는 환경을 제공할 것입니다. 처음에는 조금 더 대중적인 Dynu로 시작해 보시는 것을 추천드려요!
이 외에 실제 서버에 systemd 서비스로 등록해서 관리하는 방법도 필요하신가요?