티스토리 뷰

반응형

메일서버를 운영하다보면 메일 헤더를 위변조해서 스팸을 발송하거나

내부 메일계정이 탈취되었을때 릴레이로 메일서버를 직접적으로 거치지 않고도 스팸이 발송될 수 있다.

 

그래서 메일서버 앞단에 스팸보안 장비를 둬서 스팸 송/수신을 걸러내기도 하지만

내부 메일계정이 탈취되어 스팸릴레이에 이용 될 경우 내 도메인이 신뢰도 하락으로 각종 사이트에서 차단 걸릴 수 있다.

 

계정 유출이 안되게 하는 것도 중요하고 내 메일서버에서 발송된 메일이 정상발송인지도 확인해주면 더 좋다.

 

이런 점으로 작년에 적용한 메일보안 국제표준 기술 3가지를 간단히 기술해보려고 한다.

그 3가지는 SPF, DKIM, DMARC 인데 이번 포스트는 SPF 설정 방법을 설명한다.

 

셋중에 그나마 가장 간단한 방법이다.

 

 

 

 

 

 

SPF (Sender Policy Framework)

 

 

 

SPF 란, 수신측 메일서버가 발신측 메일 발송 IP가 DNS 에 등록된 IP가 맞는지 확인하여 스팸인지 아닌지 확인.

 

이미지 출처 : https://www.crinity.net/Newsletter/2019/06/Coffee_Break.html

 

 

위 이미지처럼 간단하게 메일 발송지 IP가 DNS에 등록된 IP와 맞는지 확인하는 것을 볼 수 있다.

 

도메인을 관리하는 DNS Zone 파일에 spf 레코드를 등록하면 된다.

그 구조는 아래와 같다.

 

sample.co.kr text = "v=spf1 ip4:123.456.789.1 ip4:123.456.789.15 ~all"

 

"sample.co.kr 도메인으로 발송되는 메일의 ip4가  123.456.789.1 과 123.456.789.15 이면 통과시키돼, 실패해도 통과시키는데 차단유무는 너한테 맡길께" 라는 뜻입니다.

 

 

 

 

 

 

spf 레코드 구조는 버전, 퀄리파이어, 메커니즘 조합으로 구성되어집니다.

버전(version) v=spf1 SPF 레코드 버전
퀄리파이어(Qualifier) +(통과), ?(중립), ~(SOFTFAIL), -(FAIL) 메커니즘과 같이 사용하며 통과/실패 처리를 정의
메커니즘 (Mechanisms) all, a, ip4, ip6, mx, ptr, exists, include 발송서버에 대한 매칭

 

위 조합으로 메일발송 서버 ip를 입력하든 도메인을 포함시키든 해서 spf 레코드를 작성하면 됩니다.

 

 

 

하지만 TXT 레코드의 최대길이는 255자여서 

서버가 많이 존재할 시 ip를 계속 넣을수는 없으므로 include 메커니즘을 활용하여 도메인으로 묶어서 추가해도 됩니다.

 

sample.co.kr text = "v=spf1 ip4:123.456.789.1 include:sample.com ~all"

 

이런식으로 여러 도메인이 존재한다면 include 로 도메인을 지정할 수도 있습니다.

 

 

 

이렇게 spf 레코드를 DNS 서버에 등록하면 발송지 ip가 dns서버에 등록된 ip와 다를 경우 메일 수신서버는 해당 메일을 차단하거나 스팸처리 할 수 있습니다.

 

 

 

 

 

 

 

 

주의사항

하지만 메일 헤더의 MAIL FROM 을 SPF 레코드가 등록된 다른 도메인으로 변조시켜버리면 SPF는 무용지물이 됩니다.

그래서 이제 도메인까지 비교하는 DKIM, DMARC 를 이용하여 MAIL FROM 과 From 을 비교하여야 합니다.

DKIM과 DMARC는 다음 포스트에서 이어 가겠습니다.

 

 

 

 

 

반응형
댓글
반응형
최근에 올라온 글
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Total
Today
Yesterday