Terowongan SSH untuk Remote Desktop melalui Server Perantara Bagian II

10

Saya bertanya sebelumnya bagaimana mengkonfigurasi 2 terowongan SSH menggunakan server perantara untuk menjalankan Remote Desktop melalui mereka dan saya berhasil membuatnya bekerja. Sekarang, saya mencoba melakukan hal yang sama, menggunakan mesin yang sama, tetapi dalam urutan terbalik. Ini pengaturannya:

  1. PC Windows 7 di jaringan pribadi, duduk di belakang firewall.
  2. Akses publik server Linux, yang memiliki akses ke PC.
  3. Laptop Windows 7, di rumah, di mana saya ingin melakukan Remote Desktop dari PC.

Saya menggunakan Putty pada laptop untuk membuat terowongan terbalik dari itu ke server Linux: R60666 localhost:3389.

Saya menggunakan Putty pada PC untuk membuat terowongan biasa dari itu ke server Linux: L60666 localhost:60666.

Saya SSH ke Linux memutuskan dan saya menjalankan telnet localhost 60666 dan tampaknya menghasilkan output yang diharapkan, seperti yang dijelaskan dalam tips debugging yang saya terima di sini .

Saya mencoba untuk menghubungkan Remote Desktop dari PC ke laptop: localhost:60666. Itu meminta nama pengguna dan kata sandi saya, saya klik OK dan itu mengunci sesi saya saat ini di laptop (jadi saya melihat layar selamat datang di laptop bukan desktop saya), itu menunjukkan pesan "Selamat Datang" di layar Remote Desktop dan kemudian hanya menjadi hitam. Itu tidak memutuskan, tidak memberikan kesalahan dan saya tidak dapat melakukan tindakan apa pun di layar Remote Desktop. Saya mencoba pengaturan yang sama dengan laptop Windows XP dan saya mengalami gejala yang sama. Saya juga mencoba menggunakan port yang berbeda dari 60666, tetapi tidak ada yang berubah. Adakah yang tahu kesalahan saya?


Pembaruan : Seperti yang ditunjukkan oleh @jwinders, saya tidak dapat menjalankan telnet PC 3389dari server Linux secara langsung. Karena Windows Firewall memiliki aturan untuk mengizinkan semua koneksi pada port 3389, saya tidak tahu apa yang memblokirnya. Untungnya, saya dapat membuat terowongan SSH dari mesin Linux ke PC ssh 3389:localhost:3389 'domain\user'@PC.

Mihai Todor
sumber
Saya benar-benar hanya menggunakan GoToMyPC pada saat itu.
ewwhite
1
@white Saya tidak melihat alasan mengapa saya tidak bisa menggunakan pengaturan yang saya jelaskan. Bahkan jika ada solusi yang lebih sederhana (yang membutuhkan melibatkan pihak ketiga lainnya), saya menganggap ini sebagai tantangan yang menarik.
Mihai Todor
1
Ini adalah posting yang sangat tua, tetapi masalahnya masih ada, dan cukup membuat frustasi karena semua jawaban sepertinya tidak tepat. Koneksi dapat dimulai, tetapi terputus satu detik setelah dimulai. Komentar bahwa "masuk melalui rdp, akan mengganggu koneksi itu" tampaknya koheren dengan apa yang diamati tetapi tidak menjawab mengapa atau menyarankan solusi.
rhermans

Jawaban:

3

Saya mengalami masalah layar hitam + putuskan yang sama hari ini, menggunakan dempul sebagai klien saya. Saya akhirnya menemukan solusi .

Saya beralih dari dempul ke menggembok terowongan , dan mengatur S2Ckoneksi dengan pengaturan berikut:

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

Seperti kebetulan, saya menggunakan server bitvise ssh di server saya, jadi ini mungkin kombinasi yang menyenangkan untuk dua produk yang dibuat oleh vendor yang sama. Alangkah baiknya jika ini memecahkan masalah bagi orang lain.

Sebagai catatan, saya tidak berafiliasi dengan orang-orang ini dengan cara apa pun.

jasper
sumber
2

Saya tidak melihat ada yang salah dengan terowongan SSH Anda. Menghubungkan ke localhost: 60666 di PC harus berakhir di localhost: 3389 di Laptop. Dan fakta bahwa Anda mendapatkan layar login menegaskan penilaian ini.

Sedikit googling di layar kosong membuat saya ke artikel basis pengetahuan Microsoft ini: http://support.microsoft.com/kb/555840 . Ini menyatakan layar kosong mungkin karena kemungkinan ketidaksesuaian ukuran MTU:

Verifikasi bahwa server, klien dan peralatan jaringan menggunakan ukuran "MTU".

Mengingat jumlah jaringan hop, firewall dan apa pun yang Anda miliki, kemungkinan besar fragmentasi paket :) Kebanyakan mesin Windows menggunakan MTU 1300 secara default, sementara kebanyakan kotak Linux memiliki 1500 (nilai maksimum yang diizinkan untuk LAN, tidak mempertimbangkan bingkai jumbo ). Anda dapat mencoba menurunkannya untuk mengurangi fragmentasi.

Lihat juga:

