SPF, DKIM, DMARC 메일 보안 설정하기

wony·2024년 3월 22일
0
post-thumbnail

내가 보낸 메일이 스팸 메일함으로 가있다면 마케팅적으로 손해를 볼 것이다

이 메일이 스팸이 아니라는걸 증명하는 보안정책을 설정해주어야 하는데 그 방법으로는
SPF, DKIM, DMARC가 있다

그 설정 방법을 적어보려고 한다

우리의 도메인은 aws로 관리되고 있고 메일은 naverworks를 이용해 우리의 도메인주소로 메일을 보내고 있다

1. SPF

aws에서 route53에서 레코드를 생성해주어야 한다

레코드이름은 빈칸으로 두어도 되고
레코드 유형은 TXT 로 설정한다
레코드 값은 "v=spf1 include:worksmobile.com -all"
여기에서 worksmobile.com 은 naverworks를 사용했기 때문에 이렇게 적어준것이다
필요에따라 값을 변경해서 쓰면 될것 같다

레코드를 생성한다

2. DKIM

aws에서 Amazon SES에서 자격증명탭으로 이동하면 인증 부분에 DomainKeys Identified Mail(DKIM) 부분이 있다
없다면 키를 생성한다 나의 경우는 이미 key가 생성이 되어 있었다


다시 route53으로 돌아가 레코드를 생성해준다

레코드 이름은 DKIM에서 DNS레코드의 이름을 적는다
레코드 유형은 CNAME 으로 설정한다
레코드 값은 DKIM에서 DNS레코드의 값을 적는다

3개의 key로 레코드 3개를 모두 생성한다

3. DMARC

aws route53에서 레코드를 하나 생성한다

레코드이름은 _dmarc 으로 설정한다
레코드 유형은 TXT 로 설정한다
레코드 값은 "v=DMARC1; p=none; rua=mailto:이메일주소;"

여기에서 레코드값의 태그가 여러 종류가 있는데

1. v=DMARC1

DMARC의 버전을 설명하는 태그이다 이 태그는 필수 항목이며, DMARC1로 설정해야한다. V 태그는 반드시 모든 태그 중 가장 앞에 있어야 한다.

2. p=none, p=quarantine, p=reject

발신자 주소에 설정된 도메인이 SPF, DKIM 설정이 되어 있지 않은 경우 이 이메일을 어떻게 조치할지에 대한 내용을 이메일 수신 서비스에 전달한다.

  • none: 아무런 조치도 하지 않는다.
  • quarantine: 이메일을 스팸으로 표시하고 스팸함으로 보낸다.
  • reject: 이메일의 수신을 거부하며 스팸함에도 도착하지 않는다.

이 태그는 v 태그와 같이 필수로 설정해야 하는 항목이다.
처음에는 none으로 설정해 모니터링을 진행하고 문제가 없다면 quarnatine, reject 순서로 점점 조치를 강화하는 것을 일반적으로 권장하고 있다.

3. pct=

이메일 중 DMARC 정책을 적용할 비율을 정한다.
값은 1에서 100 사이의 정수로 설정하며 pct 값을 설정하지 않으면 기본값은 100으로 설정되고 발송하는 모든 이메일에 DMARC 정책이 적용된다.

일반적으로 처음에는 pct=5 정도로 낮은 값을 설정해 모니터링을 진행한 뒤 점점 비율을 늘려 최종적으로는 pct=100의 값으로 설정하는 것이 권장된다.

이 태그는 선택사항이다.

4.rua=mailto:

DMARC 정책 적용 결과에 대한 보고서를 수신할 이메일 주소를 입력한다.
DMARC 설정이 적용되면 이메일을 받아본 수신 서비스들에서는 정책의 적용 결과를 보고서로 작성해 이메일로 회신한다.
보고서를 분석하면 내 발신자 주소의 이메일이 어떻게 처리되고 있는지 결과를 확인할 수 있습니다.

설정은 이메일 주소에 mailto: 를 포함해서 설정하면 된다.

예) mailto:dmarc-report@example.com
DMARC 보고서를 여러 이메일에서 받아보고 싶다면 각 이메일 주소를 쉼표로 구분하고 개별 주소 앞에 mailto: 를 추가합니다.

예) mailto:dmarc-report-1@example.com, mailto:dmarc-report-2@example.com

이 태그는 선택사항이다.

5. sp=

하나의 도메인에 여러 하위 도메인을 사용하는 경우 하위 도메인에서 발송된 이메일에는 상위 도메인과 다른 DMARC 정책을 적용하고 싶은 경우 이 옵션을 사용하면 된다.
위에서 설정한 p 태그와 같은 역할과 설정 값을 가지지만 sp 태그는 상위 도메인이 아닌 하위 도메인에만 별도로 적용된다는 것에서 차이점이 있다.

none: 아무런 조치를 취하지 않는다.
quarantine: 이메일을 스팸으로 표시하고 스팸함으로 보낸다.
reject: 이메일의 수신을 거부하며 스팸함에도 도착하지 않는다.

이 태그는 선택사항이다.

6. adkim=

발신자 주소에 설정한 DKIM 설정값이 발송된 이메일에 포함된 DKIM 서명과 어느 정도 일치해야 DMARC 정책을 통과했다고 판단할지 여부를 정의한다.
DKIM 서명은 일반 사용 환경에서는 확인할 수 없고 '이메일 원본'의 헤더 값에서 확인할 수 있다.

  • s: DKIM을 설정한 도메인과 이메일을 발신한 도메인이 완전히 일치하는 경우에만 이메일 발송을 허용한다.
    예를 들어 example.com 도메인에 DKIM을 설정한 경우 반드시 발신자 도메인은 example.com인 경우에만 발송을 허용한다.
    서브 도메인으로 설정해 발송한 경우에는 두 도메인이 완전히 일치하지 않기 때문에 이메일 발송을 허용하지 않습니다.

  • r: DKIM을 설정한 도메인과 이메일을 발신한 도메인이 부분적으로 일치하는 경우에도 이메일 발송을 허용한다.
    예를 들어 example.com 도메인에 DKIM을 설정한 경우 example.com의 서브 도메인으로 설정된 발신자 이메일 주소도 발송을 허용한다.

기본적으로 r 값으로 설정된다.

이 태그는 선택사항이다.

7. aspf=

발신자 주소에 설정한 SPF 설정값이 발송된 이메일에 포함된 SPF 서명과 어느 정도 일치해야 DMARC 정책을 통과했다고 판단할지 여부를 정의한다.
SPF 서명은 DKIM과 마찬가지로 일반 사용 환경에서는 확인할 수 없고 '이메일 원본'의 헤더 값에서 확인할 수 있다.

  • s: MAIL FROM의 도메인과 발신자 주소의 도메인이 완전히 일치해야 발송을 허용한다.
  • r: MAIL FROM의 도메인과 발신자 주소의 도메인이 부분적으로 일치해도 발송을 허용한다.

기본적으로 r 값으로 설정된다.

이 태그는 선택사항이다.

메일을 보내서 원본메일을 확인해보면 모든값이 PASS로 되어있다면 설정은 성공이다!


참고)
https://help.stibee.com/hc/ko/articles/8640149224591-DMARC-%EC%84%A4%EC%A0%95%EC%9D%B4-%EB%AD%94%EA%B0%80%EC%9A%94

https://help.stibee.com/hc/ko/articles/8640149224591-DMARC-%EC%84%A4%EC%A0%95%EC%9D%B4-%EB%AD%94%EA%B0%80%EC%9A%94

profile
무럭무럭 성장중🌿

0개의 댓글