dns代管的建議事項

申請網域之後, 接下來就是思考如何設定dns, 以下是幾點建議:

  1. TW網域, 請到申請的網域公司設定成cloudflare代管,功能非常多,而且免費,還能作為CDN網站分流呢!
    為何不使用網域公司提供的功能呢? 因為國內網域公司提供的dns很陽春, 萬年功能就是A, TXT, PTR, MX,NS之類, 很不思進步, 台灣的能耐大概也就只能這樣. Hinet甚至還出現額外功能還要收費的情形.
  2. 其他網域若能使用google domain代管最好了, 直接提供超強的dns功能, 若網域不是向google domain購買,則無法請google domain代管, 請轉成cloudflare.
    另外若網域向GoDaddy申請, 您一定知道申請者資料保護還要另外收費,真是傻眼,趕快移轉到別地方吧, 偶認為GoDaddy是個很不優質的網域服務商, 但有些網域倒是不得不拜託GoDaddy 如 DE 德國的網域.
  3. 自架設PowerDNS-Admin , 本站爬一下文, pdns非常實用, 還支援DDNS功能, 若要突破大陸封鎖google的網路, 請務必準備好自架的DNS server.

2019年2月1日是 DNS flag day

長期以來很多自行架的dns伺服器, 並沒有支援Extension mechanisms for DNS (EDNS) , 造成google等公眾dns服務器(8.8.8.8, 1.1.1.1)效能低落, 常常要重複存取這些舊版的dns服務器,浪費資源.

因此, 這些公眾服務器廠商發表聲明, 將於2019年2月1日, 不再支援沒有EDNS功能dns伺服器.

若您因台灣爛到爆的dns代管功能太差, 失望之餘而自行架設dns服務器, 應該立即使用以下網址中的檢測工具, 查詢您的網域是否能通過檢測.

ps. 國外dns代管功能非常棒,除了.com.tw, org.tw , idv.tw 等等網域申請外跑不掉外, 請儘量不要在國內申請任網域.

https://dnsflagday.net/

老毛子Padavan 韌體, 如何透過PowerDNS-Admin更新DDNS

之前介紹過小米路由器mini可以刷老毛子padavan韌體, 不只功能強,還可以啟用shadowsocks功能, 但是有些路由器上網ip是動態的, 因此需要用到DDNS來綁定動態ip, 目前最穩定的DDNS大概就是google domain了, 他支援dyndns 2.
有些人若要綁定自己的網域, 可以安裝PowerDNS-Admin , 這個軟體也支援dyndns 2.
但是問題來了, padavan 與自行建立的PowerDNS-Admin 並不相容, 偶研究了很久, 終於用迂迴的方式搞定.

1. 建立正確的ddns設定文件
vi /etc/storage/script/inadyn.conf

background
verbose 1
checkip-url ip.3322.net /
startup-delay 15
period 600
forced-update 864000
cache-dir /tmp/inadyn
exec /sbin/ddns_updated
system custom@http_srv_basic_auth
  username <帳號>
  password <密碼>
  server-name :
  server-url //nic/update?hostname=<想改的網域主機名字>&myip=
  append-myip
  alias <想改的網域主機名字>

2. 找出padavan啟動後執行的腳本, 於最後一行加上

#!/bin/sh
pid=`ps | grep inadyn | awk 'NR==1{print $1}' | cut -d' ' -f1`
name=`ps | grep inadyn | awk 'NR==1{print $5}' | cut -d' ' -f1`
if  [[ "$name" == "/bin/inadyn" ]];
then
  if [[ -z "$pid" ]]
    /bin/kill $pid
  then
    echo "kill $pid"
  fi
fi
/bin/cp /etc/storage/script/inadyn.conf /etc/
/bin/rm -r /tmp/inadyn
/bin/inadyn --config /etc/inadyn.conf

當然做這些動作之前,padavan要設定啟用DDNS功能, 基本上這樣重開機之後, 會將正確的conf複製到系統目錄上,再重新執行就可以了,
另外設定檔裡面的 ip.3322.net 是可以透過padavan預設的ddns功能修改的.

CentOS 7使用docker安裝超強的power dns 域名服務器

台灣提供網域代管服務廠商實在是很糟糕, 如hinet , seednet 等龍頭都只願意提供基本功能.

進階功能如 CAA等功能大家根本不敢奢望, 因此只能靠自己安裝dns網域伺服器, 做得好的話還能達到fail-over功能,壞了自動由別台替代呢.

請參考

(1) 10002_(CentOS)如何安裝docker套件.txt 
(2)10025_(CentOS)(Docker)如何安裝超強的PowerDNS-Admin網域服務器.txt 

Postfix 擋廣告的限制設定 sender, client, and recipient restrictions

Postfix 擋廣告的限制設定, 重要的有三個,簡稱三兄弟:

老大: smtpd_sender_restrictions 

這部份著墨不多, 基本上就是檢查寄件者格式是否正確, 是第一階段限制

老2: smtpd_client_restrictions 

這個設定重點在於限制主機名稱 或是 ip 

例如:

check_client_access hash:/etc/postfix/sender_mail_hostname_check

代表你必須正確地, 將要限制的郵件主機名稱,或是ip (不能使用萬用字元), 寫入sender_mail_hostname_check 這個檔案裡面, 才能限制該主機.

接著再加上這個很威猛的設定 reject_unknown_client_hostname

利用dns方式, 來驗證主機名稱是否相符正, 否則就拒絕, 舉例來說:

若該郵件主機 ip 是1.2.3.4 , 且dns查詢結果是 xxx.com , 可是實際上 xxx.com 正向查詢不是 1.2.3.4 , 就會被擋下來!

ps. 1.2.3.4 可以宣稱是yyy.com 這個網域的郵件主機, 跟實際dns是xxx.com可以不一樣的.

光是這一招就能解決大部分廣告信, 因為廣告主機都會胡亂宣稱.

當然也造成很多誤判狀況, 因為有些IT人員並不會很認真處理主機ip的反解.

** reject_unknown_client_hostname 可以改用 reject_unknown_reverse_client_hostname 來替代, 只要反查不要查不出主機名稱 , 就不會擋下來, 比較寬鬆.

老3. smtpd_recipient_restrictions 

這部份就很多設定了, 重點在於

check_sender_access hash:/etc/postfix/sender_email_check

sender_email_check 紀錄了寄件者郵箱或是網域是否可以限制

與老2不同的是, 這裡可以使用萬用字元, 因為阻擋的不是ip , 而是email

請點此參考編號 10023 範例

1 2