basvdlei
sumber
1
Terima kasih atas tipnya, tetapi, sayangnya, itu tidak berhasil. MTU pada laptop saya dan PC diatur ke 1500 ( netsh interface ipv4 show subinterfaces) dan ping linux_server -f -l 1472berhasil dari kedua mesin. Sama seperti tes, saya mencoba mengatur MTU di PC ke 1300, tetapi tidak membantu. Saya juga mencoba mengubahnya di laptop juga, tetapi tidak berhasil :( Saya ingin tahu apakah ada cara "pintar" untuk men-debug masalah ini ...
Mihai Todor
1

Bukankah VPN lebih tepat? OpenVPN sangat mudah dikonfigurasi. Berikut adalah contoh konfigurasi dan beberapa tautan untuk memandu Anda melalui proses pembuatan sertifikat.

Cukup konfigurasikan perantara untuk menjadi tuan rumah, dan para tamu dapat menghubungi dan masih berkomunikasi satu sama lain.

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

Kemudian buat file baru /etc/openvpn/client_server.confdan masukkan yang berikut di dalamnya, ubah yang SERVER_IP_ADDRESSsesuai

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

Kemudian buat kunci per pengguna yang akan terhubung, dan buat file konfigurasi di dir ccd

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

Alamat IP HARUS cocok untuk subnet / 30 (lihat http://www.subnet-calculator.com/cidr.php ), karena hanya ada 2 alamat yang tersedia (server dan klien) per koneksi. Jadi IP klien Anda yang tersedia berikutnya adalah 192.168.100.6 dan seterusnya.

Maka sekarang Anda memiliki IP statis per pengguna yang terhubung.

Kemudian berikan the [email protected]file ke pengguna akhir dan gunakan file konfigurasi berikut

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
Ben Lessani - Sonassi
sumber
1
Ya, ini bisa berhasil, tetapi saya tidak memiliki akses yang diperlukan pada kotak Linux untuk menginstal barang-barang :( Namun, saya merasa semuanya sangat membuat frustrasi, karena ia bekerja dalam satu arah dan gagal pada yang sebaliknya.
Mihai Todor
1

Jika Anda menjalankan sesi ssh di dalam akun pengguna (menggunakan program seperti putty.exe), ketika Anda mencoba masuk melalui rdp, itu akan mengganggu koneksi yang menyebabkan sesi rdp terputus. Yang perlu Anda lakukan adalah menjalankan ssh tunnel sebagai layanan yang tidak akan terganggu.

Menandai
sumber
1
Menarik. Saya tidak memiliki akses ke pengaturan itu lagi, jadi saya tidak akan dapat menguji teori Anda, tetapi akan menyenangkan untuk mendapatkan beberapa detail tambahan tentang ini untuk orang lain yang menghadapi masalah yang sama. Apakah Anda memiliki referensi untuk klaim Anda? Apa maksud Anda dengan koneksi yang terganggu oleh Putty?
Mihai Todor
0

saya pikir Anda dapat melakukan semua conf dari laptop Anda

atur koneksi dempul ke kotak linux di laptop Anda. kemudian di 'koneksi'> 'SSH'> 'terowongan' masukkan 60666 di bidang 'port sumber' dan pastikan tombol radio lokal dipilih. di 'tujuan' Anda memasukkan win7-box-name-or-ip: 3389.

simpan semua itu dan itu akan memungkinkan Anda untuk membuka sesi dempul ke linux-box yang secara otomatis membuat lalu lintas penerusan terowongan ke localhost (laptop Anda): 60666 hingga win7: 3389

jika Anda melakukan ini di baris perintah itu harus seperti

ssh -L60666:win7:3389 linux-box
jwinders
sumber
1
Jadi, mari kita lihat ... Konfigurasi ini harus meneruskan port 3389 dari PC ke port 60666 di laptop. Saya tidak melihat bagaimana ini akan bekerja, dan, bagaimanapun, itu tidak akan memungkinkan saya untuk melakukan remote desktop pada laptop ... Sejauh yang saya tidak tahu, itu harus dilakukan menggunakan 2 terowongan.
Mihai Todor
dengan conf ini, Anda tidak dapat rdp ke localhost: 60666 di laptop Anda?
jwinders
Tidak, itu tidak berhasil.
Mihai Todor
1
Itu tidak berhasil. Satu-satunya cara saya bisa melakukan itu adalah pertama-tama membuat terowongan dari kotak linux ke PC ssh 3389:localhost:3389 'domain\user'@PCdan kemudian lakukan telnet localhost 3389pada kotak Linux.
Mihai Todor
1
Itu poin yang menarik, tapi saya tidak yakin saya mengerti apa yang menghalangi itu. Windows Firewall memiliki aturan yang secara eksplisit memungkinkan semua koneksi pada port 3389 dari domain.
Mihai Todor
0

Saya menemukan bahwa kecuali semua pengguna benar-benar keluar dari mesin, saya akan mendapatkan layar kosong setelah memasukkan kredensial. Jadi, pastikan Anda selalu Keluar.

Jonathan Lloyd
sumber
2
Usaha yang bagus, tetapi masih belum berhasil :(
Mihai Todor