識破「釣魚」假裝 郵箱防騙策略詳解

 

做者html

做者|Feei(止介):螞蟻金服負責安全架構工做,任高級安全專家,原美麗聯合集團信息安全總監, Cobra做者,擅長解決方案產品化和項目管理,同時也是一名安全工程師,專一於自動化安全發現與防護,擅長安全架構設計、安全產品解決方案併產品化。git

 

1 郵件僞造實踐github

 

1.1 郵件僞造原理

 

SMTP協議自己的From是能夠隨便填寫的,多見於各類郵件釣魚。小程序

 

1.2 常見釣魚郵件

冒充Apple官方,讓你登錄Apple ID,從而盜取你的蘋果帳號,通常手機丟失後容易收到此類郵件用來騙取你帳號密碼從而解鎖iPhone。微信小程序

冒充老闆、同事,索要通信錄、讓你點擊鏈接修改密碼、索要其它信息等瀏覽器

 

冒充各類服務商,讓你點擊鏈接騙取帳號密碼。安全

 

釣魚郵件手法多種多樣,但萬變不離其宗,本質上是但願你能:服務器

  • 打開郵件:不要覺得就打開郵件不作其它操做就沒風險,打開的這一步可能就觸發郵件內的圖片等資源加載,對方就能知道你打開的時間和IP等信息,另外也有一些針對郵件服務商的漏洞,打開後也會觸發。
  • 回覆郵件:每每冒充各類人,好比你的老闆、同事甚至政府機關等以各類名義讓你提供帳號密碼或我的信息等。
  • 點擊鏈接:會跳到惡意網站,經過一些漏洞使你電腦執行特定程序。
  • 下載附件:附件多是個文檔或者圖標,點擊後就會觸發可執行程序。

目的也各不相同:微信

  • 加密電腦全部有用文件並勒索;
  • 控制電腦做爲肉雞用來攻擊或瀏覽廣告;
  • 惡做劇,刪除全部文件,強制死機等;

1.3 郵件僞造實踐

咱們以馬化騰郵箱的名義給本身發一封郵件,只需改動SMTP裏的From便可。架構

在騰訊企業郵箱郵件列表頁中沒有任何異常。

 

在騰訊企業郵箱郵件詳情中會提示**真實發送地址和宣稱的發件人地址不一致**,並顯示了真實的發送地址。

 

 

在macOS的Mail客戶端中無任何異常。

 

 

在微信小程序的騰訊企業郵箱中無任何異常。

 

 

1.4 郵件僞造代碼

# -*- coding: utf-8 -*-

"""
    fake-mail
    ~~~~~~~~~

    僞造發件人發送郵件

    :author:    Feei <feei@feei.cn>
    :homepage:  https://github.com/FeeiCN/Mail-Checker
    :license:   GPL, see LICENSE for more details.
    :copyright: Copyright (c) 2015 Feei. All rights reserved
"""
import smtplib
import traceback
from smtplib import SMTPException
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

host = 'smtp.exmail.qq.com'
port = '25'
username = 'feei@feei.cn'
password = '配置好騰訊郵箱密碼'

def mail(subject, to, html, fake_name, fake_mail):
    """
    Send mail
    :param subject: 主題
    :param to: 發給誰
    :param html: 內容
    :param fake_name: 以誰的名義
    :param fake_mail: 以誰的郵箱
    :return:
    """
    msg = MIMEMultipart()
    msg['Subject'] = subject
    msg['From'] = '{0} <{1}>'.format(fake_name, fake_mail)
    # 支持多用戶接收郵件
    msg['To'] = to

    text = MIMEText(html, 'html', 'utf-8')
    msg.attach(text)

    try:
        s = smtplib.SMTP(host, port)
        s.ehlo()
        s.starttls()
        s.ehlo()
        s.login(username, password)
        s.sendmail(username, to.split(','), msg.as_string())
        s.quit()
        return True
    except SMTPException:
        print('Send mail failed')
        traceback.print_exc()
        return False


assert mail('Test by @Feei', 'zhijie@meili-inc.com', 'Fake Mail Content', '馬化騰', 'tony@tencent.com')

  

2 郵件僞造防範

2.1 限制來信地址(SPF)

發件人策略框架(SPF),簡單理解就是告訴全部的郵件服務器收到我這個域名發送的郵件時,以我告訴你的IP地址爲準,不是咱們IP地址的都算做僞造。

SPF原理

