Aracı Sunucu Üzerinden Uzak Masaüstü için SSH Tüneli Bölüm II


10

Daha önce Uzak Masaüstü'nü aralarında çalıştırmak için bir aracı sunucu kullanarak 2 SSH tünelinin nasıl yapılandırılacağını sordum ve çalışmasını başardım. Şimdi, aynı makineleri kullanarak aynı işlemleri yapmaya çalışıyorum, ancak ters sırada. Kurulum şu şekildedir:

  1. Güvenlik duvarının arkasında oturan özel bir ağda Windows 7 PC.
  2. Herkese açık erişim PC'ye erişimi olan Linux sunucusu.
  3. Bilgisayardan Uzak Masaüstü yapmak istediğim Windows 7 dizüstü bilgisayar.

Ben Linux sunucuya ondan geriye tüneli oluşturmak için dizüstü Macun kullanın: R60666 localhost:3389.

Ben Linux sunucuya ondan düzenli tüneli oluşturmak için PC'de Macun kullanın: L60666 localhost:60666.

Linux sever SSH ve telnet localhost 60666 çalıştırıyorum ve burada aldığım hata ayıklama ipuçlarında açıklandığı gibi beklenen çıktıyı üretiyor gibi görünüyor .

Ben dizüstü bilgisayardan Uzaktan Masaüstü bağlanmayı deneyin: localhost:60666. Kullanıcı adımı ve şifremi soruyor, Tamam'ı tıklıyorum ve şu anki oturumu dizüstü bilgisayarda kilitliyorum (masaüstüm yerine dizüstü bilgisayarda hoş geldiniz ekranını görüyorum), Uzak Masaüstü ekranında "Hoş Geldiniz" mesajını gösteriyor ve sonra sadece kararıyor. Bağlantı kesilmez, hata vermez ve Uzak Masaüstü ekranında herhangi bir işlem yapamıyorum. Aynı kurulumu bir Windows XP dizüstü bilgisayarda denedim ve aynı belirtileri yaşıyorum. Ayrıca 60666'dan farklı bağlantı noktaları kullanmaya çalıştım, ancak hiçbir şey değişmedi. Benim neyi yanlış yaptığımı bilen var mı?


Güncelleme : @jwinders'ın işaret ettiği gibi, telnet PC 3389doğrudan Linux sunucusundan çalışamıyorum . Windows Güvenlik Duvarı'nın 3389 numaralı bağlantı noktasındaki tüm bağlantılara izin verme kuralı olduğundan, neyi engellediğini bilmiyorum. Neyse ki, Linux makinesinden PC'ye bir SSH tüneli oluşturabiliyorum ssh 3389:localhost:3389 'domain\user'@PC.


Bu noktada GoToMyPC'yi ciddiye alırım .
ewwhite

1
@Wwhite Açıkladığım kurulumu kullanmamam için hiçbir neden göremiyorum. Daha basit çözümler olsa bile (başka bir 3. tarafın dahil edilmesini gerektiren), bunun ilginç bir zorluk olduğunu düşünüyorum.
Mihai Todor

1
Bu vey ld post, ama sorun hala var ve tüm cevapların noktayı kaçırdığı görülüyor. Bağlantı başlatılabilir, ancak başladıktan bir saniye sonra kesilir. "Rdp ile giriş, bu bağlantıyı bozacaktır" yorumu , gözlemlenenle tutarlı görünüyor ancak neden cevap vermediği gibi, bir çözüm önermiyor.
rhermans

Yanıtlar:


3

Müşterim olarak macunu kullanarak bugün aynı siyah ekran + bağlantı kesme sorununa girdim. Sonunda bir çözüm buldum .

Ben macun dan anahtarlamalı Bitvise Tunnelier ve kurulum bir S2Caşağıdaki ayarlarla bağlantısı:

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

Şansın olacağı gibi, sunucumda bitvise ssh sunucusu kullanıyorum, bu yüzden bu aynı satıcı tarafından yapılan iki ürün için mutlu bir kombinasyon olabilir. Bunun başkaları için problemleri çözmesi harika olurdu.

Kayıt için, bu adamlarla hiçbir şekilde bağlantılı değilim.


2

SSH tünellerinizde yanlış bir şey görmüyorum. PC'de localhost: 60666'ya bağlanma Dizüstü bilgisayarda localhost: 3389 ile bitmelidir. Bir giriş ekranı almanız bu değerlendirmeyi doğrular.

Boş ekranda biraz googling beni şu Microsoft bilgi bankası makalesine götürür: http://support.microsoft.com/kb/555840 . Boş bir ekranın olası MTU boyutu uyuşmazlıkları nedeniyle olabileceğini belirtir:

Verity "MTU" boyutu kullanarak sunucu, istemci ve ağ donanımları.

Adil miktarda ağ atlamaları, güvenlik duvarları ve neye sahip olduğunuz göz önüne alındığında, paket parçalanması oldukça olasıdır :) Çoğu Windows makinesi varsayılan olarak 1300 MTU kullanır, Linux kutularının çoğunda 1500 (LAN için izin verilen maksimum değer, jumbo çerçeveler dikkate alınmadan) ). Parçalanmayı azaltmak için bunları indirmeyi deneyebilirsiniz.

Ayrıca bakınız:


