Takip et

SSH Tünelleme Nedir ve Bir VPS Üzerinde Nasıl Kurulur?

SSH Tünelleme Nedir ve Bir VPS Üzerinde Nasıl Kurulur? İnternet dünyasında güvenlik, gizlilik ve esneklik, hem bireysel kullanıcılar hem de

SSH Tünelleme Nedir ve Bir VPS Üzerinde Nasıl Kurulur?

İnternet dünyasında güvenlik, gizlilik ve esneklik, hem bireysel kullanıcılar hem de kurumsal yapılar için temel önceliklerdir. Bu ihtiyaçları karşılamak üzere geliştirilen birçok teknoloji arasında, SSH (Secure Shell) tünelleme, sağladığı güçlü şifreleme ve port yönlendirme yetenekleri ile öne çıkmaktadır. Bir Sanal Özel Sunucu (VPS) üzerinde SSH tünelleme kurmak, internet trafiğinizi güvenli bir şekilde yönlendirmenin, güvenlik duvarı kısıtlamalarını aşmanın ve uzak ağlara güvenli erişim sağlamanın etkili bir yoludur. Bu makalede, SSH tünellemenin ne olduğunu, neden kullanılması gerektiğini, farklı tünelleme türlerini ve bir VPS üzerinde adım adım nasıl kurulacağını ayrıntılı bir şekilde inceleyeceğiz.

SSH Tünellemeye Giriş

SSH, uzak bir bilgisayara güvenli bir şekilde bağlanmayı sağlayan bir ağ protokolüdür. Geleneksel olarak komut satırı arayüzüne erişim için kullanılan SSH, aynı zamanda veri transferi, uzak komut çalıştırma ve en önemlisi, ağ trafiğini şifreleyerek tünelleme yapma gibi yeteneklere de sahiptir. SSH tünelleme, temelde, bir ağ bağlantısı üzerinden başka bir ağ bağlantısını şifreli bir şekilde taşımak anlamına gelir. Bu, bir tünel oluşturarak, normalde güvensiz veya kısıtlı olan bir bağlantıyı SSH’in güvenli katmanı üzerinden geçirmeyi sağlar.

Bir VPS, bu tünelleme işlemi için ideal bir ara sunucu görevi görür. Kendi VPS’iniz üzerinde bir SSH sunucusu çalıştırmak, internet üzerindeki trafiğinizi bu sunucu üzerinden yönlendirerek hem gizliliğinizi artırır hem de coğrafi kısıtlamaları aşmanıza olanak tanır.

Temel Kavramlar

SSH tünellemenin inceliklerine dalmadan önce, bazı temel kavramları anlamak önemlidir:

SSH Protokolü

SSH (Secure Shell), şifrelenmiş bir ağ protokolüdür. İstemci-sunucu mimarisiyle çalışır ve uzak bir bilgisayarın komut satırı arayüzüne güvenli erişim sağlar. Tüm iletişim şifrelenir, bu da dinleme ve ortadaki adam (Man-in-the-Middle) saldırılarına karşı koruma sağlar. Kimlik doğrulama genellikle parola veya SSH anahtar çiftleri (public-private key pair) kullanılarak yapılır.

Port Yönlendirme (Port Forwarding)

Port yönlendirme, bir ağ portuna gelen trafiği başka bir port veya IP adresine yönlendirme işlemidir. SSH tünelleme, bu port yönlendirme mekanizmasını kullanarak farklı türlerde tüneller oluşturur:

* Yerel Port Yönlendirme (Local Port Forwarding): Kendi yerel makinenizdeki bir portu, SSH sunucusu üzerinden uzak bir hedefe yönlendirir.
* Uzak Port Yönlendirme (Remote Port Forwarding): Uzak (SSH sunucusu) makinedeki bir portu, SSH istemcisi üzerinden yerel bir hedefe yönlendirir.
* Dinamik Port Yönlendirme (Dynamic Port Forwarding / SOCKS Proxy): Yerel makinenizde bir SOCKS proxy oluşturur. Bu proxy üzerinden geçen tüm trafik, SSH sunucusu üzerinden yönlendirilir ve hedefi dinamik olarak belirlenir.

Neden SSH Tünelleme Kullanmalıyız?