經過給發件域名配置一個TXT類型DNS記錄,當其它的DNS Server收到咱們域名的郵件時,會查詢該域名TXT記錄中是否存在SPF記錄,若是存在則會獲取SPF標記的IP,拿到IP和實際發件IP比對,從而判斷是否僞造。

騰訊企業郵箱的SPF記錄

# 查詢qq.com根域名的TXT類型的DNS記錄
# 解析到了spf.mail.qq.com域名上
➜  ~ dig -t txt qq.com

; <<>> DiG 9.10.6 <<>> -t txt qq.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20179
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;qq.com.                IN  TXT

;; ANSWER SECTION:
qq.com.         1388    IN  TXT "v=spf1 include:spf.mail.qq.com -all"

;; Query time: 26 msec
;; MSG SIZE  rcvd: 83

# 查詢spf.mail.qq.com的TXT記錄
# 解析到了spf-a.mail.qq.com等多個域名上
➜  ~ dig -t txt spf.mail.qq.com

; <<>> DiG 9.10.6 <<>> -t txt spf.mail.qq.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8072
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;spf.mail.qq.com.       IN  TXT

;; ANSWER SECTION:
spf.mail.qq.com.    6423    IN  TXT "v=spf1 include:spf-a.mail.qq.com include:spf-b.mail.qq.com include:spf-c.mail.qq.com include:spf-d.mail.qq.com include:spf-e.mail.qq.com include:spf-f.mail.qq.com -all"

;; Query time: 15 msec
;; MSG SIZE  rcvd: 224

# 查詢spf-f.mail.qq.com的TXT記錄
# 顯示的是最終的IP地址段
➜  ~ dig -t txt spf-a.mail.qq.com

; <<>> DiG 9.10.6 <<>> -t txt spf-a.mail.qq.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50079
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;spf-a.mail.qq.com.     IN  TXT

;; ANSWER SECTION:
spf-a.mail.qq.com.  598 IN  TXT "v=spf1 ip4:103.7.28.0/24 ip4:103.7.29.0/24 ip4:112.90.139.0/24 ip4:113.108.23.0/24 ip4:113.108.11.0/24 ip4:119.147.193.0/24 ip4:119.147.194.0/24 ip4:59.78.209.0/24 ip4:113.96.223.0/24 ip4:183.3.226.0/24 ip4:183.3.255.0/24 ip4:59.36.132.0/24 -all"

;; Query time: 38 msec
;; MSG SIZE  rcvd: 304

 

也就是全部QQ郵箱發出去的郵件,好比網易郵箱收到時會去查詢QQ的SPF設置並撈取全部信任IP,根據郵件發件人和信任IP比對來判斷是否爲僞造郵件。

SPF配置

在域名DNS服務商裏面配置**根域名(@)的**TXT記錄,**TTL**保留默認或3600,以feei.cn(使用的騰訊企業郵箱)的TXT記錄爲例。

 

也就是全部QQ郵箱發出去的郵件,好比網易郵箱收到時會去查詢QQ的SPF設置並撈取全部信任IP,根據郵件發件人和信任IP比對來判斷是否爲僞造郵件。

SPF配置¶
在域名DNS服務商裏面配置**根域名(@)的**TXT記錄,**TTL**保留默認或3600,以feei.cn(使用的騰訊企業郵箱)的TXT記錄爲例。

 

  • v=spf1表明爲SPF1版本。
  • include:spf.mail.qq.com表示使用spf.mail.qq.com的TXT記錄做爲信任IP。
  • -all表示除開以前配置的信任IP外,其它全部的都拒絕接收。

  • 每條內容以空格做爲分隔

  • 每一個修飾符只能出現一次

 

限定符

  • +表示經過,指定容許發送的主機
  • -表示失敗,指定拒絕發送的主機
  • ~表示軟失敗,不容許發送但標記起來
  • ?中性,不肯定

all/include描述

  • all通常放在末尾,表示始終匹配
  • include表示多層嵌套

ip4/ip6描述符

  • ip4:ip,好比ip4:1.1.1.1
  • ip4:IP段,好比ip4:1.1.1.1/24
  • ip6:ip,好比ip6:1080::8:800:68.0.3.1/96

a/mx描述符

  • 默認域名的A記錄,好比v=spf1 a -all
  • 指定域名的A記錄,好比v=spf1 a:feei.cn -all
  • 按照MX記錄的優先級,好比v=spf1 mx mx:feei.cn -all

詳細的查看官方文檔SPF語法

SPF例子

# 域名不會發送郵件
"v=spf1 -all"

