web-dev-qa-db-ja.com

中間サーバーを介したリモートデスクトップ用のSSHトンネルパートII

I 以前に質問 仲介サーバーを使用して2つのSSHトンネルを構成し、それらを介してリモートデスクトップを実行する方法。今、私は同じことを、同じマシンを使用して、逆の順序で実行しようとしています。ここに設定があります:

  1. ファイアウォールの背後にあるプライベートネットワーク内のWindows 7 PC。
  2. PCにアクセスできるパブリックアクセスLinuxサーバー。
  3. PCからリモートデスクトップを実行したい自宅のWindows 7ラップトップ。

ラップトップでPuTTYを使用して、それからLinuxサーバーへのリバーストンネルを作成します:R60666 localhost:3389

PCでPuTTYを使用して、PCからLinuxサーバーへの通常のトンネルを作成します:L60666 localhost:60666

LinuxサーバーにSSHで接続し、telnet localhost 60666を実行すると、受け取ったデバッグのヒント here で説明されているように、予期した出力が生成されるようです。

PCからラップトップにリモートデスクトップを接続しようとしました:localhost:60666。ユーザー名とパスワードの入力を求められ、[OK]をクリックすると、ラップトップの現在のセッションがロックされ(デスクトップではなくラップトップのウェルカム画面が表示されます)、リモートデスクトップ画面に「ようこそ」というメッセージが表示されます。真っ黒になるだけです。切断されず、エラーも発生せず、リモートデスクトップ画面でアクションを実行できません。 Windows XPラップトップで同じセットアップを試しましたが、同じ症状が発生しています。また、60666とは異なるポートを使用しようとしましたが、何も変更されませんでした。 m間違っている?


更新:@jwindersで指摘されているように、Linuxサーバーからtelnet PC 3389を直接実行することはできません。 Windowsファイアウォールにはポート3389でのすべての接続を許可するルールがあるため、何がそれをブロックしているのかわかりません。幸い、LinuxマシンからPCへのSSHトンネルを作成できましたssh 3389:localhost:3389 'domain\user'@PC

10
Mihai Todor

私は今日、同じ黒い画面に遭遇し、クライアントとしてPuTTYを使用して、切断の問題を自分で解決しました。私は最終的にソリューションを見つけました。

PuTTYから bitvise tunnelier に切り替え、S2C次の設定での接続:

listen if:0.0.0.0
listen port:13389
destination Host:localhost
dest port:3389

偶然かもしれませんが、私は自分のサーバーでbitvise sshサーバーを使用しているので、これは同じベンダーが製造した2つの製品の組み合わせとしてはちょうど良いかもしれません。これが他の人の問題を解決できたら素晴らしいです。

記録のために、私はこれらの連中とは何の関係もありません。

3
jasper

SSHトンネルに問題はありません。 PCのlocalhost:60666に接続すると、ラップトップのlocalhost:3389に到達するはずです。また、ログイン画面が表示されるという事実は、この評価を裏付けるものです。

空白の画面で少しグーグルすると、このマイクロソフトナレッジベースの記事 http://support.Microsoft.com/kb/55584 が表示されます。可能性のあるMTUサイズの不一致が原因で、空白の画面が表示される可能性があります。

サーバー、クライアント、およびネットワーク機器が「MTU」サイズを使用していることを確認します。

ほとんどのWindowsマシンはデフォルトで1300のMTUを使用しますが、ほとんどのLinuxボックスは1500(ジャンボフレームを考慮せず、LANの最大許容値)を使用します)。これらを低くして断片化を減らすことができます。

以下も参照してください。

2
basvdlei

VPNの方が適切ではないでしょうか? OpenVPNは設定が非常に簡単です。証明書の作成プロセスをガイドするサンプル設定といくつかのリンクを次に示します。

仲介者をホストとして構成するだけで、ゲストはダイヤルインして相互に通信できます。

apt-get install openvpn
mkdir /etc/openvpn/easy-rsa
mkdir -p /etc/openvpn/ccd/client_server
touch /etc/openvpn/ipp.txt
cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
source ./vars
./clean-all
./build-ca 
./build-key-server server
./build-dh
cd /etc/openvpn/easy-rsa/keys
openssl pkcs12 -export -out server.p12 -inkey server.key -in server.crt -certfile ca.crt

次に、新しいファイルを作成します/etc/openvpn/client_server.confと以下を入れて、SERVER_IP_ADDRESS 適切に

local SERVER_IP_ADDRESS
port 8443
proto udp
dev tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
pkcs12 /etc/openvpn/easy-rsa/keys/server.p12
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
ifconfig-pool-persist /etc/openvpn/ipp.txt
server 192.168.100.0 255.255.255.0
client-config-dir /etc/openvpn/ccd/client_server
ccd-exclusive
keepalive 10 120
comp-lzo
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
reneg-sec 0
client-to-client

次に、接続するユーザーごとにキーを作成し、ccdディレクトリに構成ファイルを作成します

./build-key-pkcs12 [email protected]
echo "ifconfig-Push 192.168.100.2 255.255.255.0" > /etc/openvpn/ccd/client_server/[email protected]

IPアドレスは/ 30サブネットに適したものである必要があります( http://www.subnet-calculator.com/cidr.php を参照)。接続。したがって、次に利用可能なクライアントIPは192.168.100.6となります。

次に、接続しているユーザーごとに静的IPがあります。

次に、the [email protected]ファイルをエンドユーザーに送信し、次の構成ファイルを使用します

client
dev tun
proto udp
remote SERVER_IP_ADDRESS 8443
pkcs12 [email protected]
resolv-retry infinite
nobind
ns-cert-type server
comp-lzo
verb 3
reneg-sec 0

ユーザーアカウント内で(PuTTY.exeなどのプログラムを使用して)sshセッションを実行している場合、rdp経由でログインしようとすると、その接続が中断され、rdpセッションが切断されます。あなたがする必要があるのは、中断されないサービスとしてsshトンネルを実行することです。

1
Mark

あなたはあなたのラップトップからすべての設定を行うことができると思います

ラップトップのLinuxボックスへのPuTTY接続をセットアップします。次に、「接続」>「SSH」>「トンネル」で、「ソースポート」フィールドに60666を入力し、「ローカル」ラジオボタンが選択されていることを確認します。 「宛先」には、win7-box-name-or-ip:3389と入力します。

それをすべて保存すれば、PuTTYセッションをlinux-boxで開くことができ、localhost(ラップトップ):60666からwin7:3389へのトラフィックを転送するトンネルが自動的に作成されます。

コマンドラインでこれを行っている場合は、次のようになります

ssh -L60666:win7:3389 linux-box
0
jwinders

すべてのユーザーがマシンから完全にログアウトされない限り、資格情報を入力すると空白の画面が表示されることがわかりました。したがって、必ずログオフしてください。

0
Jonathan Lloyd