利用 Powershell 設定 Azure PTR 紀錄 (Reverse DNS),終於可以在Azure上架設SMTP Server了!

前言

Azure在2014年7月21日才發佈一個消息,就是能使用PTR紀錄,
而PTR紀錄(又稱Reverse DNS)會應用在哪裡呢?

通常會應用在Azure VM架對外的SMTP服務,而PTR紀錄重要的地方在於,
幾個有做Mail Spam大廠會提供一份網域黑名單(代表這些網域極有可能寄出一些垃圾郵件),
很多郵件系統都是去參考這個黑名單。而他如何去產生這份黑名單?這就與PTR的運作有關。

這些大廠要確定IP是你申請的、網域是你擁有的、SMTP也是你擁有的,
因此大廠的spam filter會檢查你寄出來的E-mail網域在你ISP業者的DNS有沒有PTR紀錄,
(因為固定IP的擁有者是ISP業者,我們只擁有網域,到FQDN的反解就要和他們申請)
若沒有PTR的話,代表這個固定IP不是你擁有的,且寄發mail時網域是可以捏造的,而IP不能,
所以當郵件系統在分析每封的IP來源時,
極有可能檢查到是其他不肖業者透過SMTP server發送一些不營養的信。

所以架對外的SMTP server的必要條件就是去向ISP申請PTR紀錄,
這是大家一致認定、卻不會特別說出來的小秘密。

概念

PTR紀錄究竟是什麼?如何運作的?
一般來說我們的DNS正解紀錄,會將FQDN解譯為IP,讓Internet上的user可以取到相關的服務資源,
PTR是將IP反解譯為FQDN的紀錄。
所以正解+反解查出的所有資訊,若一致,就代表你沒有在騙人!
(因為正解是我DNS有的設定、反解我也向IP的擁有者ISP申請)


關於正解反解的路徑,可參考以下兩張圖片(上圖是正解、下圖是反解):

image

image

圖片來源<http://www.osnets.de/wordpress/dns/>

講完了PTR概念之後,接著說到Azure。
Azure上的IP不是我擁有、domain也屬於Azure,若要使用自己的domain+PTR紀錄,
微軟提供一個方式,讓使用Azure資源的用戶,可下powershell指令來新增PTR紀錄。

限制

非雲端環境來說,PTR紀錄也只能對��一個IP,
因此,一個PTR紀錄只能對應到一個cloud service(with VIP)

實作

記得先去下載powershell for Azure
接著就可以下指令囉!

  1. 輸入帳密、登入Azure
    Add-AzureAccount
  2. 選擇要建立PTR的訂閱(給予subscription ID參數)
    Select-AzureSubscription –ID __________
  3. 在東亞新增一個VIP(Virtual IP),等一下要給Cloud Service使用
    New-AzureReservedIP –ReservedIPName MyReservedIP –Location "East Asia"
  4. 在東亞建立Cloud Service,並新增TPR紀錄
    New-AzureService –ServiceName “testPTR” –Location "East Asia" –Description “testPTR with Reverse DNS” –ReverseDnsFqdn “testPTR.itservice.com.tw.”

    可以使用以下指令確認有沒有成功建立ReserveDnsFqdn
    Get-AzureService
    image
  5. 把剛剛新增的VIP,綁定給剛剛建立的Cloud Service(請先建立一台Azure VM起來,才有辦法綁定)
    Set-AzureReservedIPAssociation -ReservedIPName MyReservedIP -ServiceName testPTR
  6. 最後記得在您的DNS server上新增以下CNAME紀錄,指到Azure Cloud Service DNS位址
    testPTR.itservice.com.tw CNAME testPTR.cloudapp.net.
  7. 最後驗證一下有沒有成功,利用nslookup指令,只要可以解譯回來IP就是設定PTR成功!
    nslookup 168.63.204.62 8.8.8.8
     image

 

== 要試用 Azure的朋友,請點選 Azure Free Trial – 試用 30 天期 進行試用申請。 ==

Loading