WiFi経由でVPN接続を共有する

WiFi経由でVPN接続を共有する

同じルーターに2台のコンピューターが接続されています10.9.8.1

  • コンピュータAは10.9.8.2Windows 10 Insider Previewを実行します。 Insider PreviewのVPNが破損してロールバックできません。 :(
  • コンピュータBは10.9.8.3Linux Mintを実行し、VPNを介して接続されますopenconnect

以下はipconfigB(フラグメント)のレポートです。

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.23.8.183  P-t-P:10.23.8.183  Mask:255.255.255.255
          inet6 addr: fe80::7fb2:5598:b02e:e541/64 Scope:Link
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1410  Metric:1
          RX packets:24 errors:0 dropped:0 overruns:0 frame:0
          TX packets:42 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:7005 (7.0 KB)  TX bytes:3243 (3.2 KB)

wlp3s0    Link encap:Ethernet  HWaddr 60:67:20:36:6f:a4  
          inet addr:10.9.8.3  Bcast:10.9.8.255  Mask:255.255.255.0
          inet6 addr: fe80::8e96:7526:ff54:d1be/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:22511502 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16052631 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:24451442281 (24.4 GB)  TX bytes:6038264731 (6.0 GB)

コンピュータAでVPNの背後にあるリソースにアクセスする必要があります。

他のタスクでは、ルータを直接使用しながらB経由でVPNリソースにアクセスできるようにAでルーティングを設定することを検討しています。

最悪の場合は、2台のコンピュータを直接接続することもできますが、可能であればそうしないことをお勧めします。

Windowsでは、すべてのアダプタを共有としてマークできます。ただし、Linuxで同じことを行うと、アダプターの接続が失われます。これを正しく行う方法がわかりません。

ベストアンサー1

ルーティング

ホストでは、Aターゲットネットワーク上のすべてのトラフィックをホストにルーティングする必要がありますB。私はそれが次のようになると仮定します。192.168.0.0/24

Linuxの場合(ホストシステムでA):

ip r a 192.168.0.0/24 via 10.9.8.3 dev eth0

Windowsの場合(ホストシステムでA):

route ADD 192.168.0.0 MASK 255.255.255.0 10.9.8.3

今後

ルーティングが完了すると、ネットワーク上のすべてのパケットがホストに192.168.0.0/24送信されますB

パケットがホストからホストwlp3s0に転送されるようにするには、IP転送を有効にする必要があります。tun0B

すべてのインターフェイスで一時的にIP転送を有効にするには:

sysctl net.ipv4.conf.all.forwarding=1

この変更を永久に有効にするには、新しい行を追加します/etc/sysctl.conf

net.ipv4.conf.all.forwarding = 1

インターフェイス設定に加えてiptables有効にすることができ、パケット転送を許可する必要があります。

アクティブであることを確認しますiptables(少なくともFORWARDチェーンの場合)。

iptables -L FORWARD -nv

チェーンにルールがなく、ポリシーに明記されている場合は、ACCEPTそのまま進めばよい。そうでない場合は、転送を許可するために関連ルールを追加する必要があります192.168.0.0/24

192.168.0.0/24すべてのパケットが次に転送されることを許可するwlp3s0

iptables -I FORWARD -i wlp3s0 -d 192.168.0.0/24 -j ACCEPT
iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

RELATED,ESTABLISHEDパッケージの返品を自動的に許可します。


ネットワークアドレス変換

これで転送設定が完了すると、パケットがトンネルに送信されます。ただし、VPNの背後にあるリモートネットワークがローカルネットワークを認識しない限り(通常の場合)、ローカルNATネットワークからのすべてのパケットをVPNから取得したアドレスとしてVPNとして入力する必要があります。サーバーのIP(例tun0:)

これを行うには、MASQUERADEテーブルにルールを作成する必要がありますPOSTROUTING

iptables -t nat -I POSTROUTING -o tun0 -j MASQUERADE

tun0これにより、発信されたすべてのパケットがインターフェイスのIPにバインドされます。

おすすめ記事