在 pfSense 上設定 Port Forward

提示

這篇文章是配合 開源且強大的軟路由系統 – pfSense 的延伸文章,請配合著一起看。

前言

在前面一篇文章我們設定完了 DHCP Server。但這個時候,我們的客戶端獲得的都是私人的 IP 位址,公網是沒辦法直接訪問的。所以如果我們的主機上有要對外開放的服務,又該怎麼做呢?

這時候,就要借助 Port Forward 了,也是你在大部分路由器上可以看到的功能。他可以讓路由器將被指定的 Port,指向內部主機。

環境簡介

我們先模擬一個場景:

假設我們的公網 IP 是 1.1.1.1

而我們的私人網段是 10.0.1.0/24,路由器在 10.0.1.1 上且開啟了 DHCP 伺服器。

在這裡面有一台 Windows 主機獲得了 IP 位址 10.0.1.2,上面在 TCP 80 開啟了 Nginx。

現在的目標就是要讓外網訪問 1.1.1.1TCP 80 時,能指向這台 Windows 主機上的 Nginx。

設定步驟

使用 pfSense 的網頁管理介面,前往 FirewallNAT,你會隨即看到 Port Forward,我們點選 Add 新增規則。

001.jpg

首先 Interface 的部分,就是我們外網的介面卡,通常就是他預設的 WAN,我們保持不動。Protocol 的部分,因為我們是 Nginx,所以選擇 TCP 即可。而 Destination port range 則是設定我們要的 Port 80

002.jpg

再來是下方轉發的目的地,目標 IP 就是那台 Windows 的 10.0.1.2,而內部 Port 也是設定 80,Description 則是註記而已;這樣就可以拉到下面 Save 了。

003.jpg

根據指示,點選 Apply Changes 完成配置。

004.jpg

接著,打開你的瀏覽器並輸入公網 IP 位址,就可以看到 Nginx 的歡迎頁面了。

005.jpg

同場加映:限制來源位址

上面的 Port Forward 範例沒有設定來源 IP 位址,也就是全世界都可以訪問,但是這麼做不一定是安全的。所以這邊要來講解,如何限制指定的網段才能訪問網站。

前往 FirewallAliases,我們現在要來建立一個 IP 的列表,點選 Import。( Add 的編輯模式很笨)

006.jpg

接著我們需要給他名稱、描述以及最下方的網段,可以用 CIDR 表示哦!完成後 Save 儲存就好。

007.jpg

接著回到 FirewallNAT,我們編輯一下上面那個範例的規則,點選右邊的那支筆。

008.jpg

展開 Source 的選單,將 Type 選擇為 Single host or alias,後面的欄位則輸入剛剛規則的名稱,像我就是輸入 example1

009.jpg

完成後頁面下拉點選 Save,並 Apply Changes

010.jpg

現在,你的路由器只有在允許的網段訪問,才會提供網站或服務囉!