SSH için ters proxy çözümüne ihtiyacım var


10

Merhaba, bir proje için kurumsal veri merkezinde bir sunucum var. Bağlantı noktası 22'de bu makineye SSH erişimim var. Bu sunucuda çalışan bazı sanal makineler var ve daha sonra diğer birçok İşletim sisteminin çalıştığı her şeyin arkasında. Şimdi veri merkezleri güvenlik duvarının arkasında olduğumdan amirim bana internetteki birçok kişiye bu sanal makinelere doğrudan erişim sağlayabileceğim bir şey yapıp yapamayacağımı sordu. 22 dışında bir limandan trafik almama izin verildiğini biliyorum. O zaman bir port yönlendirme yapabilirim. Ama buna izin verilmediğim için bu durumda ne bir çözüm olabilir. Bağlanmak isteyen insanlar tam aptallar olabilir.Kim sadece makinelerinde macun açarak mutlu olabilir, hatta filezilla bile olabilir.

Elimde veya 22 dışında herhangi bir bağlantı noktasında güvenlik duvarı yok ve aslında talep etseler bile açılmasına izin vermeyeceğim. 2 kez SSH, amirimin istediği bir şey değil.


1
başka bir harika çözümle ilgili soru: serverfault.com/questions/361794/…
Kaii


sshpiperd harika çalışıyor!
Király István

Yanıtlar:


5

Ssh tünelini bilgisayarınızdan veri merkezindeki sunucuya açmalısınız. Bunu "server1" olarak adlandıralım. Openssh kullanıyorsanız,

ssh -L0.0.0.0:8080:localhost:8080 you_username@server1

Bu, bilgisayarınızdan 8080 numaralı bağlantı noktasından sunucuya, 8080 numaralı bağlantı noktasına bağlantı kurar ve aradaki güvenlik duvarını atlar. Apache'nizin 8080 numaralı bağlantı noktasını dinlediğini varsayarsak. Bağlantı noktası ileri biçimi dinleme IP: yerel bağlantı noktası: uzak adres: uzak bağlantı noktası. Tabii ki tek bir sunucu için de kullanabilirsiniz

ssh -L0.0.0.0:8080:remote_server_address:8080 you_username@server1

-L parametresindeki localhost'un server1 ile ilişkili olduğunu lütfen unutmayın. Diğer bir deyişle, sunucu localhost'tan gelen bağlantıları görüyor, aslında bunlar bilgisayarınızdan ssh bağlantısı üzerinden geliyor.

Ayrıca parametreye ihtiyacınız var

AllowTcpForwarding yes

sunucunun ssh yapılandırmasında (genellikle / etc / ssh / sshd_config).

Bundan sonra, diğerleri Apache Reverse Proxy üzerinden bağlantı almak için 8080 numaralı bağlantı noktasından bilgisayarınıza bağlanabilir. Genel proxy'ye ihtiyacınız varsa (kullanıcılar Apache yapılandırmasında yalnızca belirli adresleri değil, adresi seçebilirler) sunucu1'e kalamar yüklemeli ve kalamar bağlantı noktasına ssh tüneli kullanmalısınız.


Ne zaman yaptığımı söylemek ssh -L0.0.0.0:8080:localhost:8080 you_username@server1 gerekirse, bağlantı hala güvenlik duvarının 22 numaralı bağlantı noktasından geçecekse (çünkü bu olmazsa, hiçbir şey yapamam) ve yerel makine ile uzak makine arasında ssh tüneli kurulacak ancak güvenlik duvarında tüm trafik devam eder (bağlantı noktası 22).
Tahvil

SSH tünelini çalıştırdığınızda, bu trafik (8080 numaralı bağlantı noktasından 8080 numaralı bağlantı noktasına), 22 numaralı bağlantı noktasını kullanarak ssh bağlantısı içine girer. Güvenlik duvarı, 8080 numaralı değil, 22 numaralı bağlantı noktasına giden trafiği görür.
Olli

Bu komutu verdiğinizde ssh -L0.0.0.0:8080:remote_server_address:8080 you_username@server1 , remote_server_address olarak ne konabileceğini bilmek istiyorum, server1'i ara bir tane olarak kullanmak istediğim dahili makinenin IP'si. Bunu doğru anladım mı?
Bond

Bond: evet, bu doğru. Ayrıca, birden çok dahili makineye bağlantı açmak için birden fazla L tüneli de (elbette farklı kaynak bağlantı noktaları ile) belirleyebilirsiniz. Örneğin "-L0.0.0.0: 8080: remote_server1: 80 -L0.0.0.0: 8081: remote_server2: 80 -L0.0.0.0: 8082: remote_server2: 22" (tırnak işaretleri olmadan).
Olli

Bu sağlamlaştırmak için veri merkezinin dışında ribaund görevi gören ve trafiğe izin veren bir sunucu ayarlamak gerekir. Tabii ki ssh tüneli geçici bir çözüm olarak tamam, ancak üretimde bir şey için, gerçek bir ters proxy yüklemenizi tavsiye ederim ve güvenlik duvarı ayarını yalnızca bu ribaunddan 8080 bağlantıya izin verecek şekilde uyarlayın. Bu, ters proxy'yi DC içindeki sanal makinelerden biri olarak yerleştirmenin daha akıllı olduğunu söyledi. Bağlantının sadece bu makineye doğru SSL ile güvenli hale getirilmesi gerekir.
jmary

0

Belki SshMeIn gibi bir şey kullanabilirsiniz . Güvenlik duvarları üzerinden ssh tüneli yapacak açık kaynaklı bir web sistemidir, bağlantı noktalarını açmanıza bile gerek yoktur.

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.