Linux SSH Yönlendirme

Merhabalar,

Başlık biraz karışık ama bu yazımda size linux yüklü, interneti olmayan bilgisayarınıza, interneti olan bilgisayarınız üzerinden bağlanmayı anlatmaya çalışıcam.

Senaryo biraz karmaşık oldu ama Örneklersem daha rahat anlayacaksınızdır.

Bir datacenterdan iki adet server aldığımızı düşünelim. Bunlardan birinde internet bağlantısı olsun (server1), diğerinde internet bağlantısı olmayıp (server2), server1 ile ağ üzerinden birbirlerini gördüğünü düşünelim.

“Böyle bir yapıya neden ihtiyacım olsun ?” diye düşünüyorsanız şöyle özetleyeyim;

Biri database server olsun internete ihtiyacı yok, bu sayede hem daha güvenli hem verimli olur. Diğeri ise hosting serverınız olsun.

Bu şekilde daha netleşti değil mi?

Bu gibi durumda yapabileceğiniz tek şey: Ya ilk server’a gnome gibi bir arayüz ve vnc server kurup onun üzerinden bağlanmak ya da iptables ile yönlendirme yaparak ikinci makinaya birinci makina üzerinden bağlanmak.

Biz şimdilik 2. yolu tercih edip gerekli işlemleri yapıcaz.

Bunun için öncelikle server1’de port putty ile bağlandıktan sonra yönlendirmeyi aktifleştiriyoruz; echo '1' > /proc/sys/net/ipv4/conf/eth0/forwarding Şeklinde.

Burada önemli nokta eğer internete bağlandığınız ağ sürücüsü eth0 değil ise onu değiştirmeniz gerekiyor.

Hangi ethernet kartı ile ağa bağlandığınızı putty üzerinden; ifconfig diyerek öğrenebilirsiniz.

Yönlendirmeyi aktifleştirdikten sonra yapmanız gereken tek işlem iptableste sırasıyla;

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2424 -j DNAT --to-destination 10.0.0.2:22
iptables -t nat -A POSTROUTING -o eth1 -p tcp --dport 22 -j SNAT --to-source 10.0.0.1
service iptables save
service iptables restart

Buradaki değişkenleri açıklayacak olursak.

  1. satır için; Genel anlamda yapılan ayar şu yönde. eth0 üzerinden, 2424 portuna gelen tüm istekleri 10.0.0.2 IP’li bilgisayarın 22 portuna yönlendir. eth0: Server1 bilgisayarımızın internete bağlandığı ağ bağdaştırıcı. –dport 2424: Server1’e hangi porttan bağlandığınızda server2’nin ssh’ne bağlanacağınızı belirten port. Buradaki 2424’ü dilediğiniz gibi değiştirebilirsiniz. Yalnız dikkat etmeniz gereken şöyle bir husus var. 23,21,25,80 vs.. gibi sistem tarafından kullanılan portları vermemeniz gerekiyor. 10.0.0.2:22: Server2’nin IP adresi ve portu. 22 bildiğiniz gibi ssh için bağlantı portudur serverda manuel bir değişiklik yapmadıysanız porta müdahale etmeden IP adresini değiştirmeniz yeterlidir.

2.satır için ise; Genel olarak: eth1 ağ bağdaştırıcısı üzerinden, 10.0.0.1 IP’li makinaya gelen istekleri 22 portundan yönlendir anlamına geliyor. eth1: Server1 ile Server2’yi birbirine bağlayan ağ bağdaştırıcısının ismi. Bunu server1 üzerinden ifconfig dediğinizde zaten görebileceksiniz. Önemli olan nokta bu ağ bağdaştırıcısını server2 üzerinden almayacaksınız. Yani sizin ayarlarınız sadece server1 üzerindeki ifconfig değerlerine göre işlem görecek. server2’de bağdaştırıcının adı farklı olabilir. O şu anda önemli değil. –dport 22: amacımız 22 portuna gelen istekleri kabul yönlendirmek olduğu için bu alana müdahale etmiyoruz. –to-source 10.0.0.1: Server1’in local IP adresi. Bunu zaten ifconfig dediğimizde eth1’in karşısında görüyor olacağız.

Tüm bu ayarları yaptıysak putty üzerinden 94.x.x.x:2424 portundan bağlanmayı denediğimizde Server2’ye erişiyor olmamız gerekmekte. 94.x.x.x kısmı sizin de tahmin ettiğiniz gibi makinanızın dış IP adresi.

Sormak istediğiniz herhangi bir soru olması durumunda yorum yazarsanız yardımcı olabilirim.