SSH tünelleme, çeşitli senaryolarda oldukça faydalı olabilir:

Güvenlik ve Gizlilik

SSH tünelleme, tüm trafiği şifreleyerek internet servis sağlayıcınızın (İSS) veya halka açık Wi-Fi ağlarındaki kötü niyetli kişilerin verilerinizi dinlemesini engeller. Özellikle hassas verilerle çalışırken veya güvensiz ağlarda gezinirken bu, kritik bir güvenlik katmanı sağlar. Trafiğiniz VPS üzerinden geçtiği için, hedef sunucular sizin gerçek IP adresinizi değil, VPS’inizin IP adresini görür.

Güvenlik Duvarı Kısıtlamalarını Aşma

Bazı ağlar (şirket ağları, okul ağları vb.) belirli portları veya web sitelerini engelleyebilir. SSH tünelleme, bu kısıtlamaları aşmanıza olanak tanır. Örneğin, bir web sitesi veya bir veritabanı sunucusu portu engellenmişse, trafiği SSH’in standart portu (genellikle 22) üzerinden tünelleyerek bu engelleri aşabilirsiniz.

İç Ağlara Güvenli Erişim

Eğer şirketinizin veya ev ağınızın içinde sadece yerel olarak erişilebilen servisleriniz varsa (örneğin, bir intranet sitesi, bir veritabanı veya bir ağ depolama birimi), bir VPS’i atlama noktası olarak kullanarak bu servislere uzaktan güvenli bir şekilde erişebilirsiniz. VPS, iç ağınız ile dış dünya arasında güvenli bir köprü görevi görür.

Geliştirme ve Test Ortamları

Geliştiriciler, yerel makinelerinde çalışan uygulamaların uzaktaki bir veritabanına, API’ye veya başka bir servise güvenli bir şekilde bağlanması gerektiğinde SSH tünellemeyi kullanabilirler. Bu, özellikle hassas verilerin test ortamlarına taşınmasını gerektiren durumlarda veri güvenliğini artırır.

Coğrafi Kısıtlamaları Aşma

Bazı web siteleri veya çevrimiçi servisler, belirli coğrafi bölgelerdeki kullanıcılara erişimi kısıtlar. SSH tünellemeyi kullanarak, trafiğinizi farklı bir coğrafi konumdaki VPS’iniz üzerinden yönlendirerek bu kısıtlamaları aşabilir ve içeriğe erişebilirsiniz.

Ön Koşullar

Bir VPS üzerinde SSH tünelleme kurmak için aşağıdaki ön koşullara ihtiyacınız olacaktır:

1. Bir VPS (Sanal Özel Sunucu): Linux tabanlı (Ubuntu, CentOS, Debian vb.) bir VPS’e ihtiyacınız var. Bu sunucuya SSH erişiminizin olması gerekmektedir.
2. SSH Erişimi Olan Bir Kullanıcı: VPS’inize bağlanmak için bir kullanıcı adı ve parolası veya daha güvenlisi, bir SSH anahtar çifti (public/private key) olmalıdır. Bu kullanıcının root yetkilerine veya sudo yetkilerine sahip olması, bazı yapılandırmalar için faydalı olacaktır.
3. SSH İstemcisi: Yerel makinenizde bir SSH istemcisi yüklü olmalıdır.
* Linux/macOS: Genellikle dahili olarak gelir (terminalden ssh komutu).
* Windows: PuTTY gibi üçüncü taraf bir istemci veya Windows Subsystem for Linux (WSL) kullanabilirsiniz.
4. Temel Terminal Bilgisi: Komut satırında temel düzeyde işlem yapabilme yeteneği.

SSH Tünelleme Türleri ve Kurulumu

Şimdi, SSH tünellemenin üç ana türünü ve bunları bir VPS üzerinde nasıl kuracağımızı adım adım inceleyelim.

1. Yerel Port Yönlendirme (Local Port Forwarding)

Yerel port yönlendirme, en yaygın kullanılan SSH tünelleme türüdür. Bu yöntemde, yerel makinenizdeki belirli bir portu, SSH sunucusu (VPS’iniz) üzerinden uzak bir hedefe (genellikle VPS’in erişebildiği başka bir sunucu veya VPS’in kendisi üzerinde çalışan bir servis) yönlendirirsiniz.

Senaryo: Yerel makinenizden, doğrudan erişemediğiniz uzak bir veritabanına (örneğin, VPS’in iç ağında veya güvenlik duvarı arkasında bulunan bir MySQL sunucusu) güvenli bir şekilde bağlanmak istiyorsunuz.

Komut Yapısı:

ssh -L [yerel_port]:[hedef_ip_veya_hostname]:[hedef_port] [kullanıcı]@[vps_ip_veya_hostname]

* [yerel_port]: Yerel makinenizde açılacak port. Bu port üzerinden tünele bağlanacaksınız. Genellikle 1024’ten büyük bir port seçilir.
* [hedef_ip_veya_hostname]: SSH sunucusunun (VPS) erişebildiği, ulaşmak istediğiniz gerçek hedefin IP adresi veya hostname’i. Bu, VPS’in kendisi (localhost veya 127.0.0.1) veya VPS’in iç ağındaki başka bir sunucu olabilir.
* [hedef_port]: Ulaşmak istediğiniz hedefin dinlediği port.
* [kullanıcı]: VPS’inize bağlanmak için kullanacağınız kullanıcı adı.
* [vps_ip_veya_hostname]: VPS’inizin IP adresi veya hostname’i.

Örnek Uygulama:

Diyelim ki VPS’inizde 192.168.1.100 IP adresine sahip bir sunucuda çalışan bir MySQL veritabanına (port 3306) erişmek istiyorsunuz. Bu MySQL sunucusu sadece VPS’in iç ağından erişilebilir durumda.

ssh -L 9906:192.168.1.100:3306 user@your_vps_ip

Bu komutu çalıştırdıktan sonra:

1. VPS’inize user kullanıcısı ile SSH bağlantısı kurulur.
2. Yerel makinenizde 9906 portu açılır.
3. Yerel makinenizdeki localhost:9906 adresine gönderilen tüm trafik, SSH tüneli üzerinden your_vps_ip adresine ulaşır.
4. VPS, bu trafiği 192.168.1.100 adresindeki 3306 portuna yönlendirir.

Artık yerel makinenizdeki herhangi bir MySQL istemcisi ile localhost:9906 adresine bağlanarak, aslında 192.168.1.100:3306 adresindeki uzak MySQL sunucusuna güvenli bir şekilde erişebilirsiniz.

Ek Seçenekler:

* -N: Uzak komut çalıştırmaz, sadece port yönlendirme yapar. Bu, tüneli arka planda çalıştırmak için kullanışlıdır.
* -f: SSH bağlantısını arka plana atar. Bu, tüneli başlattıktan sonra terminali serbest bırakır.
* -q: Sessiz mod, uyarı ve tanı mesajlarını bastırır.
* -o ExitOnForwardFailure=yes: Port yönlendirme başarısız olursa SSH bağlantısını sonlandırır.

Örnek Arka Planda Çalıştırma:

ssh -fN -L 9906:192.168.1.100:3306 user@your_vps_ip

Bu komut, tüneli arka planda sessizce başlatır. Tüneli kapatmak için, ilgili SSH işlemini bulup sonlandırmanız gerekir (ps aux | grep ssh ve kill [PID]).

2. Uzak Port Yönlendirme (Remote Port Forwarding)

Uzak port yönlendirme, yerel port yönlendirmesinin tersidir. Bu yöntemde, SSH sunucunuzdaki (VPS’inizdeki) bir portu, SSH istemcisi (yerel makineniz) üzerinden yerel makinenizdeki veya yerel ağınızdaki bir hedefe yönlendirirsiniz.

Senaryo: Yerel makinenizde çalışan bir web sunucunuz (örneğin, bir geliştirme sunucusu) var ve bu sunucuya dışarıdan (internet üzerinden) erişilmesini istiyorsunuz, ancak yerel ağınız bir güvenlik duvarı arkasında veya NAT arkasında.

Komut Yapısı:

ssh -R [uzak_port]:[hedef_ip_veya_hostname]:[hedef_port] [kullanıcı]@[vps_ip_veya_hostname]

* [uzak_port]: VPS’inizde açılacak port. Dışarıdan bu port üzerinden tünele bağlanılacak.
* [hedef_ip_veya_hostname]: Yerel makinenizin erişebildiği, ulaşmak istediğiniz gerçek hedefin IP adresi veya hostname’i. Bu genellikle localhost veya 127.0.0.1 (yerel makinenizin kendisi) olacaktır.
* [hedef_port]: Ulaşmak istediğiniz hedefin (yerel servisinizin) dinlediği port.
* [kullanıcı]: VPS’inize bağlanmak için kullanacağınız kullanıcı adı.
* [vps_ip_veya_hostname]: VPS’inizin IP adresi veya hostname’i.

Örnek Uygulama:

Diyelim ki yerel makinenizde localhost:8000 adresinde çalışan bir web sunucunuz var ve bu sunucuya your_vps_ip:8080 üzerinden internetten erişilmesini istiyorsunuz.

ssh -R 8080:localhost:8000 user@your_vps_ip

Bu komutu çalıştırdıktan sonra:

1. VPS’inize user kullanıcısı ile SSH bağlantısı kurulur.
2. VPS’inizde 8080 portu açılır.
3. İnternet üzerindeki herhangi biri your_vps_ip:8080 adresine bağlandığında, bu trafik SSH tüneli üzerinden yerel makinenize ulaşır.
4. Yerel makineniz, bu trafiği localhost:8000 adresindeki web sunucunuza yönlendirir.

Artık internetten http://your_vps_ip:8080 adresine bağlanarak yerel makinenizdeki web sunucusuna erişebilirsiniz.

Önemli Not: GatewayPorts Ayarı

Uzak port yönlendirmesinin dışarıdan erişilebilir olması için, VPS’inizin SSH sunucu yapılandırmasında (/etc/ssh/sshd_config dosyası) GatewayPorts ayarının yes olarak ayarlanması gerekebilir. Varsayılan olarak bu ayar no olabilir, bu da tünelin sadece VPS’in kendisi üzerinden erişilebilir olacağı anlamına gelir (localhost:8080 gibi).

1. VPS’inize SSH ile bağlanın.
2. sshd_config dosyasını bir metin düzenleyici ile açın:

sudo nano /etc/ssh/sshd_config

