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:
- Yerel Ana Bilgisayar: 192.168.43.31
- 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!