最近、ワークステーションがVPN接続を介して接続すると、そのSSHサーバーにリモートサイトから接続できないことがわかりました。 VPNクライアントがデフォルトゲートウェイをppp接続のピア(VPNサーバー)に変更しているため、これはルーティングの問題だと確信しています。
SSHサーバーとVPNクライアントの両方を満足させるソリューションはありますか?
VPNを使用する場合、通常、VPNネットワークがインターフェイス全体を引き継ぐため、インターネット全体ではなく、VPNネットワーク上のどこからでもルーティングできます。ほとんどの人は、vm(virtualboxなど)を実行し、その仮想マシンでvpnに接続して、実際のマシンのメイン接続を完全にホースでつながないようにすることで、この問題を解決します。
ネットワーク設定を冒険する前に、問題のsshサーバーがVPNインターフェースをリッスンしているかどうかを確認してください。たぶんそれはあなたのサーバー上の特定のインターフェースにバインドされています。
例netstat -a
出力:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:ssh *:* LISTEN
この例のsshサーバーは、すべてのインターフェース(*:ssh
のアスタリスクで示されます)をリッスンします。システムにホストアドレスがある場合、sshサーバーは特定のインターフェースにバインドされます。
必要に応じて、/etc/ssh/sshd_config
を編集し、ListenAddress 0.0.0.0
を設定してこれを調整します。
Sshdがすでに正しいインターフェースをリッスンしている場合は、ルーティングダンジョンに気軽に参加してください:-)
あなたはスプリットトンネリングについて話している。コマンドライン ROUTE.EXEツール に精通している場合は、VPNクライアントによって配置されたルートを調べて削除できる可能性があります。次に、1つを再度追加して、企業LANへのトラフィックだけがVPNゲートウェイを通過できるようにします。
具体的には、
route print
...ルーティングエントリのリストを取得します。出力が表示されない場合、VPNクライアントはデフォルト(0.0.0.0)のエントリを配置し、ゲートウェイはVPNピアゲートウェイであるように見えます。使用できます
route delete 10.*
...たとえば、10.x.x.xネットワークを指すすべてのエントリを削除する場合。
次に使用できます
route add 10.0.0.0 mask 255.0.0.0 10.0.99.99
...ここで、最初のアドレス(10.0.0.0 255.0.0.0)は企業ネットワークとマスクであり、2番目のアドレスはリモートゲートウェイです。
接続するたびにこれを実行する必要があるため、スクリプトを作成することをお勧めします。
注:別の方法として、スプリットトンネリングを使用するようにVPNを設定するように会社を説得することもできます。これに対する議論は、帯域幅の削減、および(IANAL)ネットワークを流れる非企業のWebトラフィックに対する責任の削減です。