THT DUYURU

Linux Linux İle İlgili Bilgi Paylaşım Platformu

chat
Seçenekler

Linux'ta uzaktan erişim

Real9 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
11/2009
Mesajlar:
322
Konular:
294
Teşekkür (Etti):
0
Teşekkür (Aldı):
76
Ticaret:
(0) %
03-11-2009 19:16
#1
Linux'ta uzaktan erişim
Uzaktan erişim günümüzde oldukça önemli bir konu. Eskiden ev kullanıcılarının ilgilendiği bir saha değildi. Ancak Türkiye'de ADSL'in yaygınlaşmasıyla, bazı alışkanlıklarımız değişti. Artık bilgisayarımızı her an her yerden kontrol edebilmek istiyoruz. Gerektiğinde bilgisayarımıza erişip, bir şeyler kopyalayabilmek ya da önemli dosyalara erişmek icap ediyor. İsterseniz daha somut şekilde örnekleyelim; bir Internet bağlantınız olduğu takdirde, ofiste otururken evinizdeki bilgisayara girebilir ve en sevdiğiniz şarkıları, iş yerinde dinleyebilirsiniz. Bunu yapmak güzel olmaz mıydı? ADSL kullanıcıları için denemeye değer...
Neden Uzaktan Erişim?

Sunucu (server) yöneticileri, uzun süredir uzaktan erişim imkanlarını kullanmaktalar. Bir sunucu yönetiyorsanız, yapılması gereken her iş için makinenin başına gidemezsiniz; saat uygun değildir; fiziksel erişim imkanınız yoktur vs.... Sunucular herkesten tecrit edilmiş bir ortamda, genelde ekranı dahi olmadan çalışırlar. Üstelik çoğu zaman sizin bulunduğunuz binada dahi bulunmazlar. Bir Internet Servis Sağlayıcının tesislerinde, özel izinlerle girilen bir alanda tutulurlar. Hâl böyle olunca, uzaktan erişim bir seçenek değil, zorunluluk oluyor. Ancak ev kullanıcılara yönelirksek, böyle bir zorunlulukları olmadığı için uzaktan erişim onlar için yeni bir alan.
Linux daha doğrusu Unix tabanlı bütün işletim sistemleri (dilerseniz Unix klonları da diyebilirsiniz), gelişmiş uzaktan erişim imkanlarına sahiptir. Dünyanın neresinde olursanız olun, bilgisayarınızı sanki başında oturuyormuş gibi kullanabilirsiniz. Sorun çıkartabilecek tek şey, kullandığınız bağlantının hızı olabilir. Bunun da zamanla daha iyi hâle geleceğini düşünürsek, yakın bir tarihte, bilgisayarımızı her yerden yönetebileceğiz. Peki ev kullanıcısına bütün bunların faydası nedir? Yanıt aslında çok basit; teknolojiyle daha iç içe bir yaşam!
Evinizden uzaktayken, bilgisayarınıza ihtiyaç duymuşsunuzdur. Örneğin yeni yılın mali tablolarını hazırladığınız hâlde yanınızda getirmeyi unuttuğunuzu düşünün, normalde büyük bir sıkıntı doğurabilir. Ya da şirketteyken, evde film indirmeye bıraktığınız bilgisayarınızın işini bitirip, bitirmediğini merak edebilirsiniz. Bir başka örnek verelim; gün içinde şirkette yaptığınız çalışmalara, erişmeniz gerekebilir. En başta verdiğimiz örneği de düşünebilirsiniz; bilgisayarınızda bulunan dilediğiniz şarkıyı bir başka yerde dinlemek güzel olabilir... Kısacası ev veya ofis bilgisayarınızı, 24 saat erişime açık tutmak, bazılarımıza farklı farklı nedenlerden ötürü gerekiyor. Ve Linux, bu işi yapmak için biçilmiş kaftandır.
Secure Shell

Bazı bilgisayar terimlerinin Türkçe karşılıklarını bulmak gerçekten zor. Secure Shell'in Türkçe karşılığını "Güvenli Kabuk" diye çevirmek istemedim. Okuyucularımızın beni mazur görmesini dileyerek, SSH konusunu açıklayalım. Secure Shell ya da kısaca SSH, iki bilgisayar arasında güvenli bağlantı kurmaya yarayan bir protokoldür. Temelleri 1995 yılına kadar dayanan SSH, günümüzde Unix tabanlı makinelerde uzaktan erişim standartı hâline gelmiştir. SSH ile ilgili teknik ayrıntılara girmeden bunun bize ne kazandırdığına bakalım.
Windows kullanıcılarıyla Linux kullanıcılarının çok ama çok önemli bir farkı vardır. Windows'ta hemen her şey, arayüzlerle, pencerelerle, fare tıklamalarıyla yapılır. Halbuki Linux'ta programların çok büyük bir kısmı komut satırından da yönetilebilir. (Birkaç program tamamen görsel arayüze dayanıyor, ama onları şimdilik bir kenara bırakalım.) Uzaktaki ya da elinizin altındaki bir bilgisayarı komutlarla yönetirsiniz. Ancak birinde komutları direkt girerken, diğerinde bu hizmeti yapabilmeniz için SSH devreye girmektedir. Verdiğiniz komutlar aynı kalmakla birlikte, SSH aracılığı ile çalışır. Yani bilgisayarınızı kullanmak, ona bir iş yaptırmak istiyorsanız, SSH'ı kullanmanız gerekir.
SSH istemcisi (client) Linux işletim sistemlerinde standart olarak geliyor. Herhangi bir bilgisayara bağlanmak istiyorsanız yapmanız gereken şey basit bir komut girmekten ibaret. Bunun için aşağıdaki komutu kullanabilirsiniz:
ssh -l kullanici_adi adres -p port_numarasi
Burada kullanici_adi yerine bağlanacağınız bilgisayarda tanımlı kullanıcı adını giriyoruz. adres ise bağlanmak istediğimiz bilgisayarın adresi oluyor. (Örneğin 212.154.1.17 gibi bir IP adresi ya da www.adres.com gibi bir web adresi de olabilir.) Komutun sonunda bulunan -p parametresi ekstra yazılmış durumda. SSH protokolü, 22 numaralı port üzerinden hizmet vermektedir ve siz -p parametresini yazmadığınız sürece bu port üzerinden bağlantı kurulur. Ancak her zaman 22 numaralı port üzerinden hizmet verilmez, standart port adresi değiştirilip güvenlik sebebiyle 2200, 4353 ya da bir başka değere dönüştürülebilir. Bazı programlar, Internet üzerinden SSH protokolünü kullanarak bilgisayarınıza saldırı düzenleyebilir. Üstelik saldırganın bilgisayarınızı kurban seçmesi, her zaman bilinçli olmaz; SSH protokolünü kullandığınızı varsayıp, şans eseri sizin IP'ni hedef olarak seçer. Eğer port numarası bir yanıt vermiyorsa, saldırgan SSH'in sisteminizde olmadığını düşünerek bir sonraki hedefine yönelir. Bahsettiğim araçlar pek zeki değil; kullanıcı adı ve parolasını deneye deneye bulmaya çalışırlar. Buldukları takdirde, SSH protokolünden sistemize sızarlar. Ancak bu yazdıklarım, sizi telaşa sürüklemesin. İyi seçilmiş bir parolanız varsa, saldırı aylarca bile sürse, bir sonuç vermeyecektir.
SSH saldırılarına karşı yapabileceğiniz ilk şey, güzel bir parola seçmek. En az 8 karakter, içinde büyük-küçük harf ve rakam barındıran bir parolanın bulunma ihtimali 1/628'dir. Bu, doğru parolanın bulunması için 220 trilyon ihtimal olduğu anlamına geliyor. Her deneme 1 saniye içinde bile yapılsa, bütün olasılıkların denenmesi, 7 milyon yıl sürer. Ancak parola olarak seçtiğiniz şey, İngilizce bir kelime ya da tahmin edilebilir türdense, parolanızın tespit edilmesi çok çok daha basittir. O yüzden parola seçiminde dikkatli davranmalısınız. Elbette SSH saldırılarına hedef olmamak çok daha iyi bir seçenek. Bu yüzden standart port numarası 22 yerine, bir başkasını seçiyoruz ve bağlanırken -p diye belirtiyoruz. (Port numaranızı nasıl değiştireceğiniz sshd kurulumunda anlatacağız.)
Dosya transferi, ssh'tan biraz daha farklı. Genel yapısını aşağıda görebilirsiniz:
scp -P port_numarasi kaynak_dosya kullanici_adi@adres:hedef_dosyaadresi şeklinde yapılmaktadır. Örneğin cebi kullanıcı adıyla, 2222 numaralı port üzerinden f_prot.sh isimli dosyayı, 212.154.1.17 adresine kopyalamak istiyorsanız, scp -P 2222 f_prot.sh cebi@localhost:/home/cebi/ komutunu kullanırsınız. Bu komutla, kullandığınız bilgisayarda bulunan f_prot.sh dosyası /home/cebi klasörünün altına kopyalanacaktır. Hemen hemen bütün Linux dağıtımlarında, SSH mevcuttur. Ancak evde Linux kullanıyorken, iş yerinizde Windows bulunabilir ve Windows ile SSH'i kullanmak istediğinizde ekstra bazı programlara ihtiyaç duyarsınız.
PuTTY ve WinSCP

Windows işletim sisteminden, Linux yüklü bilgisayarlara erişmek için PuTTY isimli küçük bir program kullanırız. PuTTY, Unix için yazılmış bir terminal/konsol emülasyonudur. SSH protokolü üzerinden, uzakta bulunan Linux makinenizi yönetmenizi sağlar. Aynen Linux'ta kullandığınız gibi bir kabuk (shell) ile komutları girersiniz. Üstelik bütün bunları Windows'ta yapabilirsiniz. PuTTY'yi http://www.putty.nl adresinden indirebilirsiniz.


Bahsedeceğimiz ikinci program WinSCP ise, dosya kopyalama işlemleri içindir. Linux dağıtımların hemen hepsinde scp komutu bulunurken, Windows'ta Linux makinelere dosya aktarımı (ya da tam tersi) için bir araç bulunmaz. WinSCP de bu eksikliği gidermek üzere hazırlanmıştır. Oldukça basit ve güzel bir arayüzle, kullandığınız bilgisayardan, bir başka bilgisayara dosya aktarabilirsiniz. Mevcut dosyaları silebilir, bir klasörden diğerine taşıyabilir ya da sıkıştırma yapabilirsiniz. Eskiler bilirler, Norton Commander isimli zamanında oldukça popüler bir program vardı. WinSCP'nin arayüzü de, Norton Commander'a benzetilmiş. Herkesin zorlanmadan kullanabileceğini düşünüyorum. WinSCP projesine, http://winscp.net adresinden erişebilirsiniz.



Uzaktan Erişime Hazırlanmak

Uzakta olan bir bilgisayara SSH ile ne şekilde erişebileceğimizi gördük. Ancak kendi bilgisayarımıza nasıl erişebileceğimizi henüz bilmiyoruz. Eğer bilgisayarınız SSH erişimine açmak istiyorsanız yapmanız gereken şey, SSH sunucu servisini (daemon) kurmaktır. Bunun için de, openssh-server'i kurmanız gerekir. Eğer Ubuntu kullanıyorsanız ve ssh servisi yüklü değilse, aşağıdaki komutu kullanarak SSH servisini kurup, aktif hâle getirebilirsiniz.
sudo apt-get install openssh-serverKurulumun başarılı olup olmadığını anlamanızın yolu, "ssh localhost" yazıp, kendi bilgisayarınıza bağlanmaya çalışmaktır. Komut satırında parola soruluyorsa, başardınız demektir.
SSH için Ekstra Güvenlik

SSH servisi, 22 numaralı port üzerinden hizmet verir. Ancak 22 numaralı portu kullanmak her zaman akıllıca olmuyor. Sağdan soldan buldukları programlarla insanlara saldıranların açık hedefi hâline gelebiliyorsunuz. Sisteminize giremeyecek olsalar bile, bilgisayarınızı rahatsız etmelerini istemezsiniz. Bunun için yapmanız gerekenleri şöyle özetleyebiliriz:
1. SSH sunucu servisini kurduktan sonra, bir terminal açıp root olarak, "gedit /etc/ssh/sshd_config" komutunu girin. (gedit yerine sevdiğiniz herhangi bir metin editörü de olabilir.)
2. sshd_config dosyası, ssh sunucu servisiyle ilgili bilgileri içermektedir. Dosyanın başlarında bulunan "# What ports, IPs and protocols we listen for" yazısını bulun. Hemen altında Port 22 yazdığını göreceksiniz.
3. Port 22'yi değiştirip, farklı bir port numarası verin. Örneğin Port 2212 yazıp, dosyayı kaydedebilirsiniz.
4. Bilgisayarınızı ya da sshd servisini yeniden başlatırsanız, artık bilgisayarınıza 2212 numaralı porttan girmeniz gerekir. Test etmek için "ssh localhost -p 2212" komutunu girin. Kullanıcı şifresi sorulduğu takdirde, işlemleri doğru yapmışsınızdır.
Virtual Network Computing

Windows işletim sistemleri kullananlar, Başlat-> Çalıştır yolunu izleyip, "mstsc" komutunu çalıştırdıkları takdirde, karşılarına Microsoft Terminal Services Client çıkar. MSTSC, başka masaüstleriyle bağlantı kurabilmenizi sağlayan bir yazılımdır ve grafik arayüzüyle çalışmanızı mümkün kılar. Hangi bilgisayara bağlanmak istediğinizi belirtip, şifre ve kullanıcı adını girerseniz, ardından o bilgisayarı görsel olarak kullanabilirsiniz. Altında yatan teknoloji farklı da olsa, Linux'ta da görsel olarak bir başka bilgisayarı kullanmanıza yarayacak araçlar mevcut.
Virtual Network Computing (kısaca VNC), bilgisayarınızı başında olmadan yönetilmeniz için geliştirilmiş bir yöntemdir. Secure Shell'den farkı, görsel arayüzle çalışabilmenizi sağlamasıdır. Bildiğiniz gibi Unix/Linux komutları belirli düzeyde bilgisayar bilgisi gerektiriyor ve son kullanıcılar zaman zaman bu konuda zorluk yaşayabiliyor. Komut satırıyla uğraşmak istemeyenler için VNC temelli yazılımlar iyi birer çözüm. Hemen hemen her dağıtım için vncserver ve vncviewer programlarını bulabilirsiniz. Bu terimlere de açıklık getirelim: vncserver, 5900 numaralı port üzerinden hizmet veren bir programdır. Başka bilgisayarlar, vncserver sayesinde bilgisayarınıza bağlanıp, onu kullanabilmektedir. vncviewer ise diğer bir bilgisayara bağlantı kurmanız içindir. Yani bir istemci (client), sunucuya bağlanacaksa, vncviewer programını kullanacaktır.
Bilgisayarınıza uzaktan erişime açık olması için GNOME masaüstü ortamında, System-> Preferences-> Remote Desktop yolunu izleyin. Bu arayüzü kullanarak kullanıcıların bilgisayarınıza erişip erişmemesini belirleyebilir, dışardan gelen bağlantılar için şifre sorabilir ya da her seferinde sizden onay istenmesini ayarlayabilirsiniz.


RealVNC

VNC temelinde farklı farklı yazılımlar bulunuyor. TightVNC, UltraVNC, .NET VNC bunlardan bir kaçı... Benim kullandığım favori yazılımsa, RealVNC isimli bir başka ürün. RealVNC rakiplerine göre, daha hızlı çalışıyor ve hemen hemen her platform için destek verebiliyor. http://www.realvnc.com adresinden işletim sisteminize uygun versiyonu çekip kullanabiliyorsunuz. Unix platformlarına destek verdiği gibi, Windows için sunduğu sürüm de mükemmel çalışıyor. Zaten RealVNC'yi bu kadar öne çıkartan, Windows'u harikulade şekilde desteklemesi...

RealVNC ile sadece Unix tabanlı bilgisayarlar arasında bağlantı kurmanız gerekmiyor. Dilediğiniz takdirde, Windows'tan Windows'a; Linux'tan Windows'a ya da tam tersi şekilde bağlantı kurabilirsiniz. Bir kere daha vurgulamak isterim; kullanımı gerçekten basit!
Bilgisayarınızın İzini Kaybetmeyin

Statik IP kullanmamın paralı olduğu bir ülkede yaşıyoruz. Kullanıcıların çoğunun dinamik IP sahibi olması kaçınılmaz. Siz de dinamik IP kullanıyorsanız, bağlanmak için kullanacağınız IP adresi sık sık değişecektir. Bundan kurtulmak için LogMyIP adında ufak bir Java programı işinize yarayacaktır. Sisteminizde JRE (Java Runtime Environment - Java Çalıştırma Ortamı) kurulu olduğu takdirde, aşağıdaki adımları sırasıyla yapmanız yeterlidir:
1. Projeler bölümüne girip, LogMyIP projesinin Çalıştırılabilir (Binary) dosyasını indirin ve açın (extract).
2. LogMyIP kullanım sayfasına girin ve sayfanın en altında bulunan "Kayıt Sayfası" bağlantısına tıklayın.
3. Karşınıza gelecek sayfa sizden bir kullanıcı adı ve şifresi istemektedir. Dilediğiniz bir kullanıcı adını ve şifresini girerek kayıt olun. Kayıt işleminin başarı ya da başarısızlığına göre, sonuç dönecektir.
4. Birinci adımda indirip açtığınız (extract) dosyayı kullanmanın zamanı geldi. Dosyayı açtığınız yere komut satırından gelip, "java -jar LogMyIP.jar -s" yazın. Size kullanıcı adı ve şifresi sorulacaktır. Üçüncü adımda, kayıt aşamasında girdiğiniz kullanıcı adı ve şifresini yazın.
5. Kullanıcı adı ve şifre ayarlarını yaptıktan sonra, "java -jar LogMyIP.jar -od" komutuyla, IP adresinizi kaydedin. Eğer programın siz yokken bile sürekli olarak kayıt etmesini istiyorsanız, "java -jar LogMyIP.jar -b" komutunu kullanın.
6. Bilgisayarınızın IP adresini öğrenmek için tekrar LogMyIP kullanım sayfasına girin ve üçüncü adımda belirlediğiniz kullanıcı adı ve şifresini yazın. LogMyIP programını kapatmadığınız sürece, bilgisayarınızın adresini her zaman buradan öğrenebilirsiniz.
Programın yapılandırma aşamasının uzun olmasına bakmayın. Bundan sonra LogMyIP çalıştığı sürece, kullanıcı adı ve şifresini girip, IP adresinizi öğrenebilirsiniz. Programla ilgili daha fazla yardım için, programla birlikte gelen yazılım dosyasını okuyabilir veya "java -jar LogMyIP.jar -h" komutunu kullanabilirsiniz.
Yazımızı noktalarken, hatırlatmak istediğim birkaç konu var. Gerek RealVNC, gerekse başka araçlarla görsel bir bağlantı kuracaksanız, renk ayarlarını düşük tutmanız yararınıza olacaktır. Masaüstünüzü 16 bit yerine 8 bit görmek size bir şey kaybettirmez ancak hız bakımından çok şey kazandırır. Bunun dışında Windows uzaktan erişim konusunda, Linux ile yarışabilecek düzeyde değil. Yazımızın başında da belirttiğimiz gibi, Linux'ta hemen hemen her program komut satırından yönetilebilirken, Windows'ta bütün işlemler görsel arayüze muhtaç. Yani 56K'lık bir bağlantıyla Linux'u kullanmak mümkünken; Windows tarafında bırakın 56K'yı, 256 Kbit'lik bir ADSL bağlantısı bile zaman zaman yetmeyecektir.
Ev kullanıcılarıyla ilgili son bir notumuz bulunuyor. Dış dünyadan gelebilecek tehditlere karşı, çoğu ADSL modemin 80, 8080 dışındaki bütün portları kapalıdır. Fakat SSH, VNC gibi hizmetleri kullanmak istiyorsanız, 22 ve 5900 numaralı portları açık tutmanız gerekir. ADSL modemlerde nasıl port açabileceğinizi, üretici sitelerinden ya da basit bir Google aramasından öğrenebilirsiniz.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler