Linux
OpenVPN:不同的使用者假設可以訪問不同的網路
我有可以訪問網路的 OpenVPN 伺服器:
- 1.1.1.0/24
- 2.2.2.0/24
我還有 2 個 OpenVPN 使用者:
- userA:只能訪問網路1.1.1.0/24
- userB:只能訪問網路2.2.2.0/24
我怎麼能做到這一點?
我試圖自己做到這一點。在同一台機器上,我創建了 1 個 CA、1 個伺服器和 2 個客戶端證書。以及 2 個用於 2 個守護程序的 OpenVPN 配置文件
在哪裡:
- 第一個配置文件將路由 1.1.1.0/24 推送到他的客戶端。對於它的守護程序,它使用埠 1193
- 第二個配置文件將路由 2.2.2.0/24 推送到他的客戶端。對於它的守護程序,它使用埠 1194
然後:
- 在 userA.ovpn 我設置
remote server.ip.address 1193
- 在 userB.ovpn 我設置
remote server.ip.address 1194
在那種情況下,它“完美”地工作。當我從不同的使用者連接(使用不同的 ovpn 配置文件)時,我的路由表中會出現不同的網路。但是,如果我在 user*.ovpn 配置文件中手動更改埠號 (1194 <> 1193),那麼我可以訪問我不認為可以訪問的網路。這就像黑客攻擊……
我認為如果在單個 OpenVPN 伺服器實例上進行每個客戶端配置,您需要什麼。
為此,您向伺服器傳遞
client-config-dir
設置為 OpenVPN 守護程序使用的任何帳戶可讀的目錄名稱的選項;例如,您可以添加client-config-dir /etc/openvpn/ccd
到您的 OpenVPN 的配置文件。
CN
然後,您為需要為其進行自定義配置的每個使用者添加一個配置文件。注意幾點:
- 不是每個使用者都需要這樣的額外配置;這些文件會覆蓋伺服器的預設值。
- 這些文件的名稱與
CN
s 不完全匹配:它們使用某些算法進行了修改——例如將-
s替換為_
s 等。有關完整詳細資訊,請參閱手冊頁。現在,在這些文件中,您幾乎可以使用為該特定客戶端應用的任何設置。你可以隨意使用
ifconfig-push
,iroute,
push`。我們成功地使用此方案通過單個 OpenVPN 實例連接了多個遠端 LAN,但與您的情況相比,它只是多一點工作(也就是說,我們需要 OpenVPN 來做更多的內部路由)。