1. TXT 레코드란?
- TXT(텍스트) 레코드는 DNS(Domain Name System)에서 도메인과 관련된 특정 정보를 저장하는 레코드 유형이다.
- 주로 인증, 보안, 설명 등의 목적으로 사용된다.
1.1 TXT 레코드의 주요 기능
1.1.1 도메인 인증
- SPF(Sender Policy Framework)
- 이메일 스푸핑(spoofing)을 방지하기 위해 특정 메일 서버만이 해당 도메인의 이메일을 보낼 수 있도록 지정한다.
- DKIM(DomainKeys Identified Mail)
- 이메일에 전자 서명을 추가하여 위변조를 방지한다.
- DMARC(Domain-based Message Authentication, Reporting & Conformance)
- SPF 및 DKIM 정책을 조합하여 이메일 인증 정책을 정의하고, 부정확한 이메일이 어떻게 처리될지를 결정한다.
1.1.2 소유권 검증
- Google, Microsoft, Facebook 등의 서비스에서 도메인 소유권을 확인할 때 TXT 레코드를 사용한다.
- 예시: Google Search Console에서 웹사이트 소유권을 인증할 때 제공되는 TXT 레코드를 추가하면 Google이 도메인을 확인할 수 있다.
1.1.3 기타 정보 저장
- 특정 서비스나 애플리케이션에서 요구하는 데이터를 기록할 수 있다.
- 예를 들어, Let’s Encrypt에서 SSL 인증서를 발급받기 위해 도메인 인증을 수행할 때 TXT 레코드를 사용한다.
1.2 TXT 레코드의 형식
- TXT 레코드는 기본적으로 "도메인명 TTL IN TXT '값'" 형태로 작성된다.
example.com. 3600 IN TXT "v=spf1 include:_spf.google.com ~all"
1.2.1 SPF 레코드 예시
example.com. 3600 IN TXT "v=spf1 ip4:192.168.1.1 -all"
- 해당 도메인에서 이메일을 보낼 수 있는 IP 주소를 지정한다.
1.2.2 DKIM 레코드 예시
default._domainkey.example.com. 3600 IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GC..."
- DKIM 서명을 위한 공개 키를 저장하는 레코드이다.
1.2.3 DMARC 레코드 예시
_dmarc.example.com. 3600 IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@example.com"
- 이메일 인증 정책을 정의하고, 부정확한 이메일의 처리 방법을 결정한다.
1.2.4 Google Search Console 소유권 검증 예시
example.com. 3600 IN TXT "google-site-verification=XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
- Google이 도메인 소유권을 확인하는 데 사용한다.
1.3 TXT 레코드 설정 방법
1.3.1 DNS 관리 콘솔 접속
- 도메인 호스팅 서비스(예: Cloudflare, AWS Route 53, GoDaddy, 네임서버 제공업체)의 DNS 관리 페이지로 이동한다.
1.3.2 TXT 레코드 추가
- 도메인 또는 서브도메인을 입력한다.
- "TXT" 유형을 선택하고 값을 입력한다.
- TTL(Time To Live)을 설정한다. 일반적으로 3600초(1시간)로 설정한다.
1.3.3 변경 사항 저장 및 적용 확인
- DNS 설정을 저장한 후, 변경 사항이 반영될 때까지 기다린다(보통 몇 분 ~ 몇 시간 소요).
- nslookup -q=TXT example.com 또는 dig TXT example.com 명령어를 사용하여 TXT 레코드가 정상적으로 반영되었는지 확인할 수 있다.
1.4 TXT 레코드 조회 방법
1.4.1 Windows 환경
nslookup -q=TXT example.com
1.4.2 Linux/macOS 환경
dig TXT example.com
참고 자료
'Hack&Dev > Web' 카테고리의 다른 글
SSRF(Server-Side Request Forgery)와 우회 기법 (Dreamhack SSRF 문제 curling 기준) (2) | 2025.02.23 |
---|---|
Flask 디버그 모드에서의 LFI(Local File Inclusion) 및 PIN 탈취 취약점 (0) | 2025.02.22 |
sitemap.xml 이란? (0) | 2025.02.15 |
스왑 파일(Swap File)이란? (0) | 2025.02.15 |
HTML 엔티티(HTML Entities)란? (XSS 방지) (2) | 2025.02.14 |