80 numaralı bağlantı noktasından SSH bağlantısı yapmak mümkün mü?


20

Varsayılan bağlantı noktasından ssh yapmama izin vermeyen bir ağ güvenlik duvarının arkasındayım. Bu nedenle bzr şubelerini depoma zorlayamıyorum. Dalları zorlayabilmem için ssh'yi 80 nolu bağlantı noktasından proxy yapmanın mümkün olup olmadığını bilmek istiyorum.

Tirbuşonun bunu yapmana izin verdiğini duydum ama tam olarak nasıl yapacağından emin değilim.

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


2
man sshportu gösterir: host: hostport. Öyleyse dene ssh 80:server.comya da öylesine.
MarkovCh1

Bu -L veya -R üzerinden bir tünel kurmak için. Böylece tünel açmak için başka bir kutuya ihtiyacınız olacak.
Sezyum

Yanıtlar:


19

İyi bir şirket güvenlik duvarı, bağlantı noktasından bağımsız olarak trafiği denetler, bu nedenle bağlantı noktasını değiştirmek işe yaramayabilir.

Sunucu üzerinde kontrolünüz varsa ve hala denemek istiyorsanız, sshd portunu 80 numaralı port olarak değiştirebilirsiniz. Uyarı 80 numaralı portta (sunucuda) çalışan başka bir şey varsa, bu çalışmaz ve tamamen sunucuya SSH erişimini kaybetmek!

Düzenlemeniz /etc/ssh/sshd_configve değiştirmeniz Portgerekir 80. O zaman koş

sudo restart ssh

Ve sonra bağlanın:

ssh user@host -p80

Böylece bzr yolunuz şöyle görünecektir: bzr+ssh://host:80/path/


Diğer bir yöntem ise WebDav kullanmaktır. Bu tamamen güvenlik duvarı sorununu çözmelidir, çünkü hepsi Port 80'de gerçekleşir, ancak Apache çalıştırmanızı ve bir çok şey ayarlamanızı gerektirir:

  1. WebDav’ı kurun
  2. Şubenizi doğru yere taşıyın
  3. Bağlanmak için bzr-webdav eklentisini kullanın

Bir VPN bir seçenek olabilir ssh, ancak kilitlenirse, bunun da dışlanmasını beklerdim.

Şebeke yöneticilerinizle sadece bir şeyler bilmek isteyebilirsiniz. Bir şeyler yapman gerekiyor ve seni durduruyorlar. Engelleme için bir nedenleri varsa ssh, muhtemelen onu olumsuz yönde atmak için herhangi bir aşırı girişimde bulunacaklar.

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


7
BT departmanınızla ihtiyaçlarınızı görüşmek için +1. Birçok ortamda, benimki dahil, bu tür bir faaliyetin sona ermesi için temel teşkil eder.
Panter

1
Ayrıca, ssh sunucusunu başka bir bağlantı noktasında dinletecekse Port, /etc/ssh/sshd_configdosyadaki her bağlantı noktası için birer olmak üzere iki satırla hem 22 hem de 80 numaralı bağlantı noktasında dinletebilir .
Azendale,

Bir liste yapmaktan kaçınacağım (liste uzundur ve üzerindeki bazı konuların tartışılması hızlı bir şekilde politik hale gelebilir), ancak bu soru , sadık bir şekilde uygulanmakta olan bir şirket politikasını atlatmak isteyen bir çalışanın yanı sıra birçok durumu da kapsamaktadır . şirketin kendi BT departmanı. Ben onların çalışma ihtiyaçlarını BT ile tartışan insanlar için hepimiz varım, ancak bu her zaman uygulanabilir değil ve bazen BT departmanları bile “Tamam, ama sizi karşılayacak hiçbir şeyi değiştirmiyoruz” diye yanıtlıyorlar. Ayrı olarak, 22 numaralı bağlantı noktasının VPN'ler tarafından engellenmesi de oldukça olası, bu yüzden denemeye değer.
Eliah Kagan

@Panther O zaman bazı insanlar bu kurumsal rejime son vermekten daha mutlu olacaklardı.
NeverEndingQueue

15

Proxy aracılığıyla SSH

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

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

Port 443

Buna ek olarak Port 22zaten orada olması gerekirdi. Bunun, ssh sunucusunun da bir HTTPS sunucusu olmadığını varsaydığını unutmayın. Öyleyse, güvenlik duvarının kullanmanıza izin verdiği başka bir bağlantı noktası bulmanız veya başka bir ssh sunucusu bulmanız gerekir (aşağıya bakınız).

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

ssh -p 443 myserver.example.com

Bu işe yararsa, için takma ad tanımlayın ~/.ssh/config:

Host myserver
HostName myserver.example.com
Port 443

Web tarayıcınızda bir web proxy kurmanız gerekirse, proxy'den geçmesini ssh'ye söyleyin. Tirbuşonu takın . Gözlerinde farklı böyle bir takma ad tanımla ~/.ssh/config, nerede http://proxy.acme.com:3128/dışarıdan HTTPS için kullanılacak vekil (doğru ana bilgisayar adı ve port ile değiştirin) geçerli:

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

SSH üzerinden SSH

