VPNクライアントがサーバーLAN内のすべてのサーバーにアクセスできるようにOpenVPNをセットアップする方法は?


12

サーバーのLAN IPは192.168.1.1で、192.168.1.2にイントラネットWebサーバーがあります。OpenVPNデーモンは、クライアントに192.168.2。*アドレスを提供するように構成されています。

push "route 192.168.1.0 255.255.255.0"configには、VPNクライアントが192.168.1.0ネット全体にアクセスできるようにする予定の行がありますが、アクセスできるのは192.168.1.1(VPNサーバー自体)のみです。

有効net.ipv4.ip_forward = 1にしようとしました/etc/sysctl.confが、これは役に立ちません。

何か案は?

PS:サーバーはUbuntu 12.04を実行しています。
PPS:OpenVPNはtunUDP経由のモードで実行されます。


親愛なる@FrandsHansen、私は同時に1.質問に対する論理的に正しい答えである、2。仕事のために私によってテストされた答えだけを受け入れます。
イヴァン

回答:


18

IP転送が実際に有効になっていることを確認してください

echo 1 > /proc/sys/net/ipv4/ip_forward

また、ルートプッシュが機能するためには、内部のサーバーもOpenVPNクライアントIPアドレスへのルートを知る必要があります。したがって、彼らは192.168.2.0/24へのルートを知る必要があります

ほとんどの場合、iptablesを使用してマスカレード経由でルーティングを実行できます。

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT

echo 1 > /proc/sys/net/ipv4/ip_forward与える-bash: /proc/sys/net/ipv4/ip_forward: Permission denied-この場合はどういう意味ですか?
イヴァン

ほとんどの場合、ルートとして実行していないことを意味します。ルートとしてそれをやってみてください
Frandsハンセン

と同じ効果sudoです。結果はどうなるのでしょうか?
イヴァン

1
コマンドの前にsudoを配置しても、ファイルに特権が追加されないため(>の後)、rootに昇格してから実行する必要があります。
フランズハンセン

1
または使用echo 1 | sudo tee
-ygrek

2

LANネットワークが本当に192.168.1.0/24である場合、多くの問題が発生する可能性があります。ほとんどのルーターにはデフォルトのネットワークがあるためです。そのため、ゲストネットワークにいる場合、コンピューターは192.168.1.0/24ネットワークからIPを取得できます。そのため、リモートネットワークにはアクセスできませんが、ゲストネットワークにはアクセスできます。LANとVPNに別のネットワークを選択することをお勧めします。たとえば、LANの場合は192.170.15.0/24、vpnの場合は10.0.5.0/xxです。xxは、VPNクライアントがLANに接続している量に依存します。

ここにopenvpn用のfwスクリプトがあります

#!/bin/sh

iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A INPUT -i tap+ -j ACCEPT
iptables -A FORWARD -i tap+ -j ACCEPT

# Allow packets from private subnets
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -j ACCEPT

# i have multiple vpn networks
# 192.123.123.0/24 = LAN
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.9.0.0/30 -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.9.1.0/30 -o eth1 -d 192.123.123.39 -j MASQUERADE # to single server access only

echo 1 > /proc/sys/net/ipv4/ip_forward

いいえ、実際には192.168.1.0ではなく、2つの異なる192.168。#。0ネットです。答えてくれてありがとう。
イヴァン

必要に応じて、openvpnサーバー設定とクライアント設定を共有できます。
グンティス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.