# 認爲SPF無用或可有可無
"v=spf1 +all"

# 只容許1.1.1.1發出來的郵件
"v=spf1 ip4:1.1.1.1 -all"

# 只容許騰訊企業郵箱發出來的郵件
"v=spf1 ip4:spf.mail.qq.com -all"

  

SPF枚舉郵件服務器地址

根據SPF特性,能夠經過遞歸方式枚舉出某個企業的所有郵件服務器地址。

# -*- coding: utf-8 -*-

"""
    SPF
    ~~~

    SPF信任IP枚舉

    spf = SPF()
    spf.spf('qq.com')
    print(spf.root)
    print(spf.ip_segments)
    print(spf.included_domains)
    print(spf.ips)

    :author:    Feei <feei@feei.cn>
    :homepage:  https://github.com/FeeiCN/Mail-Checker
    :license:   GPL, see LICENSE for more details.
    :copyright: Copyright (c) 2015 Feei. All rights reserved
"""
import re
import dns.resolver


class SPF(object):
    def __init__(self):
        self.ips = []
        self.included_domains = []
        self.ip_segments = []
        self.root = []

    def spf(self, domain):
        txt_items = dns.resolver.query(domain, 'txt')
        for txt in txt_items:
            txt = txt.to_text().strip()
            if re.search(r"^\"v=spf", txt):
                self.parse_spf(domain, txt.strip('"'))

    def parse_spf(self, domain, record):
        for item in record.split(' '):
            if re.search(r'^ip4:', item):
                ip = item[4:]
                is_ip_segment = False
                if '/' in ip:
                    self.ip_segments.append(ip)
                    is_ip_segment = True
                else:
                    self.ips.append(ip)
                self.root.append({"domain": domain, "ip": ip, "ip_segment": is_ip_segment})
            elif re.search(r'^include:', item):
                include = item[8:]
                if not (include in self.included_domains or include == domain):
                    self.spf(include)
                self.included_domains.append(include)


spf = SPF()
spf.spf('qq.com')
# 結構
print(spf.root)
# IP
print(spf.ips)
# IP段
print(spf.ip_segments)
# 域名
print(spf.included_domains)

  

