티스토리 뷰
메일서버를 운영하다보면 메일 헤더를 위변조해서 스팸을 발송하거나
내부 메일계정이 탈취되었을때 릴레이로 메일서버를 직접적으로 거치지 않고도 스팸이 발송될 수 있다.
그래서 메일서버 앞단에 스팸보안 장비를 둬서 스팸 송/수신을 걸러내기도 하지만
내부 메일계정이 탈취되어 스팸릴레이에 이용 될 경우 내 도메인이 신뢰도 하락으로 각종 사이트에서 차단 걸릴 수 있다.
계정 유출이 안되게 하는 것도 중요하고 내 메일서버에서 발송된 메일이 정상발송인지도 확인해주면 더 좋다.
이런 점으로 작년에 적용한 메일보안 국제표준 기술 3가지를 간단히 기술해보려고 한다.
그 3가지는 SPF, DKIM, DMARC 인데 이번 포스트는 SPF 설정 방법을 설명한다.
셋중에 그나마 가장 간단한 방법이다.
SPF (Sender Policy Framework)
SPF 란, 수신측 메일서버가 발신측 메일 발송 IP가 DNS 에 등록된 IP가 맞는지 확인하여 스팸인지 아닌지 확인.
위 이미지처럼 간단하게 메일 발송지 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는 다음 포스트에서 이어 가겠습니다.
'보안 > 메일보안' 카테고리의 다른 글
[MAIL보안] spf, dkim, dmarc 설정 확인하기(feat.nslookup) (0) | 2024.04.12 |
---|---|
[MAIL보안] DMARC (Domain-based Message Authentication Reporting Conformance) 메일 보안 - 3 (0) | 2023.02.03 |
[MAIL보안] DKIM (Domain Keys Identified Mail) 메일 보안 - 2 (1) | 2023.01.30 |