Dışarıdaki bazı makinelere yukarıdaki tekniklerden biriyle ulaşabiliyorsanız ancak ilgilendiğiniz makineye ulaşamıyorsanız, bağlantıyı iletmek için bunu kullanın. Bir makineye ssh yapabileceğinizi mygatewayve SSH sunucusuna erişmek istediğinizi varsayalım , netcat-openbsd'yimytarget kurun (veya Ubuntu çalışmıyorsa, komutunun olduğundan emin olun ). Bunu içine koy :mygatewaync~/.ssh/config

Host mytarget
ProxyCommand ssh mygateway nc %h %p

Apache'ye SSH

Bağlanmak istediğiniz ana bilgisayar zaten Apache'yi çalıştırıyor ve 443 numaralı bağlantı noktasını dinliyorsa ve bu ana bilgisayarı kontrol ediyorsanız, bu Apache'yi SSH bağlantılarını kabul edip iletmek için ayarlayabilirsiniz. Bkz . HTTP (S) Üzerinden Tünel SSH .


https için tirbuşon yerine nc kullanabilirsiniz, tamam mı? stackoverflow.com/a/15577758/32453
rogerdpack

3

Burada daha gelişmiş bir çözüm okudum:

http://benctechnicalblog.blogspot.hu/2011/03/ssh-over-connect-over-port-80.html

Ev sunucunuz da 80 numaralı bağlantı noktasında bir web sunucusu çalıştırsa bile, 80 numaralı bağlantı noktasında SSH girişi yapabilirsiniz.

Ev sunucusunun Apache'yi çalıştırdığını varsayarsak. Fikir, sunucunuzda mod_proxy'nin etkinleştirilmesini ve ardından localhost (proxy.conf) ile bağlanmasını 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 localhost’a bir HTTP connect isteği yapabilirsiniz 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

Yerel ana makinenin SSH ile bağlantılarının ayrıcalıklı olmadığından emin olun (yabancıların içeri girmesini önlemek için ...)

Bu, yalnızca 80 numaralı bağlantı noktasına izin veren bir yönlendiricinin arkasındaysanız çalışmalıdır.

Proxy'nin arkasındaysanız (web tarayıcınızda proxy kurmanız gerekir), önce kendi ana makinenize bir tünel kurmanız, ardından bu tünel içinde ana makinenize ulaşmak için başka bir CONNECT isteği göndermeniz gerekir. Bu daha sofistike, bunun için 2 netc kullanmanız gerekecektir.

Her şey mümkün, ama kendi risklerin için yap ...

GÜNCELLEŞTİRME:

Ya da basitçe, size SSH'yi bir tarayıcı aracılığıyla veren bir web uygulamasını kullanın. http://en.wikipedia.org/wiki/Web-based_SSH


2

SSH bağlantı noktasını bağlantı noktası 80 olarak değiştirmek için sunucu üzerinde herhangi bir denetiminiz yoksa veya güvenlik duvarı sizi bu tür bağlantı noktalarını bağlantı noktası 80 üzerinden aktarmanızı engellediğinden 80 numaralı bağlantı noktası üzerinden SSH yapamıyorsanız, TOR'yu deneyebilirsiniz.

TOR çok büyük bir ağ. Bilgisayarınız dünyanın herhangi bir yerindeki başka bir bilgisayara, bu bilgisayar SSH sunucusuna ulaşana kadar başka bir bilgisayara bağlanır. Bunların hepsi güvenlik duvarı dostu, 443 numaralı bağlantı noktasında (şirketinizin engellemediği veya başka bir şey .. peki, bu o kadar da akıllıca değil) olur. Kelimenin tam anlamıyla sadece büyük bir proxy veya VPN ve şifrelenmiş. Bu yolla, herhangi bir bağlantı noktasındaki herhangi bir ana bilgisayara (22 numaralı bağlantı noktasındaki bir sunucunun SSH'sine) erişebilirsiniz.

İnternete www.torproject.org adresinden bir göz atın .


2

Üzgünüm, şeytanların avukatı oynamalıyım.

Bunu yapmanın bir nedeni olduğunu biliyorum, ancak neden ağ / güvenlik duvarı yöneticiniz aradığınız belirli bağlantı noktasını açmıyor? Güvenlik açısından, web teftişinin bir şeyleri kaçırması ihtimalini almak ister misiniz? Std trafiği için 80 numaralı bağlantı noktasını atlayacak şekilde yapılandırılmışsa ve kendinizi zahmete sokuyorsunuz.

Yukarıdaki birkaç öneriyle aynı fikirdeyim, burada vpn'yi işaret etmek daha güvenli bir seçenek olabilir. Yine, bir güvenlik açısından, güvenlik politikalarını gerçekten atlamanın nedenini ve sunucunuzu erişim için neden bir dmz veya omurgaya koyamayacağınızı bilmek isterim. Benim. İyi şanslar.


2
Ağ yöneticileri ile konuşmak her zaman mümkün değildir ve ağ yöneticileri her zaman makul değildir.
Jeremy Bicha

Örneğin, kafede oturuyorsanız, WiFi'ye bağlıysanız, ancak yönetici erişimi kısıtlıysa (ve hala hemen bağlanmanız gerekir).
old-ufo
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.