OpenVPN サーバーをセットアップしましたが、今のところはうまく機能しています。ネットワークには、、、というサブネットがあります10.200.1.0/24
。VPN10.200.2.0/24
に10.200.3.0/24
接続すると、3 つのサブネットすべてに問題なく ping できます。サーバー側からサブネット アクセスを制限するにはどうすればよいですか? すべてのクライアントを対象としているため、構成は必要ありません。接続されている場合、サブネットへのアクセスをグローバルにccd
制限したいだけです。10.200.1/24
10.200.2/24
以下の構成は、10.200.3/24
サーバーがルートをクライアントにプッシュしなかったために、接続時にクライアントがアクセスできない場合に機能します。ただし、クライアントが手動でルートをマシンに追加すると、技術的には接続できます。
サーバー側からどのサブネットへのアクセスを許可するかを強制するにはどうすればよいですか?
サーバー.conf
local 10.200.0.8
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-crypt tc.key
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 10.200.1.0 255.255.255.0"
push "route 10.200.2.0 255.255.255.0"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem
explicit-exit-notify
答え1
VPN サーバーは IP ルーター (パケット転送を行う) であり、パケットがフィルタリングされる (転送されるか転送されないか) 場合があります。これはファイアウォールで行われます。たとえば、サーバーが Linux の場合は、次を追加します。
iptables -I FORWARD 1 -s 10.8.0.0/24 -d 10.200.3.0/24 -j REJECT
チェーン内の他のものより先にルールが-I ... 1
インストールされます。ファイアウォールにすでに何があるかに関係なく、そのままでも正しく機能するように、このように作成しました。これは最適ではない可能性があります。必要に応じてルールを調整してください。VPN クライアントからのパケットに一致する許可ルールより前に、必ずルールが表示されるようにしてください。
このフィルタリングは OpenVPN プラグインでも実行できますが、実現するのははるかに困難です。