대문글

MileMoa

검색
×

마일모아 게시판   [정보-기타]
지메일/야후 스팸 규정 강화: 하루에 5천건 이상 이메일 보내시는 사장님들 필독

bn | 2024.02.18 00:51:44 | 본문 건너뛰기 | 댓글 건너뛰기 쓰기

간만에 제 전공 분야 (이민이 아닙니다)에 대한 글을 써 보겠습니다.

 

아시는지 모르시겠지만 구글이 야후와 같이 2024년 2월 1일부터 매일 5천건 이상의 이메일을 보내는 도메인에 대하여 강화된 스팸 방지 규정을 적용하겠다고 공지했습니다. 하지만 일종의 유예기간을 두고 실제로는 4월 1일부터 점진적으로 차단을 시작하겠다고 했고요. 

 

이메일 프로토콜에는 보내는 사람이 진짜 그 사람이 맞는지 확인을 할 수 있게 하는 여러가지 보안 기술들을 적용할 수 있습니다. 하지만 일종의 설정 작업이 필요한 지라 생각보다는 많이 사용되고 있진 않은 것 같고요. 근데 너무 많은 스팸이 오다보니 구글과 야후가 이번에 합작하여 매일 5천건 이상 보내는 도메인은 이런 저런 보안 기술을 적용하지 않을 경우 이메일 서버 단에서 차단을 시켜버리겠다고 공지한 것입니다 (id@gmail.com이나 id@yahoo.com 이메일 주소가 아니라 id@mycompany.com처럼 커스텀 도메인을 쓰셔서 보내는 경우에만 해당됩니다.). 좀 복잡하지만 요런 설정들이 스팸을 줄이는데 도움이 되고 원하시지 않게 이메일이 도용당하지 않게 막는 역할을 하니까 이메일을 별로 안 보내시더라도 설정 해두시는 걸 추천드립니다. 

 

실제 구글쪽 공지는 요 링크에서 참조하세요: https://support.google.com/a/answer/81126?sjid=11014014978177815797-NC&visit_id=638438280941116567-3433830282&rd=1#requirements-5k

 

근데 이게 아무리 IT쪽 전공자라고 해도 요런쪽을 다뤄보지 않았다면 이게 뭔 소리인지 알아보기가 힘듭니다. 전에 이것 관련해서 아시는 분을 도와 드린 적이 있어서 한번 쉽게 해설을 해보도록 하겠습니다. 최대한 자세하게 풀기는 하는데 모르시겠으면 주변의 IT 전공자나 IT admin에게 설정을 부탁하시기 바랍니다. 아래에 적힌 내용을 모두 준수하셔야 원하지 않게 이메일이 차단당하는 경우를 막을 수 있습니다. 

 

 

1. SPF를 적용하세요. 

 

 

SPF: Sender policy framework의 약자로 간단하게 설명하면 이메일을 실제로 보내는 서버를 명시해서 다른 악의적인 스패머들이 다른 서버를 사용해서 보내는 일이 없도록 막는 겁니다. 우리회사는 구글 워크스페이스나 마소 office 365만 써서 이메일을 쓰는데 만약에 누가 야후 이메일 서버를 써서 우리 회사 이메일 계정인 것 처럼 보냈으면 그건 당연히 스패머나 해커인 것이니까 차단해 주세요 라고 요청하는 거에요. 

 

요건 DNS의 TXT 레코드라는 걸 써서 설정합니다. 회사가 이메일을 보낼 때 쓰는 도메인 관리 회사에 로그인 하셔서 TXT 레코드를 하나 아래와 같이 만드시면 됩니다. 

구글쪽의 도움말이 잘 설명하고 있는 것 같고요. https://support.google.com/a/answer/10685031?sjid=11014014978177815797-NC

 

예제를 몇개 적어 드리겠습니다. 아래 적힌 도메인은 업데이트가 되었을 수도 안 되었을 수도 있으니 실제로 적어야 할 내용은 실제로 이메일 서비스를 제공하시는 업체에 문의하시기 바랍니다. 만약에 고대디를 통해서 마소 365 이메일 서비스를 쓰신다면 마소 365의 설정을 가져오셔야 합니다. 도메인의 DNS 설정가셔서 @이라는 TXT 레코드를 하나 만들고 아래의 내용을 넣으면 됩니다. 

 

구글 워크스페이스에서만 이메일을 보낼 것이니 다른 곳은 수상한 이메일이라고 마킹하시오: "v=spf1 include:_spf.google.com ~all"
마소 365에서만 이메일을 보낼 것이니 다른 곳은 다 차단하시오: "v=spf1 include:spf.protection.outlook.com -all"


