Http veya https üzerinden ssh nasıl kullanılır?


42

Bir şirket güvenlik duvarının arkasındaki linux fedora21 istemci dizüstü bilgisayarına sahibim (http ve https portlarını kullanarak ancak ssh 22'yi değil) ve evde kendi yönlendiricimin arkasında linux fedora21 sunucusuna sahibim. Ev sunucumun genel IP adresini belirttiğimde https ile gezinmek çalışıyor (ev yönlendiricimi yapılandırdığım için)

Ana sunucuma http / s bağlantı noktası üzerinden ssh (uzak kabuk) uygulamak mümkün mü?

Adında bir araç gördüm corkscrew. bu yardımcı olur mu?

opensshdve httpdev sunucusunda çalıştırın. Başka ne yapılandırmaya ihtiyaç duyar?


1
sshd'nizi 443 numaralı bağlantı noktasını dinlemek için evde kullanın, ancak 443 numaralı bağlantı noktasını evinizin httpd'sinde devre dışı bırakmalısınız.
Taliezin

Buna rağmen tam olarak yapamam. Gitmek için de httpd (ler) e ihtiyacım var. bu yüzden 443 dinleyen bir httpd'ye sahip olmalıyım.
MMM

httptunnel - yum httptunnel http://www.nocrew.org/software/httptunnel.html kurulumunu ya da sorunuzda bahsettiğiniz gibi: tirbuşonu deneyin .
taliezin,

Her iki durumda da, sshd 22'yi dinler ve httpd 80/443'e ve httptunnel veya tirbuşon httpd'nin sshd'ye aldığı trafiği iletir mi?
MMM

Evet. Servislerinin portlarını değiştirmek zorunda değil.
taliezin

Yanıtlar:


42

Mümkün olan şey, güvenlik duvarının izin verdiği duruma bağlıdır.

Güvenlik duvarı 443 numaralı bağlantı noktasında keyfi trafiğe izin veriyorsa

Bazı güvenlik duvarları 443 numaralı bağlantı noktasında basit bir şekilde çıkar ve herhangi bir şeye izin verir. Bu durumda, ev sunucunuza ulaşmanın en kolay yolu, 443 numaralı bağlantı noktasındaki SSH bağlantılarını dinlemesini sağlamaktır. Makineniz doğrudan Internet'e bağlıysa, eklemek Port 443için /etc/ssh/sshd_configya /etc/sshd_configdiyor hattı hemen altında Port 22. Makineniz, gelen bağlantıları yönlendiren bir yönlendiricinin / güvenlik duvarının arkasındaysa, gelen bağlantıları 443 numaralı bağlantı noktasına, sunucunuzun 22 numaralı bağlantı noktasına yeniden yönlendirmesini sağlayın

iptables -t nat -I PREROUTING -p tcp -i wan0 --dport 443 -j DNAT --to-destination 10.1.2.3:22

wan0yönlendiricinizdeki WAN arayüzü nerede ve 10.1.2.3, ev ağınızdaki sunucunuzun IP adresi.

Ev sunucunuzun 443 numaralı bağlantı noktasındaki hem HTTPS bağlantılarını hem de SSH bağlantılarını dinlemesine izin vermek istiyorsanız, bu mümkün - SSH ve HTTPS trafiği kolayca ayırt edilebilir (SSH'de sunucu önce konuşur, oysa HTTP ve HTTPS'de istemci konuşur. ilk). Bunun nasıl ayarlanacağına ilişkin dersler için http://blog.stalkr.net/2012/02/sshhttps-multiplexing-with-sshttp.html ve http://wrouesnel.github.io/articles/Setting%20up%20sshttp/ adresine bakın. sshttp ile ve ayrıca web sunucusu (nginx) bu portlarda çalışırken, 80 veya 443 portunda SSH'ya sahip olun

CONNECT tünellemesine izin veren bir web proxy'niz varsa

Bazı güvenlik duvarları tüm giden bağlantıları engeller, ancak HTTPCONNECT yönteminin güvenlik duvarında bir deliği etkin bir şekilde delmesine izin veren bir proxy üzerinden web'de gezinmeye izin verir . CONNECTEğer yukarıdaki gibi 443 numaralı bağlantı noktasında dinleme ile birleştirmek gerekebilir, böylece yöntem, belirli bağlantı noktalarına kısıtlanabilir.

SSH'yi proxy üzerinden geçirmek için tirbuşon gibi bir araç kullanabilirsiniz . Gözlerinde farklı ~/.ssh/configbir ekleme ProxyCommandKendi web proxy ise, aşağıdaki gibi satır http://web-proxy.work.example.com:3128:

Host home
HostName mmm.dyndns.example.net
ProxyCommand corkscrew web-proxy.work.example.com 3128 %h %p

HTTP’de SSH’yi sarma (S)

Bazı güvenlik duvarları, 443 numaralı bağlantı noktasında bile SSH trafiğine izin vermez. Bunlarla başa çıkmak için, SSH'yi güvenlik duvarının izin verdiği bir şeye gizlemeniz veya tünellemeniz gerekir. Bkz http://dag.wiee.rs/howto/ssh-http-tunneling/ ile ilgili olanı bir öğretici için ProxyTunnel .


443 numara yaptı! Bunun işe yarayacağına şaşırdım :) - herhangi bir sysadmin görüşü neden bunun çoğu güvenlik duvarında olduğu gibi görünüyor?
AK_

@AK_ Bir güvenlik duvarının TLS'yi SSH'den ayırması mümkün olsa da, ek bir yapılandırma adımıdır ve daha fazla performans gerektirir; bu, giden bağlantılar söz konusu olduğunda gerçek bir fayda sağlamak değildir (çünkü TLS'de herhangi bir şey tünellenebildiğinden).
Gilles 'SO- kötülük yapmayı bırak'

@Gilles, HTTPS'yi engelleyen ancak HTTP CONNECT HTTPS'ye izin veren proxy sunucular var mı?
Pacerier

1
@Pacerier Birçoğu. Proxy HTTPS'yi engellemez - bir proxy, proxy'yi atlayan bağlantıları engellemez - doğrudan bağlantıların engellendiği, ancak proxy'nin 443 numaralı bağlantı noktasına girmesi koşuluyla herhangi bir trafikle CONNECT'e izin verdiği anlamına gelir. HTTPS'yi filtrelemenin gerçek bir yolu yoktur. , güven enjeksiyonunun kökünü ve çok kötü bir fikir olan sertifika yeniden yazma özeti.
Gilles 'SO- kötülükten vazgeçmeyi'

Ayrıca vekil komutunda tirbuşon yerine netcat-openbsd'yi kullanabileceğinizi unutmayın:ProxyCommand nc -X connect -x __proxy_IP__:__port__ %h %p
Paul Rougieux


1

Aynı bağlantı noktası 443’te bir HTTPS sunucusu ve bir SSHd sunucusu çalıştırmak istiyorsanız, sslh komutunu kullanabilirsiniz .

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.