反向代理實作- 以Synology NAS為例

先前有提到,一台主機可以透過不同的埠口定義不同服務的入口。然而最常使用的埠口莫過於80/443,也就是大家熟知的HTTP/HTTPS。但苦惱的是一台主機也各只有1個80/443,為了解決這個問題,就需要仰賴 #反向代理 #子域名,詳細的說明可以參考: 進階應用、服務部署- 談談何謂反向代理 – Eidolon’s 成長手札 (eidolon168.com)

今天就分享該如何在Synology上實作,不得不再次佩服群暉的使用者介面,它們的系統真的很厲害,解決很多繁瑣的設定步驟,使用者唯一需要的是具備相關背景專業。

設定的進入點在: 控制台/應用程式入口/反向代理伺服器

以gitlab subdomain為例

可以看到我已經新增一個子域名,細節的設定可以參考下圖

反向代理規則設定

比較容易犯錯的是來源的主機名稱,務必需要詳細的描述主機位置,這部分也需要與域名供應商的DNS設定一致,不能單純使用「gitlab」而是使用「gitlab.eidolon168.com」。
很方便的是還能直接設定HSTS強制HTTPS導向,超級方便的。

這樣就大功告成,相比以往需要透過 https:// OOOOO168.com:30000拜訪,現在只需要https://gitlab.OOOOO168.com即可(基於安全考量適當屏蔽網址)。此外,回到資訊安全層面討論,我們就可以藉此關閉掉Port: 30000 的通訊,降低被攻擊的機會。

在〈反向代理實作- 以Synology NAS為例〉中有 2 則留言

  1. 想請教一下,我使用了Synology本身的DNS服務,並設置反向代理了。
    在家測試時都正常,但我到了外面測試外網才發現好像哪裡有問題,但我想不太通…。

    在家裡、應該是因為同區網的情況下,瀏覽器輸入來源的主機名稱,可以正常且快速地連線至NAS。

    本來我在想是我目的地的主機名稱不可使用localhost嗎?
    但我看官網上對反向代理的介紹,【Synology NAS 可作為反向代理伺服器,將來自網際網路的請求傳輸至區域網路內的裝置。
    情境 1:假設敏感的連接埠為 80,依據防火牆規則,此連接埠應不允許外部存取。您可以可設立反向代理規則,允許網際網路中信任的使用者透過其他開放的連接埠 (例如:81) 抵達敏感的連接埠 80,信任的使用者即可繞過防火牆且仍能存取連接埠 80。】
    應該外網透過反向代理確實可以穿透防火牆才是…?

    如果我為了要穿透防火牆,而特地多設開放Port,這樣反而有安全疑慮吧,也多此一舉了。

    以Synology本身的應用程式來說,我現在設置應該只需要輸入https://photo.OOOOOO.synology.me/,即可連線。
    只要在家裡不管哪個裝置,連上區網的情況下都可正常連。唯獨外網不行。
    但外網我發現做不到….不知道是我哪裡設置錯了嗎,想跟您請教一下m(_ _)m

    回覆
    • 訊息內容有點龐大,先稍微回覆您的疑問。

      一個核心概念:反向代理跟防火牆是兩個不同的事情。反向代理是一個代理伺服器的角色,告訴其他電腦你要找的服務在我這台伺服器的哪一個Port;防火牆就是管制每一個Port的內外存取定義,有條件地開放才能確保系統安全。

      第一個問題解答:即便設定了反向代理,如果沒有打開防火牆,那用戶的流量會被導到一個無法存取的服務。所以只要想讓伺服器對外提供服務,無論有沒有啟動反向代理的服務,都應該打開該服務的Port。

      第二個問題解答:如同第一個問題的回覆,服務要對外本來就需要一個Port,一台伺服器上頭也不會只有一個對外的網站系統。所以防火牆是一定得針對該服務使用到的Port要做設定,這是必要的。
      再來談談資訊安全部分,如同Synology的建議,他家的dsm登入就在5000/5001;同理,網頁服務是在80/443,初階的目標攻擊就是去攻擊每一台主機的對應Port來達到目的,畢竟攻破apache需要的技術肯定跟SMTP是不同的。因此,修改Port的目的就是讓有心人士不好猜,增加其難度,例如:他可能要去做弱點分析、Port scan等。當然沒有一套系統的資安可以說自己固若金湯,對外的服務越多,風險自然就越大,需要定期更新來確保資安。

      所以看了一下您最後的問題,推測您應該沒有對外IP也沒使用CNAME,而是使用群暉提供的DDNS服務。這樣的架構是最安全的,因為不只有NAS的防火牆,內部Router也會擋住外部的存取。因此,除了NAS本身的設定外,小烏龜後面接到的Router也要記得做Port Forwarding,這樣服務才能被外網訪問,要不然都只能在家裡看到。https://kb.synology.com/zh-tw/DSM/help/DSM/AdminCenter/connection_routerconf?version=7
      具體可以參考群暉的資料,他們其實也有工具來幫忙管理連接埠轉送規則。

      如果要方便存取NAS,一組固定式的對外IP會省掉很多麻煩事,但對應的就是要配置對應的防火牆安全。
      希望能協助到您排除問題。

      回覆

發佈留言