[{'domain': 'spf-a.mail.qq.com', 'ip': '103.7.28.0/24', 'ip_segment': True}, {'domain': 'spf-a.mail.qq.com', 'ip': '103.7.29.0/24', 'ip_segment': True}, {'domain': 'spf-a.mail.qq.com', 'ip': '112.90.139.0/24', 'ip_segment': True}, {'domain': 'spf-a.mail.qq.com', 'ip': '113.108.23.0/24', 'ip_segment': True}, {'domain': 'spf-a.mail.qq.com', 'ip': '113.108.11.0/24', 'ip_segment': True}, {'domain': 'spf-a.mail.qq.com', 'ip': '119.147.193.0/24', 'ip_segment': True}, {'domain': 'spf-a.mail.qq.com', 'ip': '119.147.194.0/24', 'ip_segment': True}, {'domain': 'spf-a.mail.qq.com', 'ip': '59.78.209.0/24', 'ip_segment': True}, {'domain': 'spf-a.mail.qq.com', 'ip': '113.96.223.0/24', 'ip_segment': True}, {'domain': 'spf-a.mail.qq.com', 'ip': '183.3.226.0/24', 'ip_segment': True}, {'domain': 'spf-a.mail.qq.com', 'ip': '183.3.255.0/24', 'ip_segment': True}, {'domain': 'spf-a.mail.qq.com', 'ip': '59.36.132.0/24', 'ip_segment': True}, {'domain': 'spf-b.mail.qq.com', 'ip': '14.17.32.0/24', 'ip_segment': True}, {'domain': 'spf-b.mail.qq.com', 'ip': '14.17.43.0/24', 'ip_segment': True}, {'domain': 'spf-b.mail.qq.com', 'ip': '14.17.44.0/24', 'ip_segment': True}, {'domain': 'spf-b.mail.qq.com', 'ip': '14.17.21.0/24', 'ip_segment': True}, {'domain': 'spf-b.mail.qq.com', 'ip': '183.60.52.0/24', 'ip_segment': True}, {'domain': 'spf-b.mail.qq.com', 'ip': '183.60.61.0/24', 'ip_segment': True}, {'domain': 'spf-b.mail.qq.com', 'ip': '183.60.8.0/24', 'ip_segment': True}, {'domain': 'spf-b.mail.qq.com', 'ip': '183.62.104.0/24', 'ip_segment': True}, {'domain': 'spf-b.mail.qq.com', 'ip': '184.105.206.0/24', 'ip_segment': True}, {'domain': 'spf-b.mail.qq.com', 'ip': '184.105.67.0/24', 'ip_segment': True}, {'domain': 'spf-b.mail.qq.com', 'ip': '203.205.160.0/24', 'ip_segment': True}, {'domain': 'spf-b.mail.qq.com', 'ip': '58.250.132.0/24', 'ip_segment': True}, {'domain': 'spf-c.mail.qq.com', 'ip': '54.179.177.0/24', 'ip_segment': True}, {'domain': 'spf-c.mail.qq.com', 'ip': '183.57.50.0/24', 'ip_segment': True}, {'domain': 'spf-c.mail.qq.com', 'ip': '59.37.110.0/24', 'ip_segment': True}, {'domain': 'spf-c.mail.qq.com', 'ip': '54.204.34.0/24', 'ip_segment': True}, {'domain': 'spf-c.mail.qq.com', 'ip': '54.206.16.0/24', 'ip_segment': True}, {'domain': 'spf-c.mail.qq.com', 'ip': '54.206.34.0/24', 'ip_segment': True}, {'domain': 'spf-c.mail.qq.com', 'ip': '54.207.19.0/24', 'ip_segment': True}, {'domain': 'spf-c.mail.qq.com', 'ip': '54.207.22.0/24', 'ip_segment': True}, {'domain': 'spf-c.mail.qq.com', 'ip': '54.238.142.0/24', 'ip_segment': True}, {'domain': 'spf-c.mail.qq.com', 'ip': '54.238.162.0/24', 'ip_segment': True}, {'domain': 'spf-c.mail.qq.com', 'ip': '54.243.244.0/24', 'ip_segment': True}, {'domain': 'spf-c.mail.qq.com', 'ip': '58.251.149.0/24', 'ip_segment': True}, {'domain': 'spf-d.mail.qq.com', 'ip': '58.250.134.0/24', 'ip_segment': True}, {'domain': 'spf-d.mail.qq.com', 'ip': '54.254.200.0/24', 'ip_segment': True}, {'domain': 'spf-d.mail.qq.com', 'ip': '54.92.39.0/24', 'ip_segment': True}, {'domain': 'spf-d.mail.qq.com', 'ip': '103.7.31.0/24', 'ip_segment': True}, {'domain': 'spf-d.mail.qq.com', 'ip': '14.17.18.0/24', 'ip_segment': True}, {'domain': 'spf-d.mail.qq.com', 'ip': '112.90.142.0/24', 'ip_segment': True}, {'domain': 'spf-d.mail.qq.com', 'ip': '113.108.91.0/24', 'ip_segment': True}, {'domain': 'spf-d.mail.qq.com', 'ip': '119.147.14.0/24', 'ip_segment': True}, {'domain': 'spf-d.mail.qq.com', 'ip': '180.153.3.0/24', 'ip_segment': True}, {'domain': 'spf-d.mail.qq.com', 'ip': '183.60.60.0/24', 'ip_segment': True}, {'domain': 'spf-d.mail.qq.com', 'ip': '183.62.126.0/24', 'ip_segment': True}, {'domain': 'spf-d.mail.qq.com', 'ip': '211.139.188.0/24', 'ip_segment': True}, {'domain': 'spf-e.mail.qq.com', 'ip': '203.205.176.0/24', 'ip_segment': True}, {'domain': 'spf-e.mail.qq.com', 'ip': '14.215.153.0/24', 'ip_segment': True}, {'domain': 'spf-e.mail.qq.com', 'ip': '14.215.154.0/24', 'ip_segment': True}, {'domain': 'spf-e.mail.qq.com', 'ip': '14.215.155.0/24', 'ip_segment': True}, {'domain': 'spf-e.mail.qq.com', 'ip': '183.61.51.0/24', 'ip_segment': True}, {'domain': 'spf-e.mail.qq.com', 'ip': '183.61.52.0/24', 'ip_segment': True}, {'domain': 'spf-e.mail.qq.com', 'ip': '163.177.87.0/24', 'ip_segment': True}, {'domain': 'spf-e.mail.qq.com', 'ip': '220.249.245.0/24', 'ip_segment': True}, {'domain': 'spf-e.mail.qq.com', 'ip': '52.59.177.0/24', 'ip_segment': True}, {'domain': 'spf-e.mail.qq.com', 'ip': '18.194.254.0/24', 'ip_segment': True}, {'domain': 'spf-f.mail.qq.com', 'ip': '180.163.24.128/25', 'ip_segment': True}, {'domain': 'spf-f.mail.qq.com', 'ip': '121.51.40.128/25', 'ip_segment': True}, {'domain': 'spf-f.mail.qq.com', 'ip': '58.246.222.128/25', 'ip_segment': True}, {'domain': 'spf-f.mail.qq.com', 'ip': '58.250.143.128/25', 'ip_segment': True}, {'domain': 'spf-f.mail.qq.com', 'ip': '121.51.6.0/25', 'ip_segment': True}, {'domain': 'spf-f.mail.qq.com', 'ip': '183.2.187.0/25', 'ip_segment': True}, {'domain': 'spf-f.mail.qq.com', 'ip': '203.205.140.128/25', 'ip_segment': True}, {'domain': 'spf-f.mail.qq.com', 'ip': '203.205.210.0/25', 'ip_segment': True}, {'domain': 'spf-f.mail.qq.com', 'ip': '203.205.146.128/25', 'ip_segment': True}]
[]
['103.7.28.0/24', '103.7.29.0/24', '112.90.139.0/24', '113.108.23.0/24', '113.108.11.0/24', '119.147.193.0/24', '119.147.194.0/24', '59.78.209.0/24', '113.96.223.0/24', '183.3.226.0/24', '183.3.255.0/24', '59.36.132.0/24', '14.17.32.0/24', '14.17.43.0/24', '14.17.44.0/24', '14.17.21.0/24', '183.60.52.0/24', '183.60.61.0/24', '183.60.8.0/24', '183.62.104.0/24', '184.105.206.0/24', '184.105.67.0/24', '203.205.160.0/24', '58.250.132.0/24', '54.179.177.0/24', '183.57.50.0/24', '59.37.110.0/24', '54.204.34.0/24', '54.206.16.0/24', '54.206.34.0/24', '54.207.19.0/24', '54.207.22.0/24', '54.238.142.0/24', '54.238.162.0/24', '54.243.244.0/24', '58.251.149.0/24', '58.250.134.0/24', '54.254.200.0/24', '54.92.39.0/24', '103.7.31.0/24', '14.17.18.0/24', '112.90.142.0/24', '113.108.91.0/24', '119.147.14.0/24', '180.153.3.0/24', '183.60.60.0/24', '183.62.126.0/24', '211.139.188.0/24', '203.205.176.0/24', '14.215.153.0/24', '14.215.154.0/24', '14.215.155.0/24', '183.61.51.0/24', '183.61.52.0/24', '163.177.87.0/24', '220.249.245.0/24', '52.59.177.0/24', '18.194.254.0/24', '180.163.24.128/25', '121.51.40.128/25', '58.246.222.128/25', '58.250.143.128/25', '121.51.6.0/25', '183.2.187.0/25', '203.205.140.128/25', '203.205.210.0/25', '203.205.146.128/25']
['spf-a.mail.qq.com', 'spf-b.mail.qq.com', 'spf-c.mail.qq.com', 'spf-d.mail.qq.com', 'spf-e.mail.qq.com', 'spf-f.mail.qq.com', 'spf.mail.qq.com']