3. Dosya içinde GatewayPorts satırını bulun. Eğer yoksa, ekleyin. Eğer yorum satırı olarak (başında # işareti ile) varsa, # işaretini kaldırın ve değerini yes yapın:

GatewayPorts yes

4. Değişiklikleri kaydedip çıkın.
5. SSH servisini yeniden başlatın:

sudo systemctl restart sshd

Bu ayar yapıldıktan sonra, uzak port yönlendirme ile açtığınız portlara VPS’inizin dış IP adresi üzerinden erişim sağlanabilir.

3. Dinamik Port Yönlendirme (Dynamic Port Forwarding / SOCKS Proxy)

Dinamik port yönlendirme, yerel makinenizde bir SOCKS proxy sunucusu oluşturur. Bu proxy üzerinden geçen tüm trafik, SSH sunucusu (VPS’iniz) üzerinden yönlendirilir. Bu yöntem, belirli bir port veya hedef yerine, tüm uygulama trafiğini tünelleyebilme esnekliği sunar.

Senaryo: Tüm web tarayıcı trafiğinizi veya belirli uygulamaların trafiğini şifreleyerek ve VPS’inizin IP adresi üzerinden yönlendirerek gizliliğinizi artırmak, coğrafi kısıtlamaları aşmak veya güvenlik duvarı engellerini toplu olarak bypass etmek istiyorsunuz.

Komut Yapısı:

ssh -D [yerel_socks_port] [kullanıcı]@[vps_ip_veya_hostname]

* [yerel_socks_port]: Yerel makinenizde açılacak SOCKS proxy portu. Genellikle 1080 veya 8080 gibi portlar kullanılır, ancak çakışmayı önlemek için 1024’ten büyük bir port (örneğin, 8888) seçmek daha iyidir.
* [kullanıcı]: VPS’inize bağlanmak için kullanacağınız kullanıcı adı.
* [vps_ip_veya_hostname]: VPS’inizin IP adresi veya hostname’i.

Örnek Uygulama:

ssh -D 8888 user@your_vps_ip

Bu komutu çalıştırdıktan sonra:

1. VPS’inize user kullanıcısı ile SSH bağlantısı kurulur.
2. Yerel makinenizde 8888 portunda bir SOCKS proxy sunucusu çalışmaya başlar.
3. Artık, uygulamalarınızı veya web tarayıcınızı bu SOCKS proxy’sini kullanacak şekilde yapılandırabilirsiniz.

Tarayıcı Ayarları (Örnekler):

* Firefox:
1. Ayarlar’a gidin.
2. “Ağ Ayarları”nı arayın ve “Ayarlar…” düğmesine tıklayın.
3. “Vekil Sunucuyu Elle Ayarla” seçeneğini işaretleyin.
4. “SOCKS Host” alanına 127.0.0.1 yazın ve “Port” alanına 8888 (veya sizin belirlediğiniz port) yazın.
5. “SOCKS v5” seçeneğini işaretleyin.
6. “Uzak DNS’i kullan” (Proxy DNS) seçeneğini işaretlemek, DNS sorgularınızın da tünel üzerinden gitmesini sağlayarak ek gizlilik sağlar.
7. Değişiklikleri kaydedin.

* Google Chrome: Chrome’un kendi içinde SOCKS proxy ayarı yoktur. Genellikle işletim sisteminin proxy ayarlarını kullanır veya “SwitchyOmega” gibi bir tarayıcı eklentisi kullanmanız gerekir.
* İşletim Sistemi Genelinde: Windows’ta “Proxy ayarları”na, macOS’ta “Ağ Ayarları”na giderek SOCKS proxy’sini 127.0.0.1:[yerel_socks_port] olarak ayarlayabilirsiniz.
* SwitchyOmega Eklentisi: Bu eklentiyi kurduktan sonra, yeni bir profil oluşturup “SOCKS5” türünü seçin, sunucu olarak 127.0.0.1 ve port olarak 8888‘i girin. Daha sonra bu profili etkinleştirerek trafiğinizi tünel üzerinden yönlendirebilirsiniz.

Bu ayarları yaptıktan sonra, tarayıcınızdan veya yapılandırdığınız uygulamadan çıkan tüm internet trafiği, yerel makinenizdeki SOCKS proxy’sine, oradan SSH tüneli üzerinden VPS’inize ve nihayetinde hedefe ulaşacaktır. Hedef sunucu, sizin gerçek IP adresiniz yerine VPS’inizin IP adresini görecektir.

VPS Üzerinde SSH Sunucusu Ayarları

SSH tünellemenin düzgün çalışması için VPS’inizdeki SSH sunucu yapılandırmasını (sshd_config) kontrol etmek ve gerektiğinde düzenlemek önemlidir. Bu dosya genellikle /etc/ssh/sshd_config konumunda bulunur.

1. Dosyayı Açma:

sudo nano /etc/ssh/sshd_config

2. Önemli Ayarlar:

* AllowTcpForwarding yes: Bu ayar, TCP port yönlendirmesine (yerel, uzak ve dinamik) izin verilip verilmediğini kontrol eder. Varsayılan olarak yes olmalıdır, ancak no olarak ayarlanmışsa tünelleme çalışmaz. Bu satırın başında # işareti olmadığından ve değerinin yes olduğundan emin olun.
* GatewayPorts yes: Uzak port yönlendirme (-R seçeneği) ile açılan portların sadece VPS’in localhost arayüzünden değil, dış IP adresinden de erişilebilir olmasını sağlar. Eğer bu ayar no ise (varsayılan olabilir), uzak port yönlendirme ile açtığınız portlara sadece VPS’in kendisi erişebilir, dışarıdan erişilemez. Eğer dışarıdan erişim istiyorsanız, bu değeri yes yapmalısınız.
* PermitTunnel yes: Bu ayar, SSH protokolünün katman 2/3 tünellemeyi (VPN benzeri) destekleyip desteklemediğini kontrol eder. Bu makalenin odak noktası olan port yönlendirme için doğrudan gerekli değildir, ancak daha gelişmiş tünelleme senaryolarında (örneğin, ssh -w ile bir VPN oluşturma) faydalı olabilir.

3. Değişiklikleri Kaydetme ve Servisi Yeniden Başlatma:
Değişiklikleri yaptıktan sonra dosyayı kaydedin (nano’da Ctrl+O, Enter, Ctrl+X) ve SSH servisini yeniden başlatın:

sudo systemctl restart sshd

veya eski sistemlerde

sudo service sshd restart

Güvenlik İpuçları ve En İyi Uygulamalar

SSH tünelleme güçlü bir araç olsa da, güvenliğinizi sağlamak için bazı en iyi uygulamaları takip etmelisiniz:

1. SSH Anahtar Çiftleri Kullanın: Parola yerine SSH anahtar çiftleri (public/private key) kullanmak, kimlik doğrulamanın çok daha güvenli bir yoludur. Anahtar çiftleri, kaba kuvvet saldırılarına karşı çok daha dirençlidir. Parola ile girişi tamamen devre dışı bırakmayı düşünebilirsiniz (PasswordAuthentication no in sshd_config).
2. Güçlü Parolalar Kullanın: Eğer parola ile giriş yapmanız gerekiyorsa, uzun, karmaşık ve benzersiz parolalar kullanın.
3. Root İle Doğrudan Girişi Devre Dışı Bırakın: PermitRootLogin no ayarı ile root kullanıcısının doğrudan SSH üzerinden giriş yapmasını engelleyin. Bunun yerine, normal bir kullanıcı ile giriş yapın ve gerektiğinde sudo kullanın.
4. SSH Portunu Değiştirin: Varsayılan SSH portu olan 22’yi farklı, standart olmayan bir porta değiştirmek, otomatik botların ve kaba kuvvet saldırılarının hedefi olma olasılığınızı azaltır. (Port [yeni_port_numarası] in sshd_config).
5. Güvenlik Duvarı Kullanın: VPS’inizde bir güvenlik duvarı (UFW, firewalld) etkinleştirin ve sadece gerekli portlara (örneğin, yeni SSH portunuz, web sunucusu portları) erişime izin verin.
6. İki Faktörlü Kimlik Doğrulama (2FA): SSH girişleriniz için 2FA kurmak, ek bir güvenlik katmanı sağlar.
7. Fail2ban Kullanın: Fail2ban gibi araçlar, başarısız giriş denemelerini izler ve kötü niyetli IP adreslerini otomatik olarak engeller.
8. Gereksiz Tünelleri Kapatın: Kullanmadığınız SSH tünellerini açık bırakmayın. Bu, potansiyel güvenlik açıklarına yol açabilir ve sistem kaynaklarını tüketebilir.
9. VPS’inizi Güncel Tutun: İşletim sisteminizi ve tüm yazılımları düzenli olarak güncelleyerek bilinen güvenlik açıklarına karşı korunmuş olursunuz.

Sık Karşılaşılan Sorunlar ve Çözümleri

SSH tünelleme kurarken veya kullanırken bazı yaygın sorunlarla karşılaşabilirsiniz. İşte bunlardan bazıları ve çözümleri:

1. “Port already in use” (Port zaten kullanımda) Hatası:
* Sorun: Yerel veya uzak port yönlendirme yaparken, belirtilen portun zaten başka bir uygulama tarafından kullanılıyor olması.
* Çözüm: Başka bir port numarası deneyin. Örneğin, yerel port yönlendirme için 8000 yerine 8001 veya 9906 yerine 9907 kullanın. Linux/macOS’ta netstat -tulnp | grep [port] veya lsof -i :[port] komutları ile portu hangi uygulamanın kullandığını bulabilirsiniz.

2. “Connection refused” (Bağlantı reddedildi) Hatası:
* Sorun: SSH sunucusuna (VPS) veya tünel üzerinden erişmeye çalıştığınız hedefe bağlantı kurulamaması.
* Çözüm:
* VPS’e Bağlanamama:
* VPS’in çalışır durumda olduğundan ve SSH servisinin çalıştığından emin olun (sudo systemctl status sshd).
* VPS’in güvenlik duvarı (UFW, firewalld) SSH portuna (varsayılan 22) izin veriyor mu kontrol edin.
* sshd_config dosyasındaki ListenAddress ayarının doğru olduğundan emin olun (varsayılan olarak tüm arayüzleri dinler).
* Tünel Hedefine Bağlanamama:
* Hedef IP adresi ve portun doğru olduğundan emin olun.
* Hedef servisin (örneğin, MySQL sunucusu) çalıştığından emin olun.
* Hedef sunucunun veya VPS’in güvenlik duvarının, VPS’ten hedefe giden trafiğe izin verdiğinden emin olun.

3. Uzak Port Yönlendirme Dışarıdan Erişilemiyor:
* Sorun: -R ile açtığınız portlara VPS’in dış IP adresi üzerinden erişilemiyor, sadece localhost üzerinden erişilebiliyor.
* Çözüm: VPS’inizdeki /etc/ssh/sshd_config dosyasında GatewayPorts yes ayarını etkinleştirdiğinizden ve SSH servisini yeniden başlattığınızdan emin olun. Ayrıca, VPS’inizin güvenlik duvarının (UFW, firewalld) ilgili porta dışarıdan erişime izin verdiğinden emin olun.

4. Tünel Kendiliğinden Kapanıyor:
* Sorun: Uzun süre kullanılmayan SSH tünelleri, boşta kalma süresi (idle timeout) nedeniyle otomatik olarak kapanabilir.
* Çözüm: SSH istemci tarafında ServerAliveInterval ve ServerAliveCountMax seçeneklerini kullanın. Bu seçenekler, SSH istemcisinin belirli aralıklarla sunucuya boş bir paket göndermesini (keep-alive) sağlar.

ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=3 -L 9906:192.168.1.100:3306 user@your_vps_ip

Bu örnek, her 60 saniyede bir sunucuya bir “canlı tutma” mesajı gönderir ve 3 kez yanıt alamazsa bağlantıyı keser.
Daha kalıcı çözümler için autossh gibi araçları kullanabilirsiniz. autossh, SSH bağlantısı kesildiğinde otomatik olarak yeniden bağlanmayı dener.

5. PermitRootLogin Hatası:
* Sorun: PermitRootLogin no ayarı etkinleştirilmişken root kullanıcısı ile bağlanmaya çalışmak.
* Çözüm: Root yerine sudo yetkilerine sahip normal bir kullanıcı ile bağlanın.

Gelişmiş Kullanım Senaryoları

SSH tünelleme, yukarıda bahsedilen temel kullanımların ötesinde daha karmaşık senaryolar için de uyarlanabilir:

* autossh ile Kalıcı Tüneller: Sürekli aktif kalması gereken tüneller için autossh aracı idealdir. autossh, SSH bağlantısı kesildiğinde otomatik olarak yeniden bağlanmayı dener, bu da tünellerinizin kesintisiz çalışmasını sağlar.
* SSH ile VPN Benzeri Tüneller: ssh -w seçeneği ile katman 2/3 tüneller oluşturarak, SSH üzerinden daha çok bir VPN gibi çalışan bağlantılar kurmak mümkündür. Bu, ağ trafiğini daha derinlemesine yönlendirme yeteneği sunar ancak yapılandırması daha karmaşıktır ve OpenVPN veya WireGuard gibi özel VPN çözümlerinin yerini almaz.
* SSH Proxy Zincirleme: Birden fazla SSH sunucusu üzerinden tünel zincirleri oluşturarak daha karmaşık ağ geçişleri ve ek gizlilik katmanları sağlayabilirsiniz.

Sonuç

SSH tünelleme, internet üzerinde güvenli ve esnek bir şekilde ağ trafiği yönlendirme yeteneği sunan, paha biçilmez bir araçtır. Bir VPS üzerinde SSH tünelleme kurmak, hem kişisel gizliliğinizi korumanıza hem de ağ kısıtlamalarını aşmanıza olanak tanır. İster uzak bir veritabanına güvenli erişim sağlayın, ister yerel bir servisi internete açın, ister tüm tarayıcı trafiğinizi şifreleyin, SSH tünelleme size güçlü bir çözüm sunar.

Bu makalede ele alınan yerel, uzak ve dinamik port yönlendirme türleri, temelden gelişmişe doğru çeşitli ihtiyaçları karşılar. Doğru yapılandırma ve güvenlik uygulamalarıyla, SSH tünellemeyi günlük iş akışınızın ayrılmaz bir parçası haline getirebilir, dijital dünyada daha güvenli ve özgür hareket edebilirsiniz. Unutmayın, bu teknolojinin gücü, doğru anlaşılması ve uygulanmasıyla ortaya çıkar.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.