SSH bağlantıları kurarken yerel bir bağlantı noktasını nasıl belirleyebilirim?


13

IDC'de barındırılan iki sunucum var. İki sunucu arasında bağlantı kurmak için yalnızca 20/21/22/23/3389 / 33101-33109 numaralı bağlantı noktalarını kullanabilirim. IDC ağ cihazı, kaynağı veya hedef portu 20/21/22/23/80/3389 / 33101-33109 listesinde / aralığında olmayan diğer tüm paketleri engelleyecektir. Ancak SSH'nin kaynak portu rastgele.

Komutu kullanarak kolayca bir uzak bağlantı noktası belirlenebilir.ssh username@server -p remote_port

sshSSH bağlantısı kurmak için örneğin 33101 numaralı bağlantı noktasını kullanabilmem için yerel bir kaynak bağlantı noktası belirtmek için bir komut parametresi veya başka bir yol var mı?

Ağ topolojim şöyle:
ağ topolojisi

Yanıtlar:



2

Tek seferlik veya ara sıra durumlar için, ProxyCommand yaklaşımı kolayca çok uygundur.

Öte yandan, birkaç eşzamanlı bağlantıya ihtiyacınız varsa veya belki de günlük çalışma için bu komutu sık sık kullanmanız gerektiğinde, sunucunuzda bir ağ adresi çeviri (NAT) kuralı da ayarlamayı düşünebilirsiniz.

Bu, rootönce tek bir NAT kuralını uygulamak için sunucunuzda süper kullanıcı (genellikle ) erişimi gerektirir . O Not olabilir sizin "sunucu" aslında (a Docker biri gibi) bir kap varsa, süper erişimi bile NAT kuralı uygulamak için hiç izin (veya etkin) edilemez yerine bir makine.

Paketle tipik bir Linux sisteminden bahsetmişken, iptablesörnek durumunuz için sunucunuza1 uygulanacak NAT kuralı şöyle olabilir:

iptables -t nat -I POSTROUTING -d <server2-ip-address> -p tcp --dport <server2-port> -j SNAT --to :33101-33109

Bu komut liman yolunda herhangi bir bağlantı yapmak için Linux çekirdeği talimatını server2-port ait server2-ip-adresi o anda kullanılabilir aralık 33101-33109 içinde seçilen bir kaynak bağlantı noktasını kullanarak dışarı çıkmak.

Bu kural yürürlüğe girdiğinde, sunucu2'nize her zamanki gibi bağlanırsınız:

ssh username@server2 -p remote_port

sshNAT kuralında belirtilen aralıkta kullanılabilir portlar olduğu sürece, aynı komutu ihtiyacınız olduğu kadar eşzamanlı olarak da kullanabilirsiniz .

Ancak netstatsunucunuzda çalıştırılan bir (veya eşdeğer komut), sunucunuza2 gönderilen gerçek trafik değiştirilmiş kaynak bağlantı noktası numarasını taşımasına rağmen, bağlantının yerel adresini değiştirilmemiş , rastgele seçilen kaynak bağlantı noktası numarası olarak bildirir .

NAT kuralını geri almak için, komutun yerine bir -Dseçenek dışında komut aynıdır -I.

NAT kuralının önyükleme sırasında otomatik olarak uygulanması, sunucunuzda hangi Linux dağıtımının bulunduğuna ve zaten bazı güvenlik duvarı yapılandırmasının mevcut olup olmadığına bağlıdır.

BSD benzeri sistemlerle ilgili hiçbir deneyimim yok, ama buna eşdeğer olduğunu düşünüyorum.

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.