SSH ile port 80'den mümkün mü?

19

Varsayılan bağlantı noktasından geçmeme izin vermeyen bir ağ güvenlik duvarının arkasındayım. Bu yüzden bzr dallarını depoya itemem. Ssh'in bağlantı noktası 80 üzerinden bir şekilde proxy yapabilmesinin mümkün olup olmadığını bilmek istiyorum, böylece şubeleri zorlayabilirim.

tirbuşonun bunu yapmanıza izin verdiğini duydum, ancak bunu tam olarak nasıl yapacağımı bilmiyorum.

Bunu yapmanıza izin veren herhangi bir çalışan proxy sunucusu biliyorsanız, lütfen bunları belirtin.

    
sordu jokerdino 24.02.2012 04:44

5 cevap

17

İyi bir şirket güvenlik duvarı, limana bakılmaksızın trafiği denetleyecek ve böylece bağlantı noktası değişmeyecektir.

Sunucu üzerinde kontrolünüz varsa ve yine de denemek istiyorsanız, sshd bağlantı noktasını bağlantı noktası 80 olarak değiştirebilirsiniz. Uyarı Bağlantı noktası 80'de (sunucuda) başka bir şeyiniz varsa Bu işe yaramaz ve büyük olasılıkla sunucuya SSH erişimini tamamen kaybedeceğiniz anlamına gelir!

/etc/ssh/sshd_config dosyasını düzenlemeniz ve Port değerini 80 olarak değiştirmeniz gerekecek. Sonra koş

sudo restart ssh

Ve sonra bağlayın:

ssh [email protected] -p80

Bzr yolunuz şöyle bir şeye benzeyecekti: bzr+ssh://host:80/path/

Başka bir yöntem, WebDav kullanmaktır. Bu, güvenlik duvarı sorununun etrafında tamamen durmalıdır çünkü tüm bunlar Port 80'de gerçekleşir ancak Apache'yi çalıştırmanız ve birkaç şey ayarlamanız gerekir:

  1. WebDav uygulamasını yükleyin
  2. Şubenizi doğru yere taşıyın
  3. Bağlantı kurmak için bzr-webdav eklentisini kullanın

VPN bir seçenek olabilir, ancak ssh 'si kilitliyse, bunun da hariç tutulmasını beklerdim.

Ağ yöneticilerinizle sadece bir kelime öğrenmek isteyebilirsiniz. Bir şeyler yapmalısın ve seni durduruyorlar. % Co_de% 'sini engellemek için bir nedenleri varsa, büyük olasılıkla negatif olarak atlatmak için herhangi bir aşırı girişimi göreceklerdir ...

Kısacası, onlarla konuşmak daha güvenli olabilir.

    
verilen cevap Oli 24.02.2012 14:05
15

SSH proxy üzerinden

Güvenlik duvarı size izin veriyorsa, ssh'i herhangi bir bağlantı noktasına çalıştırabilirsiniz, ancak bu ssh sunucusunun bu bağlantı noktasını dinlemesini gerektirir. Bağlantı noktası 80'in çalışması pek olası değildir, çünkü güvenlik duvarlarının çoğu, bu bağlantı noktasındaki trafiği analiz eder ve HTTP olmayan her şeyi engeller. Ancak normalde HTTPS bağlantı noktası olan 443 numaralı bağlantı noktası, SSH ve HTTPS'nin yazılım filtrelemeye çok benzediğinden, SSH oturumunuz bir HTTPS oturumu gibi görünür. (HTTPS ve SSH'yi ayırt etmek mümkündür, bu yüzden güvenlik duvarı yeterince karmaşıksa işe yaramaz.)

Sunucu üzerinde kontrolünüz varsa, 22'ye (normal ssh bağlantı noktası) ek olarak 443 numaralı bağlantı noktasında dinlemesini sağlayın. Bağlantı noktasını /etc/ssh/sshd_config olarak yapılandırabilirsiniz: bir satır ekleyin

Port 443

Zaten orada olması gereken% co_de yüzdesine ek olarak. Bunun ssh sunucusunun da bir HTTPS sunucusu olmadığını varsayar. Öyleyse, güvenlik duvarının başka bir ssh sunucusunu kullanmanıza veya başka bir ssh sunucusunu bulmasına izin vermesi gereken başka bir bağlantı noktası bulmanız gerekir (aşağıdaki iletime bakın).

Web tarayıcınızda bir web proxy ayarlamanız gerekmiyorsa, doğrudan bağlanmayı deneyebilirsiniz:

ssh -p 443 myserver.example.com

Eğer çalışırsa, Port 22 'daki bir takma ad tanımlayın:

Host myserver
HostName myserver.example.com
Port 443

Web tarayıcınızda bir web proxy ayarlamanız gerekiyorsa, ssh'e proxy'den geçmesini söyleyin. Tirbuşon 'ı yükleyin. % Co_de% 'ınızda bu gibi bir takma ad tanımlayın, ~/.ssh/config HTTPS için dışarıda kullandığınız proxy'dir (uygun ana bilgisayar adı ve bağlantı noktası ile değiştirin):

Host myserver
HostName myserver.example.com
Port 443
ProxyCommand /usr/bin/corkscrew proxy.acme.com 3128 %h %p

SSH üzerinde SSH

Yukarıdaki tekniklerden biriyle dışarıdan makineye gidebilir ancak ilgilendiğiniz makineye ulaşamazsanız, bağlantıyı iletmek için bunu kullanın. % Co_de% adlı bir makineye ssh olduğunuzu varsayar ve ~/.ssh/config 'deki SSH sunucusuna ulaşmak istediğinizde, netcat-openbsd ' yi yükleyin. http://proxy.acme.com:3128/ (veya Ubuntu çalışmıyorsa, mygateway komutuna sahip olduğundan emin olun). Bunu mytarget dosyanıza koyun:

Host mytarget
ProxyCommand ssh mygateway nc %h %p

Apache'den SSH

Bağlanmak istediğiniz ana bilgisayar zaten Apache kullanıyorsa ve 443 numaralı bağlantı noktasını dinliyorsa ve bu ana bilgisayar üzerinde denetiminiz varsa, bu Apache'yi SSH bağlantılarını kabul etmek ve iletmek için ayarlayabilirsiniz. HTTP (S) üzerinden SSH'yi tünelleme konusuna bakın.

    
verilen cevap Gilles 27.02.2012 02:38
2

SSH bağlantı noktasını 80 numaralı bağlantı noktasına dönüştürmek için sunucu üzerinde herhangi bir denetiminiz yoksa veya güvenlik duvarı 80'in bağlantı noktası 80'den geçişini engellediğinden, 80 numaralı bağlantı noktası üzerinden SSH'yi kullanamıyorsanız, TOR'u deneyebilirsiniz.

TOR büyük bir ağdır. Bilgisayarınız dünyanın başka bir bilgisayarına bağlanır, bu bilgisayar SSH sunucusuna ulaşana kadar başka bir bilgisayara bağlanır. Hepsi güvenlik duvarı dostudur, 443 numaralı bağlantı noktasında (şirketiniz engellemez, ya da başka bir şey ..), bu kadar akıllı değildir. Gerçekten sadece büyük bir vekil veya VPN ve şifreli. Bu sayede herhangi bir ana bilgisayara herhangi bir bağlantı noktasından erişebilirsiniz (aynı zamanda port 22'deki bir sunucunun SSH'si).

Çevrimiçi olarak www.torproject.org adresinden bilgi edinin.

    
verilen cevap Robbietjuh 24.02.2012 15:29
2

Üzgünüm, şeytan avukatını oynamak zorundayım.

Bunun büyük olasılıkla bunun için bir neden olduğunu biliyorum, ancak neden ağ / güvenlik duvarı yöneticinizin aradığınız belirli bağlantı noktasını açmıyor? Güvenlik açısından, web incelemesi bir şeyleri kaçırma şansına sahip olmak ister misiniz? Std trafiği için 80 numaralı bağlantı noktasını baypas etmek üzere yapılandırılmışsa ve kendinizi zor yoldan sokuyorsanız.

Yukarıdaki birkaç öneriye katılıyorum, bu noktada vpn'ye bir nokta daha güvenli bir seçenek olabilir. Yine, güvenlik açısından, güvenlik politikalarını gerçekten atlamanızın nedenini ve neden sunucunuzu erişim için bir dmz veya omurgaya yerleştiremediğinizi bilmek isterim. Benim. İyi şanslar.

    
verilen cevap Solarfinder 22.10.2012 21:33
2

Burada sadece karmaşık bir çözüm okudum:

İşte

Ev sunucunuz 80 numaralı bağlantı noktasında bir web sunucusu çalıştırsa bile, 80 numaralı bağlantı noktasında SSH'yi kullanabilirsiniz.

Ev sunucusunun Apache'yi çalıştırdığını varsayarsak. Bu fikir, sunucunuzda mod_proxy'yi etkinleştirmeyi ve ardından localhost (proxy.conf) 'a bağlanarak kısıtlamayı içerir:

<IfModule mod_proxy.c>
         ProxyRequests On
        <Proxy *>
                AddDefaultCharset off
                Order deny,allow
                Deny from all
        </Proxy>
        <Proxy localhost>
          Allow from all
        </Proxy>
        AllowCONNECT 22
        ProxyVia On
</IfModule>

Artık yerel sunucuya bir HTTP bağlantı isteği yapabilir ve web sunucusu sizin için bir tünel kuracaktır, yalnızca tüm trafiğin proxy'nizden geçtiğinden emin olmanız gerekir:

ssh -o 'ProxyCommand nc -X connect -x myhost.example.com:80 localhost 22' myhost.example.com

SSH'ye olan localhost bağlantılarının ayrıcalıklı olmadığından emin olun (yabancılara izin vermemek için ...)

Bu, yalnızca 80 portuna izin veren bir yönlendiricinin arkasındaysanız çalışır.

Bir proxy'nin arkasındaysanız (bu yüzden web'i almak için tarayıcınızda proxy ayarlamanız gerekir), önce kendi sunucunuza bir tünel oluşturmanız, ardından ana makinenize ulaşmak için bu tünelde başka bir CONNECT isteği göndermeniz gerekir. . Bu daha sofistike, bunun için 2 netcats kullanmanız gerekecek.

Her şey mümkündür, ancak kendi sorumluluğunuz için yapın ...

GÜNCELLEME:

Ya da sadece, bir tarayıcı üzerinden SSH veren bir web uygulaması kullanın. İşte

    
verilen cevap Calmarius 29.04.2013 18:49

Etiketlerdeki diğer soruları oku