1
Bahşiş için teşekkürler, ama ne yazık ki, hile yapmaz. Hem dizüstü bilgisayarımdaki hem de bilgisayarımdaki MTU 1500 ( netsh interface ipv4 show subinterfaces) olarak ayarlanmış ve ping linux_server -f -l 1472her iki makineden de başarılı. Bir test olarak, PC'deki MTU'yu 1300'e ayarlamaya çalıştım, ancak yardımcı olmadı. Ayrıca dizüstü bilgisayarda da değiştirmeye çalıştım, ama boşuna :( Ben bu sorunu ayıklamak için "daha akıllı" bir yol olup olmadığını merak ediyorum ...
Mihai Todor

1

Bir VPN daha uygun olmaz mı? OpenVPN'in yapılandırılması son derece basittir. Örnek bir yapılandırma ve sertifika oluşturma işleminde size yol gösterecek bazı bağlantılar.

Aracıyı ana bilgisayar olarak yapılandırmanız yeterlidir ve konuklar arayabilir ve birbirleriyle iletişim kurabilir.

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

Ardından yeni bir dosya oluşturmak /etc/openvpn/client_server.confve değişen, içinde aşağıdaki koymak SERVER_IP_ADDRESSuygun olarak

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

Ardından bağlanacak kullanıcı başına bir anahtar oluşturun ve ccd dizininde config dosyasını oluşturun

./build-key-pkcs12 user1@domain.com
echo "ifconfig-push 192.168.100.2 255.255.255.0" > /etc/openvpn/ccd/client_server/user1@domain.com

IP adresi , bağlantı başına yalnızca 2 adres (sunucu ve istemci) olduğundan, / 30 alt ağı (bkz. Http://www.subnet-calculator.com/cidr.php ) için uygun OLMALIDIR . Dolayısıyla, bir sonraki kullanılabilir istemci IP'niz 192.168.100.6 ve benzeri olacaktır.

Artık bağlanan kullanıcı başına statik IP'leriniz olur.

Sonra the user1@domain.com.p12son kullanıcıya dosya sağlayın ve aşağıdaki yapılandırma dosyasını kullanın

client
dev tun
proto udp
remote SERVER_IP_ADDRESS 8443
pkcs12 user1@domain.com.p12
resolv-retry infinite
nobind
ns-cert-type server
comp-lzo
verb 3
reneg-sec 0

1
Evet, bu işe yarayabilir, ancak bir şeyler yüklemek için Linux kutusuna gerekli erişimim yok :( Yine de, her şeyi son derece sinir bozucu buluyorum, çünkü bir yönde çalışıyor ve ters yönde başarısız oluyor.
Mihai Todor

1

Ssh oturumunu kullanıcı hesabı içinde çalıştırıyorsanız (putty.exe gibi bir program kullanarak), rdp yoluyla oturum açmaya çalıştığınızda, rdp oturumunun kesilmesine neden olan bağlantı kesilir. Yapmanız gereken ssh tünelini kesintiye uğramayacak bir hizmet olarak çalıştırmak.


1
İlginç. Bu düzeneğe artık erişemiyorum, bu yüzden teorinizi test edemeyeceğim, ancak aynı sorunla karşı karşıya olan diğer insanlar için bu konuda bazı ek ayrıntılar almak iyi olurdu. Talepleriniz için referansınız var mı? Putty tarafından bağlantının kesilmesi ile ne demek istiyorsun?
Mihai Todor

0

sanırım dizüstü bilgisayarınızdan tüm conf yapabilirsiniz

dizüstü bilgisayarınızdaki linux kutusuna macun bağlantısı kurun. daha sonra 'bağlantı'> 'SSH'> 'tünellerde' 60666'yı 'kaynak bağlantı noktası' alanına yerleştirin ve Yerel radyo düğmesinin seçili olduğundan emin olun. 'hedef' alanına win7-box-name-or-ip: 3389 girersiniz.

tüm bunları kaydettiğinizde, linux-box'a otomatik olarak localhost'a (dizüstü bilgisayarınız) trafik tüneli oluşturan bir macun oturumu açmanıza izin vermelidir: kazanmak için 606667: 3389

bunu komut satırında yapıyorsanız, bunun gibi bir şey olmalı

ssh -L60666:win7:3389 linux-box

1
Bakalım ... Bu yapılandırma 3389 numaralı bağlantı noktasını bilgisayardan dizüstü bilgisayardaki 60666 numaralı bağlantı noktasına iletmelidir. Ancak bunun nasıl çalışacağını görmüyorum ve her durumda, dizüstü bilgisayarda uzak masaüstü yapmama izin vermiyor ... Söyleyemediğim kadarıyla, 2 kullanarak yapılması gerekiyor tüneller.
Mihai Todor

bu conf ile, dizüstü bilgisayarınızda localhost: 60666 rdp edemez?
jwinders

Hayır, çalışmıyor.
Mihai Todor

1
Bu işe yaramıyor. Bunu yapabilmemin tek yolu önce linux kutusundan PC'ye bir tünel kurmak ssh 3389:localhost:3389 'domain\user'@PCve daha sonra telnet localhost 3389Linux kutusuna yapmak.
Mihai Todor

1
Bu ilginç bir nokta, ama onu neyin engellediğini anladığımdan emin değilim. Windows Güvenlik Duvarı, 3389 numaralı bağlantı noktasında etki alanından tüm bağlantılara açıkça izin veren bir kurala sahiptir.
Mihai Todor

0

Tüm kullanıcılar makineden tamamen çıkmadıkça kimlik bilgilerini girdikten sonra boş bir ekran alacağımı buldum. Bu nedenle, her zaman Oturumu Kapattığınızdan emin olun.


2
İyi deneme, ama yine de şans yok :(
Mihai Todor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.