
私はGoogle CloudプラットフォームにDebianマシンをインストールしました。これでDebianサーバーとWindowsクライアントができました。 「一般的な」方法で、クライアントからサーバーにSSHを介して接続できます。その後、DebianにOpenVPNサーバーをインストールしました。これで、OpenVPNを介して2台のコンピュータを接続できます。
しかし、今私のすべての質問が始まります。 VPNを設定すると、2つのデバイス間で通信できますが、他のデバイスとは通信できません。
VPN に接続すると、クライアントは残りのネットワークとの通信を停止します。
VPNでは、次のアドレスが必要です。 172.16.0.1 サーバー 172.16.0.2 クライアント
サーバー側から
# netstat -nr -f inet
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.138.0.1 0.0.0.0 UG 0 0 0 ens4
10.138.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 ens4
172.16.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
# cat /proc/sys/net/ipv4/ip_forward
1
# iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -p udp -m udp --dport 1194 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 10.8.0.0/24 -j ACCEPT
私は何を見逃していますか?追加情報が必要な場合はお知らせください。ありがとう
私のクライアントOpenVPN設定ファイルは次のとおりです。
client
dev tun
proto udp
remote xxx.hopto.org 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
auth SHA512
cipher AES-256-CBC
ignore-unknown-option block-outside-dns
block-outside-dns
verb 3
<ca>
-----BEGIN CERTIFICATE-----
xxx
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
xxx
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
xxx
-----END PRIVATE KEY-----
</key>
<tls-crypt>
-----BEGIN OpenVPN Static key V1-----
xxx
-----END OpenVPN Static key V1-----
</tls-crypt>
これはサーバー側です。
$ cat /etc/openvpn/server/server.conf
local 10.138.0.2
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 172.16.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
verb 3
crl-verify crl.pem
explicit-exit-notify
接続時にクライアントからの追加情報:
>ping 1.1.1.1
Esecuzione di Ping 1.1.1.1 con 32 byte di dati:
Richiesta scaduta.
Richiesta scaduta.
Richiesta scaduta.
Richiesta scaduta.
Statistiche Ping per 1.1.1.1:
Pacchetti: Trasmessi = 4, Ricevuti = 0,
Persi = 4 (100% persi),
>tracert 1.1.1.1
Traccia instradamento verso 1.1.1.1 su un massimo di 30 punti di passaggio
1 150 ms 149 ms 150 ms 172.16.0.1
2 * * * Richiesta scaduta.
3 * * * Richiesta scaduta.
4 * * * Richiesta scaduta.
5 * * * Richiesta scaduta.
>nslookup unix.stackexchange.com 1.1.1.1
DNS request timed out.
timeout was 2 seconds.
Server: UnKnown
Address: 1.1.1.1
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
2022年3月10日に更新
これはVPNなしのトラッカーログです。
>tracert 1.1.1.1
Traccia instradamento verso one.one.one.one [1.1.1.1]
su un massimo di 30 punti di passaggio:
1 1 ms 2 ms 2 ms 192.168.1.1
2 3 ms 1 ms 3 ms 2.112.209.88.static.monaco.mc [88.209.112.2]
3 3 ms 2 ms 2 ms l5.pe01ftv.monaco-telecom.net [195.78.0.66]
4 * 3 ms 3 ms l1.pe01cst.monaco-telecom.net [195.78.0.65]
5 6 ms 6 ms 8 ms l500.pe01mrs.monaco-telecom.net [195.78.0.89]
6 * * * Richiesta scaduta.
7 8 ms 7 ms 6 ms be2065.ccr31.mrs02.atlas.cogentco.com [154.54.37.245]
8 13 ms * * 149.6.154.130
9 12 ms 12 ms 11 ms one.one.one.one [1.1.1.1]
Traccia completata.
2022年3月18日に更新
解決策を見つけるためにオンラインで検索しました。
私はウェブサイトにあり、私の構成とそのウェブサイトの構成の間に違いがあることがわかりました。
次のコマンドを実行します。
$ sudo systemctl cat openvpn-iptables.service
私は次のような結果が得られたことがわかりました。
ExecStart=/usr/sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 ! -d 10.8.0.0/24 -j SNAT --to 10.138.0.2
ウェブサイトからネットワークアドレス変換一部はパブリックアドレスとして指定されます。これが問題になる可能性がありますか?
答え1
問題はこれである:
push "redirect-gateway def1 bypass-dhcp"
man openvpn
OpenVPNのドキュメント(始めるのに最適な場所)を読むと、次のオプションの機能を理解できます。
--redirect-gateway flags…
VPN を通過するすべての IP トラフィックをリダイレクトするルーティング コマンドを自動的に実行します。これはクライアントオプションです。
次に、2つのオプションフラグについて説明する。
def1
0.0.0.0/1
128.0.0.0/1
- 代わりにおよびを使用してデフォルトゲートウェイをオーバーライドするには、このフラグを使用します0.0.0.0/0
。これは元のデフォルトゲートウェイを上書きしますが消去しないという利点があります。
bypass-dhcp
- ローカルでない場合、トンネルをバイパスするDHCPサーバーへの直接パスを追加します[...]。
このredirect-gateway
オプションは、接続時にサーバーからクライアントに送信されます。クライアントに送信するように指示します。すべてのトラフィックVPN経由。ターゲットネットワークのデータだけでなく、すべて。
このオプションは望ましくないようですが、宛先ネットワークからのトラフィックのみをVPN経由でルーティングする必要があります。