家にLANがあります。 NATの後ろにあり、外部的に動的IPアドレスを使用します。私の家のLANは192.168.1.x IPアドレスを使用します。
また、IPアドレスが185.xxxのVPSがあります。今やりたいことは、OpenVPNを使用してホームLANとVPSの間にトンネルを設定して、VPSがホームLANの共有ファイルにアクセスできるようにすることです。
OpenSSLを使用してOpenVPNとすべての証明書などを設定しました。私が走るとき
openvpn --config server.conf
VPSと
openvpn --config client.conf
私のLANのPCでVPN接続が確立され、VPSとPCの両方が10.8.xx IPアドレスを持つTUNデバイスを取得します。これまでは、2台のコンピュータが接続されているように見え、エラーメッセージは表示されません。
ところで、どのように進むべきかわかりません。
これは私のものですserver.conf
:
server 10.8.0.0 255.255.255.0
verb 3
key /etc/openvpn/server/server.key
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/server.crt
dh /etc/openvpn/server/dh.pem
keepalive 10 120
persist-key
persist-tun
comp-lzo
route 192.168.1.0 255.255.255.0
dhcp-option DNS 192.168.1.1
user nobody
group nobody
proto udp
port 1194
dev tun1194
status openvpn-status.log
これは私のものですclient.conf
:
client
nobind
dev tun
redirect-gateway def1 bypass-dhcp
remote 185.x.x.x 1194 udp
comp-lzo yes
redirect-gateway def1
key /etc/openvpn/client.key
cert /etc/openvpn/client.crt
ca /etc/openvpn/ca.crt
VPSから自分のLANにトラフィックを送信できるように、クライアントとサーバーをどのように設定する必要がありますか? (例:VPSへのSMB / CIFS共有マウント、例:192.168.1.2)
理想的には、可能であれば、VPN接続は私のホームルーターをDHCPサーバーとして使用することです。を使ってみましたが、dhcp-option
何の効果もありませんでした。また、VPSからLANにトラフィックをルーティングしないようです。つまり、ping 192.168.1.2
VPSではこれを行うことはできません(これが可能であることを望みました)。
また、VPS上で動作するVPNサーバーに内部で1台以上のPCを接続し、3台目のPCにもホームLANにアクセスさせることができますか?このように:
Some PC on the internet <---> VPS <---> VPN tunnel <---> Home LAN
答え1
サブネット間のルーティングを設定するには、そのサブネットをアドバタイズする必要があります。このオプションを試してくださいpush "route 192.168.1.0 255.255.255.0"
。特にOpenVPNのドキュメントを参照してください。https://community.openvpn.net/openvpn/wiki/BridgingAndRouting。
サイト間OpenVPNトンネル(=ルーティングを介したポイントツーポイント)のクライアントとサーバーのOpenVPNトンインターフェースは、宣言された正確なIPアドレスを使用します。
答え2
私は少し進歩しました。サーバーでこの構成を使用します。
server 10.8.0.0 255.255.255.0
verb 3
key /etc/openvpn/server/server.key
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/server.crt
dh /etc/openvpn/server/dh.pem
keepalive 10 120
persist-key
persist-tun
comp-lzo
route 192.168.1.0 255.255.255.0
push "route 192.168.1.0 255.255.255.0"
push "dhcp-option DNS 192.168.1.1"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 1.0.0.1"
push "redirect-gateway def1 bypass-dhcp"
user nobody
group nobody
proto udp
port 1194
dev tun1194
status openvpn-status.log
そして
client
nobind
dev tun
redirect-gateway def1 bypass-dhcp
remote 185.x.x.x 1194 udp
comp-lzo yes
redirect-gateway def1
#iroute 192.168.1.0 255.255.255.0
key /etc/openvpn/client.key
cert /etc/openvpn/client.crt
ca /etc/openvpn/ca.crt
クライアントでOpenVPN接続を確立したら、次のルーティングテーブルを取得します。
仕える人:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway.netcup. 0.0.0.0 UG 100 0 0 ens3
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun1194
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun1194
185.x.x.x 0.0.0.0 255.255.252.0 U 100 0 0 ens3
192.168.1.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun1194
顧客:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.0.5 128.0.0.0 UG 0 0 0 tun0
default gateway 0.0.0.0 UG 0 0 0 eth0
10.8.0.1 10.8.0.5 255.255.255.255 UGH 0 0 0 tun0
10.8.0.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
128.0.0.0 10.8.0.5 128.0.0.0 UG 0 0 0 tun0
link-local 0.0.0.0 255.255.0.0 U 1118 0 0 eth0
185.x.x.x gateway 255.255.255.255 UGH 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
しかし、まだping 192.168.1.1
サーバーではアクセスできません。もちろん、クライアントでIP転送を有効にしました。
sysctl -w net/ipv4/ip_forward=1
また、クライアントでiptablesを設定しようとしました。
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE