OpenSSH İLE ÖZGÜR OLUN!..

OpenSSH_logo
"Don't tell anyone that I'm free"

SSH, Telnet ve rlogin gibi ağ üzerindeki başka bir sunucuya uzakta bulunan bir başka makineden bağlantı sağlayan bir protokoldür. SSH açık haliyle Secure Shell yani güvenli kabuk anlamına gelir. Telnet ve rlogin kullanıcı şifreleri dahil tüm iletişim açık yani şifrelenmeden gerçekleştirilirken, SSH güvensiz makineler arasındaki iletişimi güçlü bir kriptografik yöntemiyle şifreler.i

SSH(Secure Shell) Wikipedia’da yukarıdaki şekilde tanımlanmış. Benim tanımım ise şöyle SSH yani Türkçe’ye çevirecek olursak “güvenli kabuk” iki uzak sunucu arasındaki iletişimi veya istemci-sunucu arasındaki bağlantıyı güvenli bir şekilde sağlayan protokoldür.

Peki ama neden kullanalım?

Başıma gelen bir olaydan örnek vereyim. “Astronomi’de Modelleme” dersinde bir çift yıldız sisteminin fiziksel parametrelerini hepimiz belirtilen süreye kadar çözüp sunum şeklinde sunacaktık. Günler süren çabalar sonucu çözümümüz tamam ve sunumumuz hazırdı. Ben sunmak için çıktığımda sunumum vardı yanımda ama, çözümü yaptığım hesap tabloları ve materyaller yoktu! Maalesef hepsini evde unutmuştum… Neyse ki sunumumda tabloların ekran görüntüsü olduğundan paçayı yırtmıştım… Ama daha kötüsü de olabilirdi. Ya daha kötüsü olsaydı diye düşünelim. Hoca ille de bana hesap tablolarını vereceksin ben anlamam deseydi ne yapacaktık? Okuldan eve mi gidecektik o dakikada? Ya da uçacak mıydık? Elbette hayır. İşte burada yapacağımız şey hocadan ve dinleyicilerden “1 dk izin alıp” eğer evimize daha önceden Open-SSH-Server kurmuşsak, kısa sürede ihtiyacımız olan dosyaları, sunum yapacağımız bilgisayarımıza aktarabileceğiz hemde maksimum güvenlikle!

Evet! SSH’ın nasıl bir şey olduğu anlaşıldı gibi… Şimdi gelin sistemlerimize kuralım;)

Pardus 2009.2 için ;

Paket Yöneticisi’nden “openssh” aratarak kurabilirsiniz. Ya da Terminalde ;

# pisi it openssh

Ubuntu 10.04 ve BackTrack 4 için Terminal’de ;

# sudo apt-get install ssh

komutunu verin o sizin için herşeyi halledecektir…

Evet kurulum tamamlandı. Open SHH Sunucumuzu yeniden başlatalım.

Pardus için Pardus> Sistem> Servis Yöneticisi‘ni kullanabilirsiniz. Ya da Terminalde;

professor-pardus ~ # service openssh  restart

openssh durduruluyor

openssh başlatılıyor

Ubuntu 10.04 ve BackTrack 4 için Terminal’de ;

# sudo /etc/init.d/sshd restart

Şimdi kurulum tamamlandı ama güvenliğimizi had safhada sağlamak için birtakım konfigurasyonlar yapacağız.

Root olunuz;

# nano /etc/ssh/sshd_config

Bu config dosyasının içerisinde SSH’a hangi porttan erişileceğine ve kimlerin nasıl haklarla erişeceğine dair pek çok ayar bulunmakta, düzenleyelim.

  • İlk düzenlememiz gereken SSH’a erişim yapılacak port numarası. Bunu düzenlememiz önemli çünkü SSH’a öntanımlı olarak port 22 üzerinden erişim yapılır. Port numarasını değiştirirsek , bağlantı yapacağımız portu sadece biz bileceğimizden daha güvenli bir erişim sağlamış oluruz.

Bunun için;

#Port 22 satırını bulunuz. Başında “#” olmamasına dikkat ederek istediğiniz bir port numarası yazınız. Örn: Port 1453

  • Root login‘e izin vermeyelim veya kullanım amacımıza göre izin vermek size kalmış… Ben “no” olarak ayarladım. Ama dikkatli olmak gerek, root olarak erişen birisi başımaza hertürlü çorabı örebilir;
# Authentication:

#LoginGraceTime 2m

PermitRootLogin no

#StrictModes yes

#MaxAuthTries 6

#MaxSessions 10
  • Ve ben son olarak SSH ile kimlerin bağlanabileceğini belirttim. Bunun için en son satıra gelip
AllowUsers kullanici

dedim. Bağlantı için SHH hazır. Şimdi Ctrl+X ve E, Enter tuşlarına basarak nano ile dosyayı kaydedelim.

Eveet her şey hazır ama bu konfigürasyonlarla sadece yerel ağ üzerinden erişim sağlayabiliriz. Gerçekten uzaktan nasıl bağlantı kuracağız?

Bildiğimiz üzere çoğumuzun evindeki internet dinamik IP üzerine kurulu… Yani bizim her zaman modemimize servis sağlayıcımız tarafından atanan IP’i yi bilmemiz gerekir ki bağlantıyı sağlayalım. Bunu şu şekilde sağlayabiliriz. Modemimize atanan IP’i takip eden, ücretsiz servis sağlayıcılarla bu sorunu çözebiliriz. DynDNS.com bunlardan biri.. http://www.dyndns.com/ sitesinden bir hesap alıp, ilk etapta “Offline Hostname” olarak bir Hostname(Örn: ornek_baglanti.dyndns.org) alın. Modemimizin web arayüzünden erişim yapıp, orada DDNS veya DynDNS (Dinamik DNS) sekmesinden kullanıcı adınızı, parolanızı ve Hostname’i ekleyiniz… Modemin uzaktan erişim sekmesinden, uzaktan erişimi ve herhangi bir ip’i işaretleyin. Kaydedin… NAT ayarlarının altından, Port yönlendirme seçeneği ile SSH port numarasınızı yazarak bağlanmak istediğiniz bilgisayarınızın YEREL IP adresini giriniz… Kaydediniz… Sürekli bu işlemleri yapmamak için modeminizin sabit IP atama sekmesinden makinanızın MAC adresini yazarak makinanıza istediğiniz yerel sabir IP atamasını mümkün kılabilirsiniz. (Not: Bu işlemlerin görsel olarak nasıl yapıldığını anlatan web üzerinde pek çok döküman bulabilirsiniz.)

Artık her yerden erişim için altyapımızı sağlamış olduk! Ama dikkat.

  • Modeminizi dışarıdan erişime açtığımız için güçlü bir parola koyunuz ve kimse ile paylaşmayınız!
  • Kesinlikle Hostname’inizi kimse ile paylaşmayınız.
  • Port numaranızı değiştiriniz kimseyle paylaşmayınız.
  • SSH’ı uzaktan erişim için, gerekmedikçe root moduna kapatınız.

Yukarıda saydıklarım güvenliğimizi sağlamak için genel şartlar. Daha fazla güvenlik için google size pek çok kaynak sunacaktır.

Peki bütün bu ayarlarımızı yaptık ama nasıl erişeceğiz?

En basit erişim şekli şöyle ;

# ssh kullanici_adi@IP-ADRESI -pPORT-NUMARASI

Yani bizim yukarıda oluşturduğumuz Hostname için şöyle;

#ssh kullanici@ornek_baglanti.dyndns.org -p1453 

Eğer ayarlamalarınız düzgün ise Dünya’nın her yerinden evinizdeki bilgisayara bağlanmanız mümküm;)

Bağlandıktan sonra, bağlandığınız sunucunun Terminal’ine düşeceksiniz. Gerisi size kalmış. Yönetimi nasıl sağlayacağınızı düşünmeyiniz. Linux komutları işinizi yine görecek;) Ama yine de merak ederseniz wiki her zaman ki gibi yardımımıza yetişiyor…

  • wget bulunduğunuz dizine download etmenizi sağlar
  • ls Dizinde bulunan herşeyi listeler.
  • ls -a Gizli dosyalar ve dizinlerle beraber listeler.
  • ls -l Bütün dosyaları boyut ve tarihini göstererek listeler.
  • tar -zxpf Uzantısı tar.gz olan sıkıştırılmış dosyaları açar.
  • tar -xpf Uzantısı .tar olan dosyaları açar.
  • gunzip Uzantısı .gz olan dosları açar.
  • cp Dosyayı kopyalar.
  • mv Bir dosyayı başka bir dizine taşımanızı sağlar ya da dosya adını değiştirir.
  • mkdir Yeni bir dizin oluşturmanızı sağlar.
  • rmdir Belirtilen dizini silmenizi sağlar.
  • rm Dosya silmenizi sağlar.
  • rm -rf Dizin silmenizi sağlar.
  • cd Belirtilen dizine geçmenizi sağlar.
  • cd .. Bir üst dizine geçmenizi sağlar.
  • cd ~ En üst dizine çıkmanızı sağlar.
  • pwd O anda bulunduğunuz dizini görüntüler.
  • pico Belirtilen dosyayı text editör ile düzenlemenizi sağlar.
  • ftp Belirtilen siteye FTP bağlantısı sağlar.
  • lynx Belirtilen siteyi görüntüler.
  • df Harddisk istatistiklerini gösterir.
  • quota Disk kullanımınızı gösterir.
  • uname İşletim sisteiminin durumunu gösterir.
  • whoami Kendi bilgilerinizi gösterir.
  • who Sunucuya bağlı olanları gösterir.
  • last Hesabınıza yapılan en son bağlantıyı gösterir.
  • whereis Belirtilen dosyanın nerede olduğunu gösterir.
  • BitchX IRC programını çalıştırır.
  • mail Postalarınızı kontrol eder.
  • ps -x Sizin çalıştırdığınız işlemleri gösterir.
  • ps -a Sunucuda çalıştırılan tüm işlemleri gösterir.
  • ps -ux Çalıştırılan işlemlerin CPU/RAM kullanımıyla gösterir.
  • kill Pid numarası verilen işlemi durdurur.
  • kill -9 Pid numarası verilen eggdrop işlemini durdurur.
  • killall Belirtilen program türündeki tüm işlemleri durdurur.
  • whatis Belirtilen komutun açıklamasını verir.
  • man Komut hakkında yardım görüntüler
  • passwd Shell hesabınıza girerken kullandığınız şifreyi değiştirmenizi sağlar.
  • vhosts ya da vhost Sistemde bulunan vhostları (virtual host) listeler.(BNC için kullanabilirsiniz)
  • ROOTMAKİNADAN İP ÖĞRENME: ip addr
  • ROOTTA HESAP AÇMAK : adduser login & chown mavigok /home/login & passwd pass1 , passwd pass2
  • reboot: Sunucuya restart atar
  • service mysql restart: mysql restart atar
  • service httpd restart: apache ye restart atar
  • service httpd stop : Sitelere ulaşımı kapatır
  • apf -d ipadresi : verilen ipe ban atar
  • service apf restart : apf ye restart atar
  • netstat -n : sunucuya baglanan ipleri gösterir
  • netstat -a sunucuya baglanan reseller ipleri gösterir(Proxy kullanmanız fark etmez her zaman gercek cıkış ipi görünür)
  • pico : ssh üzerinden text editor ile dosya içeriğini görme ve düzenlemeye yarar.
  • top : Sistem cpu kulalnımını gösterir.
  • uptime : Uptime Durumu ii

Evet, size evimizdeki bir bilgisayara nasıl bağlanacağımız husunda temel düzeyde bilgi vermeye çalıştım. SSH hakkında daha detaylı bilgiyi üstat Çağatay ÇEBİ’nin dökümanından yararlanarak bulabilirsiniz. “http://www.cagataycebi.com/linux/remote_access/remote_access.html” Bu adresten ayrıca Windows nev’i işletim sistemlerinden sunucunuza nasıl bağlanmanız gerektiği de anlatılmış. İncelemenizi öneririm.

Hepinize iyi çalışmalar diliyoum.

Yücel K.

REFERANSLAR:

  1. http://en.wikipedia.org/wiki/Secure_Shell
  2. http://tr.wikipedia.org/wiki/SSH
  3. http://www.cagataycebi.com/linux/remote_access/remote_access.html
  4. https://www.dyndns.com
  5. https://help.ubuntu.com/6.06/ubuntu/serverguide/C/openssh-server.html
  6. http://yamci.com

ihttp://tr.wikipedia.org/wiki/SSH

iihttp://tr.wikipedia.org/wiki/SSH