在 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.1 的 TCP 80 時,能指向這台 Windows 主機上的 Nginx。

設定步驟

使用 pfSense 的網頁管理介面,前往 Firewall 的 NAT,你會隨即看到 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 位址,也就是全世界都可以訪問,但是這麼做不一定是安全的。所以這邊要來講解,如何限制指定的網段才能訪問網站。

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

006.jpg

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

007.jpg

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

008.jpg

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

009.jpg

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

010.jpg

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