İçeriğe atla

Berkeley r-komutları

Berkeley r-commands
Geliştirici(ler)Kaliforniya Üniversitesi (Berkeley)'da Computer Systems Research Group
İlk yayınlanmaHaziran 1981 (43 yıl önce) (1981-06)
İşletim sistemiUnix ve Unix benzeri
TürKomut Yazılım paketi
LisansBSD lisansı

 

Berkeley r-komutları, bir Unix sisteminin kullanıcılarının TCP/IP bilgisayar ağı üzerinden başka bir Unix bilgisayarında oturum açmasını veya komutlar vermesini sağlamak için tasarlanmış bir bilgisayar programları paketidir.[1] Berkeley r-komutları, 1982'de Berkeley'deki Kaliforniya Üniversitesi'ndeki Computer Systems Research Group (CSRG) tarafından, TCP/IP'nin (İnternetin protokol yığını) erken uygulanmasına dayanarak geliştirildi.[2]

CSRG, r-komutlarını kendilerinin geliştirdiği bir Unix işletim sistemi olan Berkeley Software Distribution'a (BSD) dahil etti. R-komutları BSD v4.1'de yayınlandı.[2] Paket içerisindeki programlar şunlardır: ​rcp​, ​rexec​, ​rlogin​, ​rsh​, ​rstat​,​ruptime​ve ​rwho​.[3]

Berkeley r-komutları önemli bir yenilikti ve Unix işletim sistemleri için fiili standartlar haline geldi.[4][5] Geniş çapta kitlelerin internete olan adaptasyonuyla birlikte, var olan güvenlik açıkları bir sorun haline geldi.[6] 1995'te geliştirilmesi başlanan güvenli kabuk (secure shell) protokolleri ve uygulamaları zamanla r-komutlarının ve ​telnet​'in yerini aldı.[7]

Doğrulama

Genel Bakış
Hizmet Bağlantı Noktası

(Port)

Taşıma Katmanı

(Transport Layer)

Referanslar
İstemci

(Client)

Arka plan Uygulaması

(Daemon)

​rcp​​rcpd​514 TCP
​rexec​​rexecd​512 TCP[8]
​rlogin​​rlogind​513 TCP[9]
​rsh​​rshd​514 TCP
​rstat​​rstatd​UDP
​ruptime​​rwhod​513 UDP[10]
​rwho​

