Linux'ta SSH Tüneli veya Bağlantı Noktası Yönlendirme Nasıl Oluşturulur


SSH tünelleme (SSH bağlantı noktası yönlendirme olarak da bilinir), yerel ağ trafiğini SSH üzerinden uzak ana bilgisayarlara yönlendirmektir. Bu, tüm bağlantılarınızın şifreleme kullanılarak güvence altına alındığı anlamına gelir. İnternet gibi güvenli olmayan genel ağlar üzerinden özel ağlara bağlanmak için yararlı olan temel bir VPN (Sanal Özel Ağ) kurmanın kolay bir yolunu sağlar.

Ngrok'ta uygulandığı gibi, NAT'ların ve güvenlik duvarlarının arkasındaki yerel sunucuları güvenli tüneller üzerinden İnternet'e açmak için de kullanılabilirsiniz.

SSH oturumları varsayılan olarak ağ bağlantılarının tünellenmesine izin verir ve üç tür SSH bağlantı noktası yönlendirme vardır: yerel, uzaktan ve dinamik > bağlantı noktası yönlendirme.

Bu makalede, Linux'ta SSH tünelinin veya farklı port yönlendirme türlerinin hızlı ve kolay bir şekilde nasıl kurulacağını göstereceğiz.

Test Ortamı:

Bu makalenin amacı doğrultusunda aşağıdaki kurulumu kullanıyoruz:

  1. Yerel Ana Bilgisayar: 192.168.43.31
  2. Uzak Ana Bilgisayar: sunucu1.example.com ana makine adına sahip Linode CentOS 7 VPS.

Genellikle uzak bir sunucuya SSH kullanarak aşağıdaki şekilde güvenli bir şekilde bağlanabilirsiniz. Bu örnekte, yerel ve uzak ana bilgisayarlarım arasında şifresiz SSH oturum açma bilgilerini yapılandırdım, bu nedenle kullanıcı yöneticisinin şifresini istemedi.

ssh [email   

Yerel SSH Bağlantı Noktası Yönlendirme

Bu tür bağlantı noktası iletme, yerel bilgisayarınızdan uzak bir sunucuya bağlanmanıza olanak tanır. Kısıtlayıcı bir güvenlik duvarının arkasında olduğunuzu veya uzak sunucunuzdaki 3000 bağlantı noktasında çalışan bir uygulamaya erişiminizin giden bir güvenlik duvarı tarafından engellendiğini varsayalım.

Uygulamaya yerel olarak erişmek için kullanabileceğiniz yerel bir bağlantı noktasını (ör. 8080) aşağıdaki gibi iletebilirsiniz. -L bayrağı, uzak ana bilgisayara ve uzak bağlantı noktasına iletilen bağlantı noktasını tanımlar.

ssh [email  -L 8080:server1.example.com:3000

-N bayrağını eklemek, uzaktan komut çalıştırmamak anlamına gelir; bu durumda bir kabuk alamazsınız.

ssh -N [email  -L 8080:server1.example.com:3000

-f anahtarı ssh'nin arka planda çalışmasını bildirir.

ssh -f -N [email  -L 8080:server1.example.com:3000

Şimdi, yerel makinenizde bir tarayıcı açın; uzak uygulamaya sunucu1.example.com:3000 adresini kullanarak erişmek yerine, localhost:8080 adresini kullanabilirsiniz veya 192.168.43.31:8080, aşağıdaki ekran görüntüsünde gösterildiği gibi.

Uzaktan SSH Bağlantı Noktası Yönlendirme

Uzaktan bağlantı noktası iletme, uzak makinenizden yerel bilgisayara bağlanmanıza olanak tanır. Varsayılan olarak SSH, uzaktan bağlantı noktası iletilmesine izin vermez. Bunu, uzak ana makinedeki SSHD ana yapılandırma dosyanızdaki /etc/ssh/sshd_config içindeki GatewayPorts yönergesini kullanarak etkinleştirebilirsiniz.

Favori komut satırı düzenleyicinizi kullanarak dosyayı düzenlemek üzere açın.

sudo vim /etc/ssh/sshd_config 

Gerekli yönergeyi arayın, açıklamasını kaldırın ve değerini ekran görüntüsünde gösterildiği gibi evet olarak ayarlayın.

GatewayPorts yes

Değişiklikleri kaydedin ve çıkın. Daha sonra, yaptığınız son değişikliği uygulamak için sshd'yi yeniden başlatmanız gerekir.

sudo systemctl restart sshd
OR
sudo service sshd restart 

Daha sonra uzak makinedeki 5000 bağlantı noktasını yerel makinedeki 3000 bağlantı noktasına iletmek için aşağıdaki komutu çalıştırın.

ssh -f -N [email  -R 5000:localhost:3000

Bu tünelleme yöntemini anladığınızda, yerel bir geliştirme sunucusunu, özellikle NAT'ların ve güvenlik duvarlarının arkasında, güvenli tüneller üzerinden kolayca ve güvenli bir şekilde İnternet'e açabilirsiniz. Ngrok, pagekite, localtunnel ve daha pek çok tünel benzer şekilde çalışır.

Dinamik SSH Bağlantı Noktası Yönlendirme

Bu üçüncü tip port yönlendirmedir. Tek bir bağlantı noktasıyla iletişime izin veren yerel ve uzaktan bağlantı noktası yönlendirmenin aksine, çeşitli bağlantı noktaları üzerinden tam kapsamlı TCP iletişimini mümkün kılar. Dinamik bağlantı noktası yönlendirme, makinenizi varsayılan olarak 1080 bağlantı noktasını dinleyen bir SOCKS proxy sunucusu olarak ayarlar.

Yeni başlayanlar için SOCKS, bir istemcinin bir proxy sunucu (bu durumda SSH) aracılığıyla bir sunucuya nasıl bağlanabileceğini tanımlayan bir İnternet protokolüdür. -D seçeneğini kullanarak dinamik bağlantı noktası yönlendirmeyi etkinleştirebilirsiniz.

Aşağıdaki komut, uzak ana bilgisayara bağlanmanıza olanak tanıyan 1080 bağlantı noktasında bir SOCKS proxy'si başlatacaktır.

ssh -f -N -D 1080 [email 

Artık makinenizdeki uygulamaların, ayarlarını düzenleyerek ve uzak sunucunuza bağlanmak için bu SSH proxy sunucusunu kullanacak şekilde yapılandırarak, bu SSH proxy sunucusunu kullanmasını sağlayabilirsiniz. SSH oturumunuzu kapattıktan sonra SOCKS proxy'sinin çalışmayı durduracağını unutmayın.

Ayrıca Okuyun: SSH Kapatıldıktan Sonra Uzak SSH Oturumlarının Devam Etmesini Sağlamanın 5 Yolu

Özet

Bu makalede, trafiği güvenli SSH bağlantısı üzerinden tünellemek için bir makineden diğerine çeşitli bağlantı noktası yönlendirme türlerini açıkladık. Bu, SSH'nin birçok kullanımından biridir. Aşağıdaki geri bildirim formunu kullanarak bu kılavuza kendi sesinizi ekleyebilirsiniz.

Dikkat: SSH bağlantı noktası yönlendirmenin bazı önemli dezavantajları vardır; kötüye kullanılabilir: ağ izleme ve trafik filtreleme programlarını (veya güvenlik duvarlarını) atlamak için kullanılabilir. Saldırganlar bunu kötü amaçlı faaliyetler için kullanabilir. Bir sonraki yazımızda SSH yerel port yönlendirmenin nasıl devre dışı bırakılacağını göstereceğiz. Bağlı kalın!