2.2 防止郵件內容篡改(DKIM)

DKIM做用

使用域名密鑰識別郵件 (DKIM) 標準有助於向外發送郵件遭到假冒,包括郵件內容遭到更改、使郵件顯示爲非真實的來源的發件人或發件地址,這些都是對郵件未受權利用的常見手法。

DKIM原理

使用DKIM,將會加密簽名添加到全部外發郵件的Header中,收到此類郵件的郵件服務器會使用DKIM解密郵件Header,並驗證郵件發送後是否遭到篡改。

DKIM使用

  • 爲域名生成密鑰
  • 向域名DNS記錄增長公鑰,以便於其它郵件服務器使用此密鑰讀取郵件Header中DKIM
  • 開啓DKIM功能,以便於將DKIM簽名添加到全部發送的郵件Header中

國內的騰訊企業郵箱和網易企業郵箱都不支持DKIM。

2.3 處理可疑郵件(DMARC)

DMARC(Domain-based Message Authentication, Reporting & Conformance)是一種基於現有的SPF和DKIM協議的可擴展電子郵件認證協議,郵件收發雙方創建了郵件反饋機制,便於郵件發送方和郵件接收方共同對域名的管理進行完善和監督。對於未經過前述檢查的郵件,接收方則按照發送方指定的策略進行處理,如直接投入垃圾箱或拒收。從而有效識別並攔截欺詐郵件和釣魚郵件,保障用戶我的信息安全。