Orijinal Berkeley r-komutları paketi ​rlogin​komutunun dışında rcp (remote copy - uzaktan kopyalama) ve ​rsh​ (remote shell - uzak kabuk) komutlarını da içerir. Bunlar, hosts.equiv ve .rhosts erişim kontrol şemasını paylaşırlar (farklı bir daemon'a bağlanmış olsalar da, rshd).

Komutlar

rlogin

​rlogin​, 513'üncü TCP portunu kullanarak, kullanıcının ağ üzerinden sunucuya bağlanmasını sağlar.

​rlogin​ayrıca yazılım tarafından kullanılan uygulama katmanı protokolünün adıdır ve TCP/IP protokol paketinin bir parçasıdır. Kimliği doğrulanmış kullanıcılar, bilgisayarda fiziksel olarak varmış gibi hareket edebilirler. İçinde tanımlandığı RFC 1282, şunu belirtir: "​rlogin​özelliği; fiziksel kullanımdaki akıcılıkta, uzaktan kullanılabilen bir sanal terminal sağlar." ​rlogin​uzak ana bilgisayarda bir deamon (arka planda çalışan program) olan ​rlogind​(remote-login-deamon) ile iletişim kurar. ​rlogin​, ​telnet​komutuna benzer, ancak özelleştirilebilir değildir ve yalnızca Unix benzeri ana bilgisayarlara bağlanabilir.

rsh

​rsh​, oturum açma prosedürü olmadan uzak bilgisayarda bir kabuk açar. Bağlandıktan sonra kullanıcı, kabuğun komut satırı arayüzü aracılığıyla uzak bilgisayardaki komutları çalıştırabilir. ​rsh​, girdileri ve çıktıları standart akışlar üzerinden geçirir ve standart çıktıyı kullanıcının konsoluna gönderir. Ağ üzerinden, standart girdiler (stdin) ve standart çıktılar (stdout) 514'üncü TCP portu üzerinden akarken; standart hatalar (stderr), ​rsh​arka plan programının (​rshd​) açtığı farklı bir TCP portundan akar.[11]

rexec

​rexec​'de ​rsh​gibi, kullanıcının uzak bir bilgisayarda kabuk komutlarını çalıştırmasına olanak tanır. Ancak, ​rsh​sunucusundan farklı olarak, ​rexec​sunucusu (​rexecd​) oturum açma gerektirir: ağ soketinden kullanıcı adı ve parolayı (şifrelenmemiş şekilde) okuyarak kullanıcıların kimliğini doğrular.[12] ​rexec​, 512'nci TCP portunu kullanır.

rcp

rcp bir dosyayı veya dizini yerel sistemden uzak bir sisteme, uzak bir sistemden yerel sisteme veya bir uzak sistemden diğerine kopyalayabilir.[13] ​cp​ve ​rcp​'nin komut satırı argümanları benzerdir; ancak ​rcp​'de, uzak dosyalarda, uzak sistemin adı ön ek (prefixed) olarak bulunur:

rcp file.txt subdomain.domain:~/home/foo/file.txt

Unix kopyalama komutu olan ​cp​'de olduğu gibi, ​rcp​komutu da hedefte aynı isimde var olan bir dosyanın üzerine yazar; ​cp​'nin aksine, hedef dosyanın üzerine yazmadan önce kullanıcıyı uyarmak için hiçbir mekanizma sağlamaz.[13] ​rsh​ gibi, ​rcp​ de 514 numaralı TCP portunu kullanır.[14]

rwho

Unix sistemlerde kullanılan ​who​komutu kullanıcıları nasıl listeliyorsa, ​rwho​komutu da aynı şekilde çok kullanıcılı Unix sisteminde giriş yapmış olan bütün kullanıcıları listeler.[15] ​rwho​'un arka plan programı (deamon) olan ​rwhod​, yerel ağdaki Unix sistemlerinin durumu hakkındaki bilgileri saklamak amacıyla veritabanı oluşturur. ​rwod​ve oluşturmuş olduğu veritabanı, ​ruptime​programı tarafından da kullanılır.[16]

rstat

ruptime

​uptime​komutunun bir Unix sisteminin son yeniden başlatmadan bu yana ne kadar süredir çalıştığını göstermesi gibi, ​ruptime​ komutu da yerel ağdaki tüm bilgisayarlardan bir durum raporu ister. Daha sonra çalışma süresi raporunu döndürür. Bir bilgisayar cevap göderirken zaman aşımına uğrarsa; ​ruptime​, sistemin kapalı olduğunu bildirir.[17] Bu bilgi, aynı zamanda ​rwho​komutu tarafından da kullanılan ​rwhod​arka plan programı tarafından da izlenir ve saklanır.[16]

Güvenlik

Kullanıcı kimlik doğrulamasını içeren bu r-komutları (​rcp​, ​rexec​, ​rlogin​ve ​rsh​), bazı ortak güvenlik açıklarına sahiptir:

  • Şifreler de dahil olmak üzere tüm bilgiler şifrelenmemiş olarak iletilir (ele geçirmeye karşı savunmasız hale getirir).
  • .rlogin (veya .rhosts) dosyasının kötüye kullanılması kolaydır. Şifre olmadan oturum açmaya izin verecek şekilde tasarlanmıştır, ancak uzak kullanıcı adlarına, ana bilgisayar adlarına ve IP adreslerine güvenmeleri istismar edilebilir. Bu nedenle, birçok kurumsal sistem yöneticisi .rhosts dosyalarını yasaklar ve suçlular için ağlarını aktif olarak inceler.
  • Protokol port numarası ve sunucu alan adı gibi bazı önemli bilgileri ​rlogin​ istemci uygulaması tarafından sağlar. İstemci uygulamasındaki hatalı bir durum sunucu tarafından algılanamayabilir (bu hata kasıtlı olarak da sağlanabilir) ve bu durumda ​rlogin​protokolü, kimlik doğrulama aşamasında hatalı davranıp istemciye erişim hakkı tanıyabilir.
  • Çoğu kullanıcının ana dizinleri ağ dosya sistemine (NFS - Network File System) bağlı olduğundan, sahte bir .rhosts dosyası ve ​rlogin​protokolü sistemi saldırılara açık hale getirir - bu da demektir ki, ağ dosya sistemi yazılımının yapacağı bir hata, sistemi ​rlogin​saldırısına karşı savunmasız bırakır.[18]

Bu sorunlar nedeniyle, r-komutları göreceli olarak kullanılmaz hale geldi (birçok Unix ve Linux dağıtımları artık varsayılan olarak bunları içermiyor). Daha önce ​rlogin​ve ​telnet​'e dayanan birçok ağ, bunların yerini ​ssh​ ve onun rlogin-eşdeğeri olan ​slogin​ile değiştirdi.[19][20]

Ayrıca bakınız

Kaynakça

  1. ^ "Using the Berkeley r-commands Without a Password". Unix System Management: Primer Plus. Sams Publishing. 2003 [2002]. s. 339. ISBN 978-0-672-32372-0. Erişim tarihi: 4 Mart 2018 – Google Books vasıtasıyla. 
  2. ^ a b "Twenty Years of Berkeley Unix: From AT&T-Owned to Freely Redistributable". Open Sources: Voices from the Open Source Revolution. O'Reilly & Associates. 1999. ISBN 978-1-56592-582-3. Erişim tarihi: 3 Mart 2018. 
  3. ^ "Which IP Services Are Most Vulnerable?". Guide to TCP/IP: IPv6 and IPv4. 5th. Cengage Learning. 2017. s. 659. ISBN 978-1-305-94695-8 – Google Books vasıtasıyla. 
  4. ^ Casad (2008), p. 346
  5. ^ "About "r" Commands". Red Hat Fedora Linux 2 Bible. Wiley. 2 Temmuz 2004. ISBN 0-7645-5745-9. OCLC 441918216. Erişim tarihi: 4 Mart 2018. 
  6. ^ "Arşivlenmiş kopya". 6 Nisan 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Şubat 2021. 
  7. ^ "Arşivlenmiş kopya" (PDF). 7 Temmuz 2020 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 4 Şubat 2021. 
  8. ^ "REXEC command—Execute a command on the remote host and receive the results on your local host". z/OS Communications Server: IP User's Guide and Commands. 2013 [1990]. Erişim tarihi: 4 Mart 2018. 
  9. ^ "More on Ports". FreeBSD Network Administrators Guide. Erişim tarihi: 4 Mart 2018. 
  10. ^ Casad (2008), pp. 350–51
  11. ^ CCSP: Secure PIX and Secure VPN Study Guide. Sybex. 2004. s. 154. ISBN 0-7821-4287-7. Erişim tarihi: 7 Mart 2018 – Google Books vasıtasıyla. 
  12. ^ "rexecd(8)". manpagez.com. 1 Ağustos 2008 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Mart 2018. 
  13. ^ a b "rcp". earthsci.stanford.edu. Stanford University School of Earth, Energy & Environmental Sciences. 3 Ağustos 2004. 7 Şubat 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Mart 2018. 
  14. ^ "Rlogin, RSH, and RCP". SourceDaddy. 31 Ocak 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 18 Şubat 2018. 
  15. ^ "rwho (1) - Linux Man Pages". Erişim tarihi: 7 Mart 2018. 
  16. ^ a b "rwhod (8) - Linux Man Pages". Erişim tarihi: 7 Mart 2018. 
  17. ^ "ruptime (1) - Linux Man Pages". SysTutorials. Erişim tarihi: 7 Mart 2018. 
  18. ^ Varghese, Jinson (10 Kasım 2020). "What is Network Penetration Testing & How to Perform It?". www.getastra.com (İngilizce). 3 Aralık 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Şubat 2022. 
  19. ^ A Practical Guide to Linux Commands, Editors, and Shell Programming. Pearson Education, Inc. 2010. ISBN 978-0-13-136736-4. 
  20. ^ "Unix job control command list". Indiana University. 13 Kasım 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Aralık 2014. 
  • Bu makale Free On-line Dictionary of Computing'deki materyaller temel alınarak hazırlanmıştır. 1 Kasım 2008'den önce ve GFDL'nin 1.3 veya sonraki sürümünün "yeniden lisanslama" şartlarına dahil edilmiştir.
  • Casad, Joe (2008). "Berkeley Remote Utilities". Sams Teach Yourself TCP/IP in 24 Hours. Pearson Education. ISBN 978-0-13-271513-3 – Google Kitaplar aracılığıyla.

Konuyla ilgili yayınlar

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Unix</span>

UNIX türevi işletim sistemleri çok işlemcili çok pahalı makinelerden tek işlemcili, basit ve çok ucuz ev bilgisayarlarına kadar pek çok cihaz üzerinde çalışabilen esnek ve sağlamlığı çok değişik koşullarda test edilmiş sistemlerdir. Fakat özellikle kararlı yapısı ve çok kullanıcılı-çok görevli yapısıyla çok işlemcili sunucularda adeta standart haline gelmiştir ve özellikle akademik dünyada iş istasyonları üzerinde çok yaygın bir kullanım alanı bulmuştur. UNIX, Interdata 7/32, VAX ve Motorola 68000 arasında hızla yayıldı.

<span class="mw-page-title-main">Richard Stallman</span> ABDli özgür yazılım aktivisti

Richard Matthew Stallman, Amerikalı özgür yazılım aktivisti, sistem uzmanı ve yazılım geliştiricisi. GNU Projesi ve Özgür Yazılım Vakfı'nın kurucusudur.

<span class="mw-page-title-main">Mikro çekirdek</span>

Bilgisayar biliminde, bir mikro çekirdek, bir işletim sistemini uygulamak için gereken mekanizmaları minimuma yakın sağlayan işletim sistemi çekirdeği türüdür. Ana çekirdek sadece birimler arası iletişim ve süreçleri sıralama işlerini yapar. Bellek yönetimi, kayıt ortamı yönetimi, sürücüler ve ağ ile ilgili çok sayıda sürec birbirleriyle iletişim kurarak haberleşir. Bu sayede; parçalardan oluşan yapı ve tasarımın sadeleştirilmesi, bir parçadaki hatanın diğer parçaları etkilememesi ve çalışma anında işletim sisteminin güncelleştirilebilmesi mümkün olabilmektedir.

Telnet, Internet ağı üzerindeki çok kullanıcılı bir makineye uzaktaki başka bir makineden bağlanmak için geliştirilen bir TCP/IP protokolü ve bu işi yapan programlara verilen genel isimdir. Telnet iki bileşenden oluşur: (1) iki tarafın nasıl iletişim kuracağını belirleyen protokolün kendisi ve (2) hizmeti sağlayan yazılım uygulaması.Kullanıcı verileri, İletim Kontrol Protokolü (TCP) üzerinden 8 bitlik bayt yönlendirmeli bir veri bağlantısında Telnet kontrol bilgisi ile bant içi serpiştirilir. Telnet, 1969'da RFC 15 ile başlayarak geliştirildi, RFC 855'te genişletildi ve ilk İnternet standartlarından biri olan İnternet Mühendisliği Görev Gücü (IETF) İnternet Standardı STD 8 olarak standartlaştırıldı. encryption sağlayan bazı Telnet eklentileri geliştirilmiştir. Bağlanılan makineye girebilmek (login) için orada bir kullanıcı isminizin (İng:username) ve bağlantının gerçekleşebilmesi için bir telnet erişim programınızın olması gereklidir. Fakat bazı kütüphane ve herkese açık telnet bazlı web servisleri, bağlantı sırasında kullanıcı ismi (numarası) istemeyebilirler; ya da, kullanıcı isim ve parola olarak ne yazmanız gerektiği bağlandığınızda otomatik olarak karşınıza çıkar. Telnet, BBS sistemlere İnternet üzerinden erişimde günümüzde yaygın olarak kullanılmaktadır. Telnet erişim programları, günümüzdeki işletim sistemlerinin çoğunda işletim sistemi ile birlikte gelmektedir. Çok kullanıcılı işletim sistemleri genellikle kullanıcılara metin tabanlı bir arayüz sunar ve bu sistemlerde tüm işlemler klavye vasıtası ile komut isteminden gerçekleştirilir.

<span class="mw-page-title-main">İnternet iletişim kuralları dizisi</span>

İnternet protokol takımı, bilgisayarlar ve ağ cihazları arasında iletişimi sağlamak amacıyla standart olarak kabul edilmiş kurallar dizisidir. Bu kurallar dizisi temel olarak verinin ağ üzerinden ne şekilde paketleneceğini ve iletilen veride hata olup olmadığının nasıl denetleneceğini belirlemektedir.

Internet Control Message Protocol (ICMP), hata mesajları ve TCP/IP yazılımının bir takım kendi mesaj trafiği amaçları için kullanılır. ICMP RFC 792'de tanımlanmış ve RFC 950'de revize edilmiştir. Hataları raporlamak için kullanılan, kontrol amaçlı bir protokoldür. Bu şekilde normal kullanımının yanında, uzak sistem hakkında bilgi toplamak için sıkça kullanıldığından çok önemlidir. Genel olarak sistemler arası kontrol mesajları IP yerine ICMP üzerinden aktarılır. ICMP, IP ile aynı düzeyde olmasına karşın aslında kendisi de IP’yi kullanır. ICMP' nin hata raporlamak için kullanılması, IP'yi güvenli yaptığı anlamına gelmez. Datagram, yerine ulaşmayabilir ve bununla ilgili bir hata mesajı da gelmeyebilir. ICMP mesajlarındaki hataları raporlamak için ICMP kullanılmaz. ICMP, TCP/IP' nin işlemesine yardımcı olan bir protokoldür. Her hostta mutlaka ICMP protokolü çalışır. Hata durumunda host tarafından geri bilgilendirmeyi sağlar.

<span class="mw-page-title-main">Komut satırı</span> yazıyla komutlar girilen ve çıktının da yazıyla ifade edildiği bilgisayar arayüz sistemi

Komut satırı, bir bilgisayar kullanıcısının, belirli metinleri (komutları) girerek, bilgisayarla iletişime geçmesini sağlar. Komut satırı arayüzleri; konsol, kabuk, terminal veya uçbirim diye de adlandırılır.

Nmap, bilgisayar ağları uzmanı Gordon Lyon (Fyodor) tarafından geliştirilmiş bir güvenlik tarayıcısıdır. Taranan ağın haritasını çıkarabilir ve ağ makinalarında çalışan servislerin durumlarını, işletim sistemlerini, portların durumlarını gözlemleyebilir.

UUCP, Unix-to-Unix Copy 'nın kısaltmasıdır. Bu kavram, genellikle uzaktan komut çalıştırmaya ve bilgisayarlar arasında dosya, e-posta ve ağ haberleri taşınmasına imkân sağlayan bilgisayar programı ve protokoller paketi olarak adlandırılır.

netstat

netstat ağ bağlantıları, yönlendirme tabloları ve ağ arayüzü istatistiklerini görüntüleyen bir komut satırı aracıdır. netstat komutu UNIX, Linux ve Windows NT tabanlı işletim sistemlerinde kullanılabilir.

<span class="mw-page-title-main">Tcpdump</span>

tcpdump, komut satırından çalışan genel bir paket analizcisidir, bilgisayara gelen veri paketlerini kaydetmeye, incelemeye, filtrelemeye yardımcı bir sistemdir. Kullanıcıya bağlı bulunduğu bir ağ üzerinden iletilen veya alınan TCP/IP paketlerini veya diğer paketleri yakalama ve gözlemleme olanağı sunar. BSD lisansı altında dağıtılan tcpdump lisans ücreti olmayan bir açık kaynak yazılımdır.

<span class="mw-page-title-main">Unix benzeri</span>

Unix benzeri işletim sistemi, resmi bir UNIX markası olmamasına karşın Unix sistemine benzer şekilde çalışan işletim sistemleridir. Unix benzeri bir yazılım, Unix komut ve kabuğuna benzer işlevlere sahiptir. Bu terimin kullanımı için bir standart yoktur ve bir yazılımın veya işletim sisteminin Unix benzeri olarak adlandırılıp adlandırılamayacağı üzerine farklı görüşler vardır.

<span class="mw-page-title-main">IP spoofing</span>

IP spoofing veya IP sahteciliği, sahte kaynak IP adresi ile Internet Protokolü (IP) paketlerinin oluşturulmasıdır. IP spoofing kavramı, ilk olarak 1980'li yıllarda akademik çevrelerde tartışılmıştır.

uname

uname (veya unix name) - Unix ve Unix benzeri işletim sistemleri bir yazılım konsol programı olup, sistem hakkında bilgi verir. Geçerli makine ve üzerinde çalışdığı işletim sistemi hakkında isim, sürüm ve diğer ayrıntıları yazdırır. uname sistem çağrısı ve komut PWB / UNIX ile ilk kez ortaya çıktı. Her ikisi de POSIX tarafından belirtilir.

Güvenli kabuk,, ağ hizmetlerinin güvenli olmayan bir ağ üzerinde güvenli şekilde çalıştırılması için kullanılan bir kriptografik ağ protokolüdür. En iyi bilinen örnek uygulaması bilgisayar sistemlerine uzaktan oturum açmak için olandır.

<span class="mw-page-title-main">Metin tabanlı kullanıcı arayüzü</span> bir metin ekranına çıktı vermeye veya onu kontrol etmeye dayalı arabirim türü

Metin tabanlı kullanıcı arayüzü, metinsel kullanıcı arayüzü veya terminal kullanıcı arabirimi olarak da adlandırılır, grafik kullanıcı arayüzlerinin (GUI) icadından bir süre sonra ortaya çıkan ve onu grafik kullanıcı arayüzünden ayırt etmek için türetilen yeni bir terimdir. TUI'de bilgisayar grafikleri metin kipinde görüntülenir. Gelişmiş bir TUI, GUI'ler gibi tüm ekran alanını kullanabilir ve fare ve diğer girişleri kabul edebilir.

chown

chown komutu, change owner talimatının kısaltması olup Unix ve Unix benzeri işletim sistemlerinde dosya sistemindeki dosyaların, dizinlerin sahibini değiştirmek için kullanılır.

<span class="mw-page-title-main">Unix shell</span> Unix işletim sistemi için yorumlayıcı program

Unix shell, Unix benzeri işletim sistemleri için bir komut satırı kullanıcı arabirimi sağlayan bir komut satırı yorumlayıcısı veya kabuğudur. Kabuk, hem etkileşimli bir komut dili hem de bir komut dosyası dilidir ve işletim sistemi tarafından sistemin kabuk komut dosyalarını kullanarak yürütülmesini kontrol etmek için kullanılır.

env, Unix ve Unix-benzeri işletim sistemleri için bir kabuk komutudur. Ya çevre değişkenlerinin bir listesini yazdırmak ya da mevcut çevreyi değiştirmeden başka bir aracı değiştirilmiş bir ortamda çalıştırmak için kullanılır. Env kullanarak değişkenler eklenip çıkarılabilir ve var olan değişkenlere yeni değerler atanarak değiştirilebilir.

<span class="mw-page-title-main">Ngrep</span> Özgür bir ağ paket çözümleyicisi

ngrep, Jordan Ritter tarafından yazılmış bir ağ paket çözümleyicisidir. Bir komut satırı arayüzüne sahiptir, pcap kütüphanesine ve GNU regex kütüphanesine dayanır.