VPN接続が可能な別のラップトップを介して家庭用コンピュータからVPNサーバーにアクセスする方法

VPN接続が可能な別のラップトップを介して家庭用コンピュータからVPNサーバーにアクセスする方法

私のローカル作業環境では、他の場所にあるワークステーションから会社のすべてのサーバーに直接アクセスしたいと思います。これを本当に興味深くするために、可能な唯一のアクセスは会社管理ノートブックのVPNを介してのみ可能であり、ラップトップはローカルネットワークに接続できません。

明らかに、どのIT部門もこれらの問題を解決するのに役立ちません。

答え1

自宅のコンピュータからワークラップトップにSSH経由で接続できる場合は、次のものを使用できます。SSHトンネルまたはSSHジャンプホスト

答え2

SSHトンネリング文書はたくさんありますが、この特定のシナリオには対応していません。

したがって、ワークステーション<->ノートブック<->会社ネットワークから出るには、Nに別のネットワークに接続するためのルーターとして機能するシステムを追加でインストールする必要があります。

ノートブックに2つのネットワークポートを持つ仮想マシンを追加する必要があります。 1 つは NAT を介してホスト ネットワークに接続され、もう 1 つはブリッジングを介して LAN に接続されます。

したがって、W<->VM1<->VM2<->N1<->N2<->CN接続を得ることができる。

SSH構成で構成できます。偽のIPのいくつかの例。

W =   192.0.0.3   <LAN>      VM1 = 192.0.0.2
VM1 = 192.0.0.2   <route>    VM2 = 10.0.0.3
VM2 = 10.0.0.3    <NAT>      NATRouter = 10.0.0.1
NR =  10.0.0.1    <nat2host> N1 = 20.0.0.4
N2 = 20.0.0.4     <vpnroute> CN 0.0.0.0/0

これはシステム間のネットワークホップの説明です。
したがって、CNのサーバーに接続するには、2つの別々の手順を解決する必要があります。中間ホップのSSH構成を設定する必要があります。 .ssh/config エントリ:

# reaching the VM
Host VM
    User            vmuser
    IdentityFile    ~/.ssh/vm_id_rsa
    ForwardX11      yes

# reaching a host inside the CN
Host CNhost
    User            companyuser
    IdentityFile    ~/.ssh/cnhost_id_rsa
    ForwardX11      yes
    ProxyCommand    ssh -A vm nc %h %p 2>  /dev/null    

もう一つの重要な問題は、仮想マシン内の正しいルーティングです。ブリッジされたLAN 192.0.0.0/24へのルートは、NAT 10.0.0.1へのデフォルトルートよりも低いメトリックを持つ必要があります。

vm$ ip route
default via 10.0.0.1 metric 100
10.0.0.0/24 dev nat1 metric 100
192.0.0.0/24 dev bridge1 metric 99

興味深い状況は、企業ネットワーク内のサーバーからのみアクセスできる内部ネットワーク上のサーバーにもアクセスしたい場合です。クラシックジャンプホストの設定。これには別の .ssh/config エントリが必要です。

# reaching a host on a CN internal network
Host CNInternalhost
    User            cnInternalUser
    IdentityFile    ~/.ssh/cninternalhost_id_rsa
    ForwardX11      yes
    ProxyCommand    ssh -A CNhost nc %h %p 2>  /dev/null

これでCNInternalhostにSSH経由で簡単にアクセスできます。
そうでない場合は、ルーティングテーブルを確認する必要があります。 (例:パスが見つからないか間違っていることを示す)


しかし、私たちはまた、ローカルワークステーションから直接この内部ホストのサービスにアクセスしたいと思います!

これを行うには、.ssh / configで事前設定されたホップを使用してトンネルを作成します。

ssh -L <portOnLocalhost>:CNInternalhost:<portOnCNInternalHost> CNhost

これで、localhost:< portOnLocalhost>からCNInternalhost:< portOnCNInternalHost>にアクセスできるようになりました。

ローカル設定で追加のネットワーク名(ServerX)を再利用するには、ローカルホストにLAN IPのホストエイリアスを追加し、それに追加のトンネルを作成できます。

echo 192.0.0.3 ServerX >> /etc/hosts

これには追加の.ssh / configエントリも必要です。

# configuring another host on the CN internal network
Host serverX
    User            cnInternalUser
    IdentityFile    ~/.ssh/serverX_id_rsa
    ForwardX11      yes
    ProxyCommand    ssh -A CNhost nc %h %p 2>  /dev/null

この SSH 構成では、次のトンネルを作成できるようになりました。

ssh -L serverX:<portOnLocalhost>:serverX:<portOnLocalhost> CNhost

CNhostからserverXにアクセスできる限り。
私たちはできる:

$ wget serverX:<portOnLocalhost>

関連情報