簡單講就是不像以前的SPF的管控策略,只能攔截、經過,而是能夠有更多的操做方式,好比扔進垃圾箱甚至講這些郵件轉發給咱們。

DMARC配置

檢查一個網站的DMARC配置能夠查看_dmarc.domain.comTXT記錄,好比qq.com的DMARC記錄。

➜  ~ dig -t txt _dmarc.qq.com

; <<>> DiG 9.10.6 <<>> -t txt _dmarc.qq.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 225
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;_dmarc.qq.com.         IN  TXT

;; ANSWER SECTION:
_dmarc.qq.com.      3610    IN  TXT "v=DMARC1; p=none; rua=mailto:mailauth-reports@qq.com"

;; Query time: 189 msec
;; MSG SIZE  rcvd: 107

qq.com的DMARC配置爲例:

v=DMARC1; p=none; rua=mailto:mailauth-reports@qq.com

 

  • v=DMARC1表示使用的是DMARC1版本,必須放在最前面
  • p表示郵件處理策略
  • none表示不採起特定策略,初期觀察建議採用此模式
  • quarantine表示郵件接收者將郵件標記爲可疑的
  • reject表示郵件接收者拒收該郵件
  • rua表示將一段時間的彙總報告反饋的郵件地址,可用逗號分隔
  • ruf表示當檢測到僞造郵件時將僞造信息的報告反饋的郵件地址,可用逗號分隔

詳細語法介紹見DMARC文檔

例如我但願我域名feei.cn配置DMARC,則在個人DNS服務商管理後臺增長一條DNS記錄。HOST爲_dmarc,類型爲TXT,值爲v=DMARC1; p=none; rua=mailto:mail-report@feei.cnDMARC的前提必須已經配置過SPF。

DMARC例子

# 檢測到僞造郵件時不作任何特殊處理,將僞造郵件報告給我
v=DMARC1; p=none; ruf=mailto:mail-report@feei.cn

# 檢測到僞造郵件時標記爲可疑郵件,將僞造的郵件報告給我
v=DMARC1; p=quarantine; ruf=mailto:mail-report@feei.cn

# 檢測到僞造郵件時拒絕接受該郵件,將僞造的郵件報告給我,並將一段時間內的彙總報告給我
v=DMARC1; p=reject; ruf=mailto:mail-report@feei.cn; rua=mailto:mail-report@feei.cn

2.4 IP的反向解析地址(PTR)

PTR(Pointer Record)是將IP解析到域名上,常見的域名解析到IP是經過A(IPv4)或AAAA(IPv6)進行的,能夠簡單理解爲IP的反向域名解析,經常使用於提高郵箱的發信信譽從而提升到達率。

查詢IP的PTR能夠經過dig -x ip,好比查看8.8.8.8的PTR記錄爲google-public-dns-a.google.com.

 

➜  ~ dig -x 8.8.8.8

; <<>> DiG 9.10.6 <<>> -x 8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1999
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;8.8.8.8.in-addr.arpa.      IN  PTR

;; ANSWER SECTION:
8.8.8.8.in-addr.arpa.   75474   IN  PTR google-public-dns-a.google.com.

;; Query time: 91 msec
;; MSG SIZE  rcvd: 93

 

PTR配置

PTR的配置沒法在DNS服務商配置,由於IP的歸屬是運營商(ISP),所以若是是買的雲主機須要向運營商提交申請進行配置解析。

3 郵件安全建議

3.1 自身加固

  • 強制開啓登錄二次驗證(掃碼、短信、Google Auth)
  • 關閉企業郵箱中的組織架構信息
  • 去掉企業郵箱中的除姓名、郵箱地址外其它的信息(手機號、職位、部門等)
  • 發送營銷郵件時使用二級域名,好比reply@event.feei.cn,當被封禁時不會影響其餘業務

3.2 安全意識

  • 勿打開未知人員發送的郵件,尤爲是郵件附件
  • 不要回復任何要求提供帳號密碼或我的信息的郵件
  • 發送敏感數據應進行加密
  • 勿使用公司郵箱做爲我的用途
  • 公司郵箱郵件勿轉發到我的郵箱中
  • 瀏覽器中使用HTTPS訪問郵箱,客戶端中使用SSL/TLS訪問郵箱
相關文章
相關標籤/搜索