我在 VPC 內的 EC2 執行個體上安裝了一個可用的 OpenVPN 伺服器。它用於允許遠端使用者存取私有子網路內的服務。到目前為止,這已經是一個足夠的解決方案,但目前所有客戶端都被視為 VPN 伺服器 IP。
是否可以在 EC2 執行個體上設定 OpenVPN 伺服器並向客戶端指派 IP 位址(最好是每個使用者靜態的)?
假設我有一個10.0.0.0/16
包含10.0.10.0/24
子網路 A、10.0.11.0/24
子網路 B 的 VPC。
答案1
您實際上使用的是 NATed 選項(預設),這表示所有客戶端都將被視為 OpenVPN 伺服器本身。
您可以使用另一個選項「路由」。在這種情況下,將為您的用戶端指派您定義的範圍內的 IP 位址(範例中的 10.0.11.0/24)。請確保您的 VPC 上不存在此子網路 (10.0.11.0/24),或 OMLY 您的 OpenVPN 伺服器位於此子網路中。
您唯一需要記住的是,您的用戶正在存取的私人子網路中的實例需要知道如何存取用戶的IP 位址(在本例中為10.0.11.0/24),因為AWS 不知道如何存取您的用戶的IP 位址(在本例中為10.0.11.0/24)。
解決這個問題的方法是:
- 將路由新增至您的 AWS 路由表(在您的私人子網路上),以將所有發送至 10.0.11.0/24 的流量傳送至您的 OpenVPN 伺服器。
- 停用 OpenVPN 伺服器實例上的來源/目標檢查
- 確保 OpenVPN 伺服器執行個體的安全群組允許來自 10.0.11.0/24 的流量
- 如果您使用 NACL,請確保您也沒有封鎖此流量。