web-dev-qa-db-ja.com

Ubuntu LinuxでVPNを介してすべてのトラフィックをルーティングする

何時間もトラブルシューティングを行った後、このサイトやその他の潜在的なソリューションを探し回っていましたが、私は辞任して、より良いアドバイスを求めました。私は大学でCisco VPNを介してUbuntuのインスタンス上のすべてのネットワークトラフィックをルーティングするように取り組んでいます。組み込みのネットワークマネージャーまたはvpncを使用して、VPNへの接続を正常に確立し、VPN経由で大学のIPにトラフィックを正常にルーティングできます。ただし、これらの特定のIP範囲を除いて、VPNを介してすべてのネットワークトラフィックを正常にマップするルートを思い付くようには思えません。

これまでのところ、私は試みました:

 route add -net 0.0.0.0 gw homeportal dev tun0 
 route add -net 0.0.0.0 tun0 
 route add -net 0.0.0.0 gw 1​​28.122.252.77 dev tun0 
 route add -net 0.0.0.0 gw 1​​28.122.252.77 dev eth0 
 iptables -A FORWARD -o tun0 -j ACCEPT 
 iptables -A FORWARD -i tun0 -j ACCEPT 
 iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE 

そして、他の多くの愚かな、効果のない、私が正確に転記するのに十分に思い出せないもの。

さらに、小さいIP範囲と特定のIPをルーティングしてみましたが、どれも役に立ちませんでした。私が観察できた影響の範囲は名前解決の失敗とVPN経由のトラフィックのルーティングの失敗であるため、何が問題なのか本当にわかりません。ここで何が悪いのですか?

編集-

VPNCでVPN接続を開始した後のip route showの出力は次のとおりです。

デフォルトは192.168.1.254 dev eth0 proto static 
 10.0.0.0/8 dev tun0 scope link 
 91.230.41.0/24 dev tun0 scope link 
 128.122.0.0/16 dev tun0 scope link 
 128.122.252.68 via 192.168.1.254 dev eth0 src 192.168.1.32 
 128.122.253.46 dev tun0 scope link 
 128.122.253.79 dev tun0 scope link 
 ____。] 172.16.0.0/12 dev tun0スコープリンク
 192.168.0.0/16 dev tun0スコープリンク
 192.168.1.0/24 dev eth0プロトカーネルスコープリンクsrc 192.168.1.32メトリック1 
 193.175.54.0/24 dev tun0スコープリンク
 193.205.158.0/25 dev tun0スコープリンク
 193.206.104.0/24 dev tun0スコープリンク
 195.113.94.0/24 dev tun0スコープリンク
 203.126.200.0/24 dev tun0スコープリンク
 203.174.165.128/25 dev tun0スコープリンク
 212.219.93.0/24 dev tun0スコープリンク
 216.165.0.0/17 dev tun0スコープリンク

詳しくは-

デフォルトの設定でCisco AnyConnectクライアントを介して、MS WindowsのこのVPNを介して任意のトラフィックを正常にルーティングしました。 AnyConnectクライアントが動作しているときのルーティングテーブルは次のようになります(これは、192.168.1.254にある同じルーターの背後にある別のコンピュータです)。

 IPv4ルートテーブル
 ===================================== ====================================== 
アクティブルート:
 Network Destination Netmask Gateway Interface Metric 
 0.0.0.0 0.0.0.0 192.168.1.254 192.168.1.13 30 
 10.0.0.0 255.0.0.0 192.168.128.1 192.168.128.197 2 
 91.230。 41.0 255.255.255.0 192.168.128.1 192.168.128.197 2 
 127.0.0.0 255.0.0.0オンリンク127.0.0.1 306 
 127.0.0.1 255.255.255.255オンリンク127.0.0.1 306 
 127.255.255.255 255.255.255.255オンリンク127.0.0.1 306 
 128.122.0.0 255.255.0.0 192.168.128.1 192.168.128.197 2 
 128.122.252.68 255.255.255.255 192.168.1.254 192.168.1.13 31 
 172.16.0.0 255.240.0.0 192.168.128.1 192.168.128.197 2 
 192.168.0.0 255.255.0。 0 192.168.128.1 192.168.128.197 2 
 192.168.1.0 255.255.255.0オンリンク192.168.1.13 286 
 192.168.1.13 255.255.255.255オンリンク192.168.1.13 286 
 192.168 .1.254 255.255.255.255オンリンク192.168.1.13 31 
 192.168.1.255 255.255.255.255オンリンク192.168.1.13 286 
 192.168.31.0 255.255.255.0オンリンク192.168.31.1 276 
 192.168.31.1 255.255.255.255オンリンク192.168.31.1 276 
 192.168.31.255 255.255.255.255オンリンク192.168.31.1 276 
 192.168.128.0 255.255.255.0オンリンク192.168 128.197 257 
 192.168.128.197 255.255.255.255オンリンク192.168.128.197 257 
 192.168.128.255 255.255.255.255オンリンク192.168.128.197 257 
 192.168.203.0 255.255.255.0オン-link 192.168.203.1 276 
 192.168.203.1 255.255.255.255オンリンク192.168.203.1 276 
 192.168.203.255 255.255.255.255オンリンク192.168.203.1 276 
 193.175.54.0 255.255.255.0 192.168.128.1 192.168.128.197 2 
 193.205。 158.0 255.255.255.128 192.168.128.1 192.168.128.197 2 
 193.206.104.0 255.255.255.0 192.168.128.1 192.168.128.197 2 
 195.113.94.0 255.255.255.0 192.168.128.1 192.168.128.197 2 
 203.126.200.0 255.255.255.0 192.168.128.1 192.168.128.197 2 
 203.174.165.128 255.255.255.128 192.168.128.1 192.168.128.197 2 
 212.219.93.0 255.255.255.0 192.168.128.1 192.168.128128 2 
 216.165.0.0 255.255.128.0 192.168.128.1 192.168.128.197 2 
 224.0.0.0 240.0.0.0 On-link 127.0.0.1 306 
 224.0.0.0 240.0.0.0 On-リンク192.168.1.13 286 
 224.0.0.0 240.0.0.0オンリンク192.168.203.1 276 
 224.0.0.0 240.0.0.0オンリンク192.168.31.1 276 
 224.0.0.0 240.0.0.0オンリンク192.168.128.197 10000 
 255.255。 255.255 255.255.255.255オンリンク127.0.0.1 306 
 255.255.255.255 255.255.255.255オンリンク192.168.1.13 286 
 255.255.255.255 255.255.255.255オンリンク192.168.203.1 276 
 255.255.255.255 255.255.255.255オンリンク192.168.31.1 276 
 255.255.255.255 255.255.255.255オンリンク192.168.128.197 10000 
 ============= ================================================== ============= 
