web-dev-qa-db-ja.com

Linuxサーバーを使用してLANとVPNインターフェース間でRDP接続を転送する

更新:この問題の解決策ができるだけ早く必要です。おそらくiptablesにNATとポート転送用に何かを設定できることは理解していますが、ツールやその構文については十分に理解していません。私自身のルール。

  • ローカルネットワークに静的IPを持つマシンがあります:192.168.1.166。 (Hyper-V VM Debian 10を実行中)
  • マシンはCiscoAnyConnectを実行して、仕事用VPNに接続します。
    このVPNクライアントは2番目のネットワークインターフェイスを設定しているので、次の2つがあります。
    eth0(私のLAN)、およびcscotun0
  • 192.168.1.166を個人のデスクトップのRDPクライアントに入れて、VMを介して職場のリモートデスクトップに接続できるようにしたい。

本当にが答える必要がある唯一の質問:

TCP&UDP接続をポート3389で、VMを介して個人のデスクトップから職場のリモートシステムにルーティングするにはどうすればよいですか?

VMは、仕事用ネットワークで動的IPを取得するVPNクライアントから来ているかのように、RDP接続を「マスカレード」する必要があると推測しているので、NATが必要であることがわかります。そのためにmasqueradeツールも必要ですか?


元の質問:

在宅勤務には、CiscoAnyConnectフルトンネルVPNを介してRDPを使用する必要があります。

私の職場のIT部門は、RDPのみの分割トンネルをサポートするようにVPNサーバーを構成していません。とにかく、他のネットワークサービスが必要になる可能性があるため、フルトンネル接続を使用して回避したいと思います。ただし、インターネットトラフィックのすべてをルーティングするという印象を受けているため、パーソナルコンピュータでAnyConnectVPNクライアントを使用したくありません。 VPNも同様です。

VPNクライアントを実行しているDebian10仮想マシンをセットアップしました。これをVM LAN上のリモートRDPサーバーに見せかけたい。そうすれば、パーソナルコンピューターでVPNクライアントを実行することを避け、RDPクライアントをVMに接続するだけで済みます。次に、VPNを介してRDP接続を実際のRDPサーバーに転送します。

では、どうすればこれを達成できますか?

私は以下への管理アクセスしか持っていません:

  • 自宅のWindows10デスクトップ。
  • 私の「プロキシ」VM
  • 私のホームルーター
  • 仕事中の私のWindows10デスクトップ。 (ITは、セキュリティリスクがある場合、私が行った変更をブロック/元に戻すことができますが)

現在、VNCとRDPの組み合わせを使用して、リモートデスクトップのVMをホップしていますが、VMハイパーバイザーと組み合わせることにより、解像度が制限されています。両方のプロトコルの欠点。

2
Romen

VM 192.168.1.166が両方のネットワーク(ローカルネットワークとVPN経由の企業ネットワーク)にアクセスできる場合は、 socat を使用してVMと企業のRDPサーバーの間に双方向の「トンネル」を確立します。

socat tcp4-listen:3389,reuseaddr tcp:remote-addr:3389

これにより、VMのポート3389が開き、そこに到着するトラフィックはすべてremote-addr:3389にトンネリングされます。

SocatはUDPもサポートしています。

Socatは接続が終了すると終了するため、接続が常に存在することを確認するには、このコマンドを無限ループで実行するスクリプトを作成します。

#!/bin/bash

while true
do
    socat tcp4-listen:3389,reuseaddr tcp:remote-addr:3389
done

このようにして、192.168.1.166を個人用デスクトップのRDPサーバーとして指定すると、トラフィックは企業サーバーにトンネリングされます。

3
VL-80