# SPF, DKIM, DMARC 이해하기: 간단한 가이드

> Clean Markdown view of GeekNews topic #15408. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=15408](https://news.hada.io/topic?id=15408)
- GeekNews Markdown: [https://news.hada.io/topic/15408.md](https://news.hada.io/topic/15408.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-06-18T19:33:29+09:00
- Updated: 2024-06-18T19:33:29+09:00
- Original source: [github.com/nicanorflavier](https://github.com/nicanorflavier/spf-dkim-dmarc-simplified)
- Points: 20
- Comments: 3

## Summary

최근에 국내 이메일 뉴스레터들이 Gmail에서 "주의해야 할 메일입니다" 라는 경고가 뜨고 있는데요. 바로 이 SPF, DKIM, DMARC 가 제대로 세팅 안되어서 그렇습니다. 이 가이드는 **간단하고 명확한 설명과 예시**로 누구나 쉽게 이해할 수 있으니 꼭 설정하시기 바랍니다.

## Topic Body

#### 이 가이드는 무엇을 위한 것인가?  
  
- 이메일을 보내는 애플리케이션을 개발, 지원, 유지하는 사람들에게 필수적인 가이드임.  
- 이메일이 스팸 폴더가 아닌 수신자의 받은 편지함에 도착하도록 보장함.  
- 사이버 범죄자와 스팸 발송자로부터 도메인을 보호하는 방법을 설명함.  
  
#### 왜 이 가이드를 선택해야 하는가?  
  
- 간단하고 명확한 설명과 예시로 SPF, DKIM, DMARC를 이해하기 쉽게 설명함.  
- GitHub에 호스팅되어 개발 환경과 통합하여 빠르게 정보에 접근할 수 있음.  
- 커뮤니티가 지속적으로 업데이트하고 유지할 수 있는 문서임.  
  
#### 이 가이드는 무엇을 위한 것이 아닌가?  
  
- 이메일 서버 설정이나 암호화, 보안 이메일 게이트웨이와 같은 고급 주제를 다루지 않음.  
  
#### SPF, DKIM, DMARC 간단히 설명하기  
  
##### SPF (Sender Policy Framework)  
  
- **SPF**: 이메일을 보낼 수 있는 친구 목록과 같음.  
- **SPF 레코드**: 이 친구 목록을 DNS TXT 레코드에 저장함.  
- 예시: `v=spf1 ip4:123.123.123.123 ~all`  
  
##### DKIM (DomainKeys Identified Mail)  
  
- **DKIM**: 이메일 내부에 비밀 노트를 넣는 것과 같음.  
- **DKIM 레코드**: 공개 키를 DNS TXT 레코드에 저장하여 수신자가 이메일의 진위를 확인할 수 있게 함.  
- 예시: `v=DKIM1; k=rsa; p=NICfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBolTXCqbxwoRBffyg2efs+Dtlc+CjxKz9grZGBaISRvN7EOZNoGDTyjbDIG8CnEK479niIL4rPAVriT54MhUZfC5UU4OFXTvOW8FWzk6++a0JzYu+FAwYnOQE9R8npKNOl2iDK/kheneVcD4IKCK7IhuWf8w4lnR6QEW3hpTsawIDAQ0B`  
  
##### DMARC (Domain-based Message Authentication, Reporting & Conformance)  
  
- **DMARC**: SPF와 DKIM의 규칙을 종합하여 큰 규칙 책을 만드는 것과 같음.  
- **DMARC 레코드**: 이 규칙 책을 DNS TXT 레코드에 저장하여 수신자가 이메일을 처리하는 방법을 결정함.  
- 예시: `v=DMARC1; p=none; rua=mailto:postmaster@example.com`  
  
#### SPF, DKIM, DMARC의 실제 사용 예시  
  
- **모바일 앱**: 피트니스 앱이나 은행 앱이 이메일을 보낼 때 SPF, DKIM, DMARC를 사용하여 이메일이 스팸 폴더가 아닌 받은 편지함에 도착하도록 보장함.  
- **이메일 서비스 제공자**: Gmail, Yahoo, Outlook 등은 SPF, DKIM, DMARC를 사용하여 수신 이메일을 인증함.  
- **소셜 미디어 플랫폼**: LinkedIn, Facebook, Twitter 등은 알림 이메일을 보낼 때 SPF, DKIM, DMARC를 사용함.  
- **기업**: 프로모션 이메일을 보낼 때 SPF, DKIM, DMARC를 사용하여 이메일이 스팸으로 표시되지 않도록 하고 도메인이 이메일 스푸핑에 사용되지 않도록 함.  
- **정부 기관**: 시민에게 알림을 보낼 때 SPF, DKIM, DMARC를 사용하여 피싱 공격을 방지함.  
  
#### 이제 무엇을 해야 할까?  
  
1. **이메일 주소와 도메인 식별**: 앱에서 사용하는 이메일 주소와 도메인을 파악함.  
2. **현재 상태 확인**: 이미 SPF, DKIM, DMARC 레코드가 있는지 확인하고 올바르게 설정되었는지 확인함.  
3. **도메인 접근 권한**: DNS 레코드를 변경할 수 있는 권한이 있는지 확인함.  
4. **DMARC 모니터링**: DMARC 보고서를 모니터링하여 문제가 없는지 확인하고, 필요한 경우 수정함.  
  
#### SPF, DKIM, DMARC 상태 확인  
  
- **MXToolbox**:  
  - https://mxtoolbox.com/ 방문  
  - 'SPF Record Lookup', 'DKIM Record Lookup', 'DMARC Record Lookup' 도구 사용  
- **DMARCTester**:  
  - https://www.dmarctester.com/ 방문  
  - 이메일 보내기 또는 이메일 헤더 붙여넣기 방법 사용  
  
#### FAQ's with SPF, DKIM and DMARC  
  
1. **DMARC 보고용 이메일 주소**: 여러 사람이 확인할 수 있는 공유 메일박스를 사용하는 것이 좋음.  
2. **SPF 레코드의 ~all, -all, ?all, +all 차이**:  
   - ~all (SoftFail): 목록에 없는 서버에서 온 이메일도 허용하지만 의심스러울 수 있음.  
   - -all (Fail): 목록에 없는 서버에서 온 이메일은 거부함.  
   - ?all (Neutral): 특별한 지침 없이 이메일을 처리함.  
   - +all (Pass): 모든 서버에서 온 이메일을 허용함.  
3. **SPF 없이 DMARC 설정 가능 여부**: 가능하지만 비효율적임. SPF와 DKIM을 함께 사용하는 것이 좋음.  
4. **이메일 헤더에서 여러 SPF 실패와 일부 SPF 통과가 보일 때**: 자신의 도메인과 관련된 SPF 체크를 신뢰해야 함.  
  
#### 마무리  
  
- SPF, DKIM, DMARC는 이메일 보안의 숨은 영웅임.  
- 이 세 가지가 이메일의 신뢰성을 유지하는 데 중요한 역할을 함.  
  
#### GN⁺의 의견  
  
- **이메일 보안의 중요성**: 이메일은 중요한 커뮤니케이션 수단으로, 보안이 매우 중요함.  
- **SPF, DKIM, DMARC의 필요성**: 이 세 가지 기술은 이메일 스푸핑과 피싱 공격을 방지하는 데 필수적임.  
- **도입 시 고려사항**: 설정과 모니터링이 필요하며, 잘못된 설정은 이메일 전달에 문제를 일으킬 수 있음.  
- **관련 도구**: MXToolbox와 DMARCTester와 같은 도구를 사용하면 설정 상태를 쉽게 확인할 수 있음.  
- **업계 표준**: 이메일 보안을 강화하기 위해 SPF, DKIM, DMARC는 업계 표준으로 자리 잡고 있음.

## Comments



### Comment 26465

- Author: kty1965
- Created: 2024-06-21T18:50:21+09:00
- Points: 1

SPF, DKIM, DMARC 이젠 너무 중요 해진거 같습니다

### Comment 26404

- Author: ninebow
- Created: 2024-06-19T11:43:55+09:00
- Points: 1

Google Workspace나 SES 등을 사용하게 되면 MX 레코드 외에도 SPF, DKIM 등 설정하는게 하나씩 늘어나고 있는데, 막상 찾아볼 생각은 안하고 어디선가 뭔가 잘 되고 있겠지 정도만 생각했었는데 감사합니다! :D

### Comment 26384

- Author: neo
- Created: 2024-06-18T19:33:30+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=40708476) 
- **IT 관리자의 경험**: 중소기업에서 IT를 관리하며, 잘못된 SPF 레코드로 인해 격리된 이메일을 자주 풀어달라는 요청을 받음. 화이트리스트 대신 SPF 레코드를 수정하도록 도움을 제공함. 이를 자동화하기 위해 Racket 언어로 스크립트를 작성함.

- **책 추천**: Michael W. Lucas가 "Run Your Own Mail Server"라는 책을 준비 중이며, SPF/DKIM/DMARC 설정에 대한 자세한 내용을 다룸. BSDCan에서 그의 튜토리얼과 강연을 들었으며, 책을 추천함.

- **SPF/DKIM/DMARC 가이드 필요성**: 이메일을 다른 도메인으로 보내는 앱 개발자를 위한 SPF/DKIM/DMARC 가이드가 필요함. 많은 티켓 시스템과 마케팅 플랫폼이 이 개념을 이해하지 못함.

- **자동화의 중요성**: SPF/DKIM/DMARC 설정을 자동화하는 스타트업을 운영 중이며, 가이드의 품질을 높게 평가함. 하지만 사용자가 문제를 한 번만 겪기 때문에 장기적인 이해가 어려움. 자동화가 중요함.

- **디버깅 도구 추천**: DMARC 문제를 디버깅하기 위한 좋은 도구 링크를 공유함.

- **테스트 도구 추천**: mail-tester.com과 eu.dmarcian.com의 무료 버전을 테스트 도구로 추천함. 또한 DKIM을 이해하기 위한 블로그 링크를 공유함.

- **스팸 문제**: 이메일 설정을 완벽하게 해도 Gmail에서 스팸으로 분류되는 경우가 있음. 수백 시간을 투자했지만 해결되지 않아 iCloud 같은 3자 호스팅 서비스를 사용하게 됨.

- **이메일 다양성 필요성**: Apple, Google, Microsoft 같은 대기업의 이메일 서비스에 의존하지 말고, 가능한 한 자체 이메일 서버를 사용해야 함.

- **무료 DMARC 모니터링 서비스**: Postmark라는 서비스에서 무료 DMARC 모니터링 서비스를 제공함.

- **SPF/DKIM/DMARC 설정 결과**: 예시 도메인에서 SPF, DKIM, DMARC 설정이 모두 통과된 결과를 공유함.
