Raspberry Piにインストールすると、pivpn
iptablesルールが作成されます。
pi@RPi64:~ $ sudo iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 10.122.242.0/24 anywhere /* wireguard-nat-rule */
私は次の規則を挿入することでこれを行うと思いますiptables-persistant
。
pi@RPi64:~ $ cat /etc/iptables/rules.v4
# Generated by iptables-save v1.8.7 on Fri Aug 12 08:07:21 2022
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.122.242.0/24 -o eth0 -m comment --comment wireguard-nat-rule -j MASQUERADE
COMMIT
# Completed on Fri Aug 12 08:07:21 2022
もちろん、これはサーバー側にあります。クライアントからこのサーバーに完全に接続するには、次のルールを挿入してクライアントに仮面舞踏会を追加する必要があります。
pi@schwarz:~ $ sudo iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- anywhere anywhere
私はこうする:
pi@schwarz:~ $ sudo cat /etc/wireguard/schwarz.conf
[Interface]
PrivateKey =
Address = 10.122.242.4/24
PostUp = iptables -t nat -A POSTROUTING -o schwarz -j MASQUERADE
PreDown = iptables -t nat -D POSTROUTING -o schwarz -j MASQUERADE
DNS = 9.9.9.9, 149.112.112.112
[Peer]
...
その後、両方のルータに静的ルートを追加して、そのLAN上の他のクライアントからWireguardサーバーまたはクライアントに適切なLANにトラフィックをルーティングしました。
これにより、両方のLAN上のすべてのクライアントが両方のLAN上のすべてのデバイスに完全に接続できます。
このアプローチの問題は、クライアントが元のLANで元のIPを失うのではなく、WireguardクライアントのIP(+ポート)を使用して別のネットワークに表示されることです。これはもちろん、NATing(masquerading)によるものです。
これにより、すべてがうまく機能します。
1 つのサービスは除外されます。 Logitechmediaserver。サーバーは同じIPを持つため、リモートLAN上のすべてのクライアントを処理することはできません。より具体的には、問題はLogitechクライアント(ラジオ)の一部にすぎません。クライアントはサーバーに正しく接続されますが、サーバーの応答は表示されません。他のクライアント(Boom)は正常に接続されます。彼らは異なるプロトコルを使用します。
pivpn
IPがなぜまだなりすましているのか疑問に思います。 LANからクライアント/サーバーへ、そのクライアント/サーバーから生成されたトンネルへの固定パスを持つだけでは十分ではありませんか?
なぜ変装するのですか? Wireguardサーバーがインターネット上のISPルーターとしても機能している場合、これは行われますか?ここではそうではありません。ルーターは常に別のシステムにあります。
簡単に言えば、削除が一般的に可能かどうか疑問に思いますpivpn
。また、誰かが自分の設定で何が間違っているかを指摘することもできます。
ベストアンサー1
マスカレードは、第1のネットワークが第2のネットワークに応答を再ルーティングするように設定されていない第2のネットワークから1つのネットワークにアクセスするためにしばしば使用される。ゲートウェイから最初のネットワークにパケットを偽装し(ゲートウェイのアドレスを使用するようにパケットの送信元アドレスを再構築する)、ネットワーク内の他のホストがゲートウェイに応答するように(これにより元の送信元に再変換された応答パケットの宛先が変更される) )アドレス)。
2つのLANを接続し、各LANが独自のWireGuardゲートウェイ(従来のサイト間WireGuard構成)を介して別のLANにルーティングするように設定されている場合、マスカレーディングは必要ありません。
インターネットに接続されたLAN(またはWireGuardネットワーク)がある場合(例:パスインターネットはだけでなくトンネルを通過するインターネット)。
サイト間接続の場合、各LANのLANルーターがWireGuardゲートウェイでもある場合、通常は偽装は使用されません。通常、各LANルーターにWireGuardインターフェイスを設定し、AllowedIPs
他のLANへのルーティング(および適切な設定)を提供するだけです。あるサイトから別のサイトへの適切なアクセスを許可するために、ルーターにファイアウォールルールを追加します。
あなたの場合、各サイトにLANルーターとは異なるゲートウェイ(Pi)があるように聞こえます。 1)各LANルーター(またはそれを実行する個々のデバイスに異なるサイトへのパスを追加すると、マスカレーディングの必要性を排除することができます。他のサイトにアクセスする必要があります)、2)別のサイトのLANネットワークをAllowedIPs
WireGuardゲートウェイの設定に追加します。
すでにこれを行っているようですが、具体的な例を挙げると、10.100.100.0/24と10.200.200.0/24という2つのLANを接続し、LAN 1のWireGuardゲートウェイはLAN 2の10.100.100.123です。 WireGuardゲートウェイが10.200.200.234の場合は、次のようにLAN 1のLANルーター(または個々のデバイス)にルートを追加します(ルーターまたはデバイスの適切なLAN接続インターフェース(eth1など)を使用)。
10.200.200.0/24 via 10.100.100.123 dev eth1
LAN 2のLANルーター(または個々のデバイス)への対応するルートは次のとおりです。
10.100.100.0/24 via 10.200.200.234 dev eth1
LAN 1のWireGuard設定では、AllowedIPs
他のサイトの設定に他のサイトのネットワークを含めることができます。
[Interface]
Address = 10.122.242.1/24
...
[Peer]
AllowedIPs = 10.122.242.2, 10.200.200.0/24
...
AllowedIPs
これにより、LAN 2のWireGuard設定では、LAN 1の設定にLAN 1のネットワークを含めることができます。
[Interface]
Address = 10.122.242.2/24
...
[Peer]
AllowedIPs = 10.122.242.1, 10.100.100.0/24
...
この設定を完了すると、WireGuardゲートウェイから偽装ルールを安全に削除し、NATなしであるサイトから別のサイトにトラフィックをルーティングできます。
ただし、まだWireGuardゲートウェイの1つをインターネットゲートウェイとして使用したい場合は、最もルールを維持できますが、たとえばLAN 2用のWireGuardゲートウェイから、ゲートウェイ自体のLANに向かうパケットに対しては例外を作成できます。表示:
iptables -t nat -A POSTROUTING ! -d 10.200.200.0/24 -o eth0 -J MASQUERADE
DNS
公開したWireGuard設定に関するマイナーな質問:サイト間設定にこの設定を含めたくない場合があります。通常、DNS
エンドポイントのWireGuardインターフェイスが動作中または停止中に他のDNSリゾルバが使用されるように、ポイントとサイト間の設定の「支店」側の設定のみを使用します。