2. DKIM을 적용하세요. 

 

 

DKIM: DomainKeys Identified Mail의 약자로 보안 서명을 보내는 이메일 헤더에 적고 그 보안 서명을 확인할 수 있는 공개 키를 DNS 레코드에 공지해서 받는 서버측에서 악의적인 사용자가 이메일을 변조했는지 안했는지 판별 할 수 있도록 해주는 기술입니다. 요 서명은 보내는 사람(이나 보내는 사람의 이메일 서비스 업체)가 가지고 있는 비밀 키를 가지고만 만들 수 있기 때문에 이 서명이 정확하지 않으면 당연히 수상한 이메일 이겠죠? 

 

이건 사용하려면 이메일 서버 소프트웨어나 서비스 업체가 DKIM을 지원해 줘야 합니다. DKIM을 지원하지 않는다면 변경을 추천드립니다. 각 서버 소프트웨어나 서비스업체마다 절차가 다릅니다만 대략적으로 어드민 계정으로 로그인 하셔서 DKIM 키를 생성하시고 그에 맞는 DNS 레코드를 DNS의 TXT레코드로 적으시면 됩니다. 

 

3. 이메일을 보낼 때 TLS를 사용하세요. 

 

 

이메일 서버가 이메일을 보낼 때에는 받는 서버랑 통신을 해서 이메일을 보내게 됩니다. 이때 통신할 때 두 상대방 말고는 무슨 통신을 하는지 모르게 TLS라는 보안프로토콜을 사용하라는 얘기입니다. http://주소 말고 https://를 쓰라는 얘기랑 똑같은 얘기입니다. 

이것도 이메일 업체나 서버에 설정가서 설정하시면 됩니다. 

 

 

4. 스팸률을 0.1% 미만으로 유지하고 0.3% 이상으로 넘어가는 일이 없도록 주의하세요. 

 

 

구글같은 경우 Postmaster Tools(https://gmail.com/postmaster) 이라는 걸 제공해서 지메일 사용자들이 해당 도메인에서 보내는 이메일을 얼마나 스팸이라고 마킹하는지 통계를 보여주고 있습니다. 대충 이메일 1천개를 보내면 999개에 대해서는 사용자가 스팸 버튼을 누르지 않았어야 한다는 겁니다. 

 

스팸률이 올라가면 이메일이 차단당하지는 않더라도 이메일이 스팸함에 들어갈 확률이 올라갑니다. 

 

5. RFC 5322 인터넷 메세지 포맷 스탠다드를 준수하세요. 

 

 

이메일을 보낼 때 사용할 수 있는 데이터 포맷에 대한 표준이 정의되어 있습니다. 이건 대부분의 정상적인 이메일 업체/소프트웨어면 준수해야 되는 규정이니 이게 안되면 바꾸셔야 합니다. 

 

6. 지메일이나 야후 메일 이메일 주소로 보내는 게 아닌데 보내는 이메일 주소를 지메일이나 야후인 것처럼 가장하지 마세요. 

 

 

가끔 업체들 중에 From:에 자기 이메일이 아닌 사용자 이메일을 써서 보내는 업체들이 있습니다. 예를들면 SNS에 mamomanse@gmail.com으로 가입을 했을 때 댓글을 달거나 할 때 상대방에게 mamomanse님이 댓글을 달았다는 이메일을 보낼 때 mamomanse@gmail.com에서 보내는 것 처럼 이메일을 만들어서 보내는 겁니다. 

 

(@마일모아 님 마일모아도 쪽지를 이메일로 보낼 때 이렇게 보냈던 것 같은데 저는 쪽지를 차단해서 요새도 그런지는 모르겠네요)

지메일이나 야후는 DMARC 세팅을 quarantine으로 바꾸기 때문에 스팸함으로 가거나 아예 전달되지 않고 차단 될 수가 있습니다. 

 

7. 서버가 받은 이메일을 자동으로 포워딩을 하는 경우라면 (보통 메일링 리스트가 이렇게 많이 합니다) ARC 헤더를 추가해야 합니다. 

 

 

포워딩을 하면 메세지가 변경이 되는 경우 (e.g., 어느어느 메일링 리스트에 가입되어 있어 이메일을 받았습니다라고 밑에 첨부하는 경우가 많지요) 가 있기 때문에 포워딩 된 이메일을 받는 곳에서 spf dkim 체크를 했을 때 이상한 이메일이라고 판별이 날 수가 있습니다. 이걸 방지하기 위해 ARC 헤더라는 걸 추가하는 겁니다. 

당연히 이것도 포워딩하는 소프트웨어가 지원해줘야 합니다. 어지간한 서비스 업체면 문제 안될 겁니다. 

 

8. 이메일 도메인에 대하여 DMARC 정책을 설정하세요. 

 

 

DMARC는 Domain-based Message Authentication, Reporting & Conformance 의 약자로 받는 이메일 서버가 받은 이메일이 spf OR dkim 테스트를 통과 못 했을 경우 어떻게 해야 하는지 알려주는 용도로 쓰입니다. 

마찬가지로 지메일쪽 도움말에 설명되어 있습니다: https://support.google.com/a/answer/2466563?hl=en&ref_topic=2759254

도메인의 dns설정가셔서 _dmarc.도메인네임 (주의 간혹 자동으로 도메인네임을 추가하는 회사도 있습니다) 라는 txt 레코드를 만들고 아래의 내용을 집어넣으시면 됩니다. 

v=DMARC1; p=reject; rua=mailto:dmarc_리포트@받을_이메일_주소; pct=100; adkim=s; aspf=s

p=만약에 spf나 dkim 중에 하나라도 통과하지 못했을 경우 어떻게 할지를 결정합니다. p=none 아무것도 하지 말아라 p=quarantine 스팸함으로 보내라 p=reject 스팸함으로 보내지도 말고 차단시켜라. (아직까지는) none으로 설정해도 괜찮다고 합니다. 

rua=를 설정할 경우 모든 이메일 서버에서 주기적으로 통과 했는지 실패했는지 리포트를 보냅니다. 실제 사용하시는 이메일이 아니라 따로 이메일을 하나 만드시거나 DMARC 리포트를 처리해주는 서비스 업체에서 지정해둔 이메일 주소를 쓰시기 바랍니다. 리포트를 받지 않기를 원하시면 빼면 됩니다. 

pct=spf dkim 인증 실패한 이메일 중에 몇 퍼센트에 이 정책을 적용할 지 설정합니다. pct=100은 전체 실패한 이메일에 적용이고 pct=1이면 전체의 1프로에만 적용입니다. 점진적으로 적용하고 싶을 때 사용하실 수 있습니다. 

adkim= dkim 체크의 강도를 조정합니다. s로 할 경우 보내는 사람의 도메인이 DKIM 헤더의 d=부분에 적힌 도메인명과 정확하게 일치 해야 합니다. r일 경우 partial 매치도 허용합니다. 예를들면 milemoa.com의 DKIM헤더가 있으면 mail.milemoa.com이나 bbs.milemoa.com에서 보내진 이메일도 허용하는 겁니다. 

aspf= spf 체크의 강도를 조정합니다. s로 할 경우 exact match r로 할 경우 서브도메인도 허용입니다. 

 

9. 직접 보내는 이메일 경우 From: 헤더의 도메인이 spf도메인이나 dkim 도메인과 일치해야 합니다. 

 

 

이래야 dmarc 테스트를 통과할 수 있습니다. 

 

10. 마케팅이나 subscribe된 이메일일 경우 one click unsubscribe 버튼을 제공해야 합니다. 

 

 

메일 헤더에: 

List-Unsubscribe-Post: List-Unsubscribe=One-Click
List-Unsubscribe: <https://domain.name/link/to/receive/unsubscribe/request/optional_id>

를 추가하시면 됩니다. 

 

이러면 사용자가 unsubcribe 버튼을 누를 경우 지메일이 https://unsubscribe.요청을.받을.주소로 POST 요청을 넣습니다. 
서버 측에서 이걸 받아서 unsubcribe를 처리 하면 됩니다.

 

POST request는 아래와 같습니다. 

"POST /link/to/receive/unsubscribe/request/optional_id HTTP/1.1
Host: domain.name
Content-Type: application/x-www-form-urlencoded
Content-Length: 26
List-Unsubscribe=One-Click"

 

어떤 곳에서는 저 링크를 개인화 시켜서 실제로 unsubcribe 누른 사람이 누군지 알 수 있게 하는 경우도 있고요. 그냥 문의 페이지로 링크 시킨 경우도 있습니다. 

 

 

요 정도만 지켜주시면 됩니다. 참 쉽죠? ㅠㅠ 좀 복잡하지만 요런 설정들이 스팸을 줄이는데 도움이 되고 원하시지 않게 이메일이 도용당하지 않게 막는 역할을 하니까 이메일을 별로 안 보내시더라도 설정 해두시는 걸 추천드립니다. 

댓글 [1]

목록 스크랩

마일모아 게시판 [114,195] 분류

쓰기
1 / 5710
마일모아 사이트 맞춤 구글 검색