MASQUERADINGなしでWireguardでPIVPNを実行できますか?

MASQUERADINGなしでWireguardでPIVPNを実行できますか?

Raspberry Piにインストールすると、pivpniptablesルールが作成されます。

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)は正常に接続されます。彼らは異なるプロトコルを使用します。

pivpnIPがなぜまだなりすましているのか疑問に思います。 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ネットワークをAllowedIPsWireGuardゲートウェイの設定に追加します。

すでにこれを行っているようですが、具体的な例を挙げると、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リゾルバが使用されるように、ポイントとサイト間の設定の「支店」側の設定のみを使用します。

おすすめ記事