Uzaktan Bağlantı Kurulması
Önceki TCP/IP Sonraki
Uzaktan Bağlantı Kurulması
İnternet üzerinde kesinlikle yanlız olmadığınıza göre, kimi durumlarda kendi Linux'unuz dışındaki sistemlere girmek isteyeceksiniz. Bunun için uyarlanmış çeşitli komutlar mevcuttur. Bu komutlar sadece bağlanmak için değil, iki makina arasında birtakım dosya transferi gerçekleştirmek için de kullanılabilir.
Linux (ve UNIX) için ağ uygulamalarında kullanılmak üzere geliştirilen temel olarak iki sistem vardır. Bunlardan UUCP (Unix to Unix CoPy), genel olarak iki makina arasında bir kere bağlantı kurup veriyi iletir ve bağlantıyı kapatır. Eski bir protokol olan UUCP, genellikle modemler arası veri iletişiminde işe yarar.
TCP/IP ise daha önce de belirtildiği gibi yerel ağ veya İnternet üzerinde rahatlıkla kullanılabilen bir protokoldür. TCP / IP 'nin uzaktan bağlantı komutları "r" harfi ile başlar. Örneğin rlogin (remote login) bir sistemden diğerine telnet bağlantısı yaparken rcp (remote copy) ise bir makinadan diğerine dosya kopyalar. Bu ve buna benzer uzaktan bağlantı komutları iyi bilmeniz size çalışmalarınız sırasında zaman kazandıracaktır.
"r" komutlarını kullanabilmeniz için kesinlikle TCP/IP protokolünü tanıyan bir ağ (PPP, Ethernet, SLIP gibi) üzerinde olmalısınız.
rlogin : Geçerli bir hesabınızın olduğu makinaya girmenizi sağlar. telnet komutuyla benzerlik gösterir. Ayrıldıkları nokta, karşıdaki sisteme girerken gerekli yaıplandırmalar yapılırsa parola sormamasıdır. Bu kısma ileride değineceğim.
Aşağıdaki komut ile ordek isimli makinaya giriş yapılıyor.
$ rlogin ordek
Eğer yukarıdaki gibi yazarsanız, ordek makinasına ait IP numarası veya bu adresin tam isminin, örneğin ordek.cclub.metu.edu.tr/etc/hosts dosyasında yeraldığına emin olmanız gerekir. Karşı makinada bağlanılacak kullanıcı ismi de komut satırından belirlenebilir.
cclub:~$ rlogin ordek -l httpd
Password:
Last login: Fri Feb 21 22:02:46 from cclub.metu.edu.tr
Linux 2.0.27.
ordek:~$
Yukarıda yaptığımız, cclub makinasından ordek isimli makinadaki httpd kullanıcısına bağlanmak oldu. Üzerinde Linux çalışan ordek makinası doğal olarak bana bu kullanıcıya ait parolayı sordu. ordek makinasında yeralan bir dosya üzerinde değişiklik yaparak istersem parola sorulmadan anında girilmesini sağlayabilirim. Bunu .rhosts (remote hosts) dosyası sağlar.
.rhosts dosyasında makinaya bağlanabilecek olan kullanıcılar ve bunların hangi makinalardan bağlanacaklarını gösteren bir liste vardır. Biraz karışık mı oldu? Şu örneği inceleyelim:
ordek:~$ uname -a
Linux ordek 2.0.27 #1 Sun Jan 19 13:06:08 EET 1997 i486
ordek:~$ whoami
httpd
ordek:~$ cat ~/.rhosts
cclub.metu.edu.tr gorkem
Yukarıda ördek makinası üzerindeki httpd kullanıcısının çalışma dizininde bulunan .rhosts dosyasında iki sütun yeralıyor. İlki, güvenilen makinanın ismi (cclub.metu.edu.tr), ikincisi de bu makina üzerindeki güvenilen kullanıcı (gorkem). .rhosts dosyası parolanızı başkalarına vermeden istediğiniz makinadaki bir kullanıcının hesabınızı kullanmasını sağlar. Kısaca bir satırda herhangi bir kullanıcının makina ismi ve hesap ismi bu dosyada varsa, sisteme giriş izni verilir.
Bu aşamadan sonra cclub.metu.edu.tr adresindeki gorkem kullanıcısı parola girmeden ordek.cclub.metu.edu.tr adresindeki httpd kullanıcısı olarak çalışmak isterse yapması gereken:
cclub:~$ whoami
gorkem
cclub:~$ rlogin ordek.cclub.metu.edu.tr -l httpd
Last login: Sun Feb 23 11:19:04 from cclub.metu.edu.tr
Linux 2.0.27.
ordek:~$
Artık ordek makinası üzerindeyiz. Parola girmeden bir makinadan diğerine atlamış olduk. .rhosts dosyasında eğer makina ismi yerine "+" işareti kullanılırsa her makinanın veya kullanıcı ismi yerine "+" işareti kullanılırsa her kullanıcının giriş izni olduğu anlaşılır. Makina isimleri yerine IP adreslerini de kullanabilirsiniz. Birkaç örnek:
144.122.71.55  +
# (144.122.71.55 makinasi uzerindeki tum kullanicilara giris izni ver)
+ murat
# Butun makinalar uzerindeki murat kullanicilarina giris izni ver.
# (Cok buyuk bir guvenlik acigi)
rsh : Bazı durumlarda çalıştığınız makinada dışındaki bir sistemde bir veya birkaç kısa komut çalıştırmak isteyebilirsiniz. Örneğin karşı sistemde kimler, hangi işleri yapıyor veya çalışma dizininde yeralan dosyaları görmek gibi. Bütün bunlar telnet veya rlogin programına gerek duymadan rsh (remote shell) ile yapılabilir. Tek şart, üzerinde komut işletilecek makinadaki .rhosts dosyasında gerekli makina ve kullanıcı ismi girişi olmasıdır.
Diyelim ki davul.cclub.metu.edu.tr makinası üzerindeki /home/gorkem dizininde yeralan tüm dizin ve dosyaları görmek için:
$ rsh davul.cclub.metu.edu.tr ls -al /home/gorkem
komutunu girmelisiniz. rsh komutundan sonra uzaktaki sistemin ismi, ardından da çalıştırılacak olan komut gelmelidir. Diğer bir örnek
$ rsh davul.cclub.metu.edu.tr cat README | lpr
karşı sisteme giriş yapmadan README dosyasını yazıcıdan çıkmasını sağlayacaktır.
Önceki Üst Ana Başlık Sonraki
NFS Başlangıç Linux'ta Örnek Ağ Uygulamaları
Bir Linux Kitaplığı Sayfası