operating_system:server:nat_server
NAT Server
0x00 前言
常常因為作業, 實驗, 或個人需求架設伺服器,但面臨的一個問題就是手上沒有 public IP,該如何是好
這時我們就會需要 NAT Server 來幫助我們將 private network 轉到 public network 啦
本篇介紹在 VMware Esxi 上用 FreeBSD+pf 架設一台 NAT Server 為 gateway,讓其餘虛擬機可已不需要拿 public 連上網路
0x01 架構與需求
- NAT Server 本身要帶兩張網卡,一張拿 public IP 接到對外網路,一張拿 private IP 接對內網路。下圖 VM network 為對外網路 switch,ksh_NAT 為對內網路 switch
- controller 和 network 則是 LAN 中的兩台機器,都拿中的兩台機器,都拿 private IP
0x02 Setting
- /etc/rc.conf 中設置好兩張網卡的 IP
- rc.conf
ifconfig_em0="inet 140.113.24.188 netmask 255.255.255.224" defaultrouter="140.113.24.161" ifconfig_em1="inet 192.168.1.253 netmask 255.255.255.0" pf_enable="YES" pflog_enable="YES" gateway_enable="YES"
- 重啟網路,這邊如果用 ssh 可能會斷線
# /etc/rc.d/netif restart # /etc/rc.d/routing restart
- 接著設定 /etc/pf.conf
- pf.conf
ext_if="em0" int_if="em1" lan_net="192.168.1.0/24" table <ssh_bruteforce> persist table <trusted> {} set skip on lo0 scrub in all nat on $ext_if from $lan_net to any -> 140.113.24.188 no nat on $ext_if from !$lan_net to any block drop in quick on $ext_if from <ssh_bruteforce> to any pass in quick on $ext_if from <trusted> to any
- 然後也需要在前面的 rc.conf 加入 pf_enable 和 gatewat_enable,讓 pf 和 gateway 開機啟動
gateway_enable=“YES” 可用下列指令在不重開機下執行
# sysctl net.inet.ip.forwarding=1
- 接著重啟 pf
# service pf restart
這樣一台 NAT Server 基本就能運作了
0x03 參考資料
operating_system/server/nat_server.txt · 上一次變更: 由 127.0.0.1