Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
最近因為把公司網站搬到 Linode 上面,
為了擋掉一些壞壞的存取,開了 Fail2ban。
但是在使用 FileZilla 的 SFTP 上傳檔案時,
因為將 Fail2ban 禁止條件設為「10 分鐘內嘗試連接 5 次」,
導致上傳檔案時,如果超過 5 個檔案,就會不小心把自己 ban 掉,
所以需要把自己的 IP 加入允許清單 (whitelist) 中。
但由於自己平常會在不同的網路環境下存取,
因此每次的 IP 並不一致,所以使用了動態 DNS (dynamic DNS) 作為解決方法。
一般 DNS 是將域名對應到一組固定 IP 上,
而動態 DNS 則是透過低 TTL 頻繁更新的方式,隨時更新域名與 IP 的對應關係。
因此,使用 DDNS 服務時,通常會搭配各廠商開發的動態更新用戶端 (Dynamic Update Client,簡稱 DUC)。
這次使用的是 No-IP 的 DDNS 服務,
最主要是因為免費額度就可以登錄 3 組域名,
符合我自己的需求,因此先嘗試。
其他還有諸如 Dyn 等服務,
未來有機會測試再分享。
在註冊完並驗證 No-IP 的帳號後,可以前往 My No-IP 中的 [Dynamic DNS],
點選 [Create Hostname],建立希望使用的子網域名稱,如 kkkkkkkkkk.ddns.net。
[Record Type] 我使用的是預設的 A Record,讓域名透過 IP 的方式去對應。
這個步驟並不需要手動填寫你現在的 IP,系統會自行去讀取。
接著下載 No-IP 自家的 DUC,安裝後開啟,登入自己的帳號,
勾選自己想要進行動態更新的域名即可。
如果需要讓外部連結到裝置的話(例如 NAS 或自架 FTP),
還需要針對網路的路由器做一些設定,
但這次的目的只是製作一個可以讓遠端驗證的「身份」,
並沒有要讓遠端讀取我的電腦內容,所以這部分就省略。
進入主機後,使用編輯器編輯防火牆規則:
$ sudo vim /etc/fail2ban/jail.local
找到 ignoreip 的設定,並做以下修改:
#
# JAILS
#
#
# [DEFAULT]
# 將 kkkkkkkkkk.ddns.net 換成自己的名字
ignoreip = 127.0.0.1/8 kkkkkkkkkk.ddns.net
儲存後,重新啟用 fail2ban 服務:
$ sudo service fail2ban restart
之後只要電腦開機時,確定自己的 DUC 是打開的,
就可以不用怕把自己被自己的防火牆擋掉了。
目前測試下來,No-IP 大約需要 5 分鐘的時間去更新 DNS 資訊,
因此在更換 IP 位置後,建議先確定 No-IP 已經將域名指向到自己現在的外部 IP。
[…] 前幾篇提到透過 No-IP 來建立 DDNS 的做法,來避免被 fail2ban 擋下。後來在阿竣的建議下,研究了 Cloudflare 的作法。透過這種方法,可以讓 DDNS 使用自己的主要域名,而非 No-IP 或其他 DDNS 服務的子域名。 […]