13
deftfyodor

ルーティングテーブルの次の行に示すように、ローカルネットワークは192.168.1.0/24です。

 192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.32  metric 1

次の行に示すように、VPNネットワークは10.0.0.0/8です。

 10.0.0.0/8 dev tun0  scope link 

現在、デフォルトのルーターは次のとおりです。

 default via 192.168.1.254 dev eth0  proto static 

もちろん、これはあなたが行うことですnot必要です。ローカルLANに属しているため、VPNが存在しないかのように、すべてのものがローカルゲートウェイを介してルーティングされます。

 You do have however, the all-important statement

 128.122.252.68 via 192.168.1.254 dev eth0  src 192.168.1.32  

これはVPNプロバイダーへのルートです。

編集:

ルーティングテーブルが、ユーザーの介入なしに、VPNから取得されたものであることに気づかなかった。これは、サービスプロバイダーがインターフェイスtun0を介してテーブルで明示的に許可されたトラフィックのみを転送する意思があることを(間接的に)示している可能性があり、他のすべてのトラフィックをブロックするための追加の手順を実行している可能性があります。

ただし、プロバイダーがすべてのトラフィックを転送することをいとわない場合、次のことを行う必要があります。

まず、IPアドレスが必要なため、接続を受け入れる側にゲートウェイが存在するかどうかを確認する必要があります。これを行う4つの方法を紹介します。

1)PCがVPNに接続されている状態で、次のコマンドを試してください。

   Sudo dhclient -v tun0

すべてがうまくいくと、次の行を含む応答が表示されます。

 DHCPOFFER of a.b.c.d from x.y.w.z

x.y.w.zは、ローカルゲートウェイのIPアドレスです。このテストの後でVPNをシャットダウンする必要があるかもしれませんし、PCを再起動する必要があるかもしれません。これは、ルーティングテーブルをかなり混乱させているためです。

2)別の方法として、許可されたサイト(ルーティングテーブルにtun0インターフェイスを経由するように表示されるサイト)に移動してから、コマンド:

  ip neigh show

MACとIPアドレスを使用して、ARPプロトコル経由で接続されたPCのリストを取得する必要があります。ほとんどの場合、応答は0または1になります。単一の応答を受け取った場合は、それがルーターです。

3)そのような返信が得られない場合は、

  Sudo nmap -sn 10.0.0.0/8

(これは非常に遅くなります)。あなたのゲートウェイは、リストされているPCのoneであり、アドレスが.1または.254で終了している可能性があります(存在する場合)。

4)tcpdumpコマンドを使用します。

  Sudo tcpdump -n -i tun0

そして、コマンドによって吐き出されたIPアドレスを確認します。

このテストにも適切な回答が得られない場合は、誰かがネットワークのネジを本当に締めていることを意味します。

しかし、楽観的に考えてみましょう。今、リモートルーターの候補IPアドレスx.w.y.zがあるとします。 (Sudoとして)デフォルトゲートウェイを削除する必要があります。

  ip route del default via 192.168.1.254

新しいものを追加します:

  ip route add default via x.w.y.z 

ナビゲートしてみてください。

繰り返しますが、プロバイダーはVPN経由で選択されたいくつかのIPアドレスへのトラフィックのみを許可しているため、スマートユーザーがVPN経由で一般的なトラフィックを強制するのを防ぐために追加の対策(=ファイアウォール)を講じている可能性があります。この場合、あなたにできることは何もありません。しかし、彼がそうしなかった場合、上記の手順は解決策を見つけるのに役立ちます。

3
MariusMatutiae

すべてのrouteコマンドにネットマスクがないため、インターネット全体ではなく、特定の0.0.0.0アドレスにのみ一致します。したがって、最初に試したコマンドで0.0.0.00.0.0.0/0に置き換えます。

ip route add -net 0.0.0.0/0 gw homeportal dev tun0

VPNクライアントがそれ自体で解決するかどうかはわかりませんが、1つの注意点があります。トンネルエンドポイントは、VPN経由のルーティングから除外する必要があり、eth0インターフェース経由でルーティングする必要があります。したがって、このデフォルトルートを追加するとVPNが壊れる場合は、VPNエンドポイント用の特定のルートを追加します。

ip route add <ENDPOINT>/32 dev eth0

3
Teun Vink