Telnet

Murat Yıldırımoğlu, Windows 2000 Magazine dergisinden çeviri

 

 

Telnet, IBM dünyasında başlayan ve UNIX sistemlerin çoğunda anahtar bir parça durumuna gelen, TCP/IP temelli bir protokol. GUI ortamlarının bulunmadığı zamanlarda UNIX sistemleri, aynen DOS sistemleri gibi, komut satırı temelliydi. Bir UNIX sistemine komut vermek için ya UNIX sistemine doğrudan bağlı bir konsolun (yani, klavye ve monitör) başına oturup ya da üzerinden bir konsol oturumu açıp komutu girerdiniz. İkinci durumda üzerinden konsol oturumu açmak için Telnet kullanılırdı.

 

Telnet’i DOS terimleriyle anlamak için DOS temelli bir bilgisayarın başına oturup klavyeden bir komut girdiğinizi düşünün. Komutlar kalvyeden girildikçe ekranda görünür. Bu konsol erişimine karşılık gelir. Eğer birisi bir başka klavye ve monitörü kullanarak üzerinden bilgisayarınıza erişebiliyor ve ayrı bir DOS oturumu açabiliyorsa bu oturum da Telnet oturumuna karşılık gelecektir. Telnet yardımıyla UNIX yöneticileri sanki tam bir konsol erişimine sahiplermiş gibi uzaktan sistemlerini yönetebilirler.

 

Microsoft da Gruba Katılıyor

Telnet, bilgisayar ağlarının ilk zamanlarından beri piyasadaydı ama Microsoft yıllarca Windows’a UNIX temelli araçları koymadı. Microsoft, Windows’u Microsoft’un GUI’sini kullanarak yönetilecek şekilde tasarlamıştı. Microsoft zaman içinde çok sayıda yöneticinin sistemlerini komut satırından yönettiklerini ve bu işi uzaktan da yapmak istediklerini kabul etti. Bu yetenek Windows 2000 Server ve Win2K professional içinde bulunan Telnet sunucu yazılımı ile geliyor.

 

Telnet’i Kurma ve Yapılandırma

Telnet sunucusu sayesinde herhangi bir Win2K sistemine aynı anda iki bağlantı kurulabiliyor (Eğer aynı anda ikiden fazla bağlantıya gerek duyuyorsanız o zaman Microsoft Services for UNIX—SF paketini satın almalısınız. SFU hakkında bilgi için Şubat 2000’de Jim Mohr’un, “UNIX için Microsoft Windows NT Hizmetleri” adlı makalesine bakınız). Telnet sunucusuna   bağlanıp kullanıcı bilginiz onaylandıktan sonra sunucu size hedef sistem için bir komut satırı sunuyor. Bu komut satırından bir Win2K sistemine, sanki sistemin yanıbaşındaymışcasına, komut verebilirsiniz.     

 

Varsayılan olarak  Microsoft Win2K içinde Telnet yeteneğini etkinleştirmemiş durumdadır. Çünkü bir yöneticinin haberi olmadan çalışmakta  olan Telnet hizmeti bir güvenlik sorunu doğurur. Bu yüzden hizmeti başlatmalı ve hizmetin başlama parametrelerini düzenleyerek makinanın her açılışında hizmetin başlatılmasını sağlamalısınız. Telnet hizmetini başlatmak  için Start, Programs, Administrative Tools, Computer Management’a gidin. Şekil 1’de görüldüğü gibi karşınıza çıkan Computer Management ekranında sol bölümdeki  Services and Applications kısmını genişletin, Services’i seçin ve sağ tarafta Telnet’i seçin. Telnet hizmetini çalıştırın ve makina açılırken başlayacak şekilde yapılandırmak için Startup Type’ı Manual’dan Automatic’e çevirin.

 

Bu işlemden sonra Telnet’in çalışıp çalışmadığını kontrol için komut satırına gidin ve şu komutu yazın:

 

telnet localhost

 

Eğer Telnet hizmetini düzgün bir şekilde yapılandırmışsanız ya bir Telnet komut satırı ya da kullanıcı onay satırı ile karşılaşacaksınız.

 

Dur! Kimdir O?

Telnet doğası gereği güvensiz bir protokoldür. Varsayılan olarak, Telnet kullanıcı onay işlemini üzerinden açık metin şeklinde gerçekleştirir. Bu da, siz Telnet sunucuya oturum açarken girdiğiniz kullanıcı adının ve parolasının ağınızdaki trafiği izleyen bir kişi tarafından kolayca elde edilebilmesi anlamına gelir. Bu zayıflık özellikle Administrator olarak giriş yapıyorsanız büyük bir sorun olacaktır.

 

Bu zayıflığı gidermek için Microsoft Win2K içine dahil ettiği Telnet’i değiştirdi. Telnet sunucu yalnızca açık metin kullanıcı onayını değil NT LAN Manager (NTLM) onayını da yapabiliyor. NTLM, kullanıcı adlarını ve parolalarını kriptolar, böylece ağ üzerinden taşınırken  bu bilgiler elde

edilse bile anlaşılamazlar.

 

Bununla birlikte bir sorunla karşı karşıyayız. Telnet sunucuya erişimde NTLM’i kullanabilmek için NTLM’i destekleyen bir istemci yazılımına gereksinim vardır. NTLM kullanıcı onayını destekleyen tek istemci Microsoft’un Telnet istemcisidir. Yalnızca Win2K’in Telnet istemcisi ile sisteminize girecekseniz Telnet hizmetini, yalnızca NTLM kullanıcı onayı ile sınırlayarak, güvenli duruma getirebilirsiniz. Eğer başka istemci yazılımlarından da Telnet oturumları kabul etmek istiyorsanız güvenlik özelliklerini düşürmek zorundasınız.

 

Telnet hizmeti için kullanıcı onayı parametrelerini değiştirmek için komut satırından Telnet yönetim programı olan tlntadmin.exe programını çalıştırın. Telnet hizmetinin parametreleri için yönetim programının, Şekil 2’de gösterilen, ana menüsünden Display / change registry settings seçeneğini seçin. Karşınıza çıkan menüden,  kullanıcı onayı parametrelerini değiştirmek için, NTLM seçeneğini seçin. NTLM kullanıcı onayı için bir değer girmenizi isteyen bir satır ile karşılaşacaksınız. 0,1 ya da 2 değerini seçebilirsiniz. Bu değerler pek açık değil, bu yüzden nelere karşılık geldiğini açıklayacağım: Eğer hiçbir zaman NTLM kullanıcı onayı kullanmayı düşünmüyorsanız 0 değerini girin. Bu değer Telnet hizmetine NTLM’i hiç denememesini söyler. Eğer Telnet hizmetinin ilk olarak NTLM’i denemesini, NTLM başarılı olmazsa açık-metin onayına dönmesini istiyorsanız bu değeri 1 olarak girin. Eğer Win2K olmayan istemciler de sunucuya bağlanacaklarsa bu değer en iyi seçim olacaktır. Yalnızca NTLM kullanıcı onayı (dolayısıyla yalnızca Win2K istemcileri) istiyorsanız 2 değerini girin. Bu durumda Telnet hizmeti hiçbir zaman açık-metin onayı kullanmaz.

 

Telnet Hizmetini Güvenli Duruma Getirme

Sisteminize Telnet hizmetini kurmadan önce piyasada çok sayıda Telnet istemcisinin bulunduğunu unutmayın; TCP/IP desteği sağlayan hemen her modern Windows, UNIX ve Macintosh sisteminde bir Telnet istemcisi bulunur. Sisteminiz Internete bağlıysa sisteminize birçok istemci  bağlanmaya çalışacaktır. Eğer NTLM kullanıcı onayını şart koşmak güvenlik bakımından size yetersiz geliyorsa ek koruyucu önlemleri düşünmelisiniz.

 

Birincisi, sistemlerinizi bir firewall’un arkasına koyarak güvenli duruma getirin. Bu şekilde Telnet hizmetine kimin bağlanacağını, hangi saatlerde bağlanacağını ve  hangi IP adresinden bağlanacağını belirleyebilirsiniz. İkincisi, Telnet hizmetinin iletişim için kullandığı portu değiştirin. Varsayılan olarak Telnet 23 nolu portu kullanır. Telnet hizmetini başka bir porta kaydırırsanız siz yine uzaktan yönetim işlerini Telnet üzerinden yapabilirsiniz ama   başkasının Telnet’i kullanmasını zorlaştırırsınız. Telnet hizmetinin portunu değiştirmek için tlntadm programını çalıştırın, Display / change registry settings seçeneğini sonra da Telnet Port şıkkını seçin.

 

İkinci Yarının Sonları

Peki heyecanlı maça geri dönmeyi nasıl başardım? Basit: Üzerinde bir Telnet istemci yazılımı bulunan bir telsiz Personal Digital Assistant (PDA) ile. Destek istenilen sorun, kilitlenen bir spooler hizmetiydi. Hizmeti tekrar başlatmak müşterimin sorununu giderdi, ben de koltuğumdan kalkmak zorunda kalmadım.

 

Bu çeşit bir işlem uzaktan yönetimi herhangi bir bağlantı üzerinden (Internet ya da çevirmeli bağlantı), üzerinde Telnet istemcisi olan herhangi bir sistemden  gerçekleştirilebilir. Telnet evrensel bir protokol olduğu için hemen bütün sistemlerde, hatta Internet café’lerdeki bilgisayarlarda bulunabilir. Telnet’in bantgenişliği gereksinimi düşüktür, bu özellik de onu çok iyi bir uzaktan yönetim aracı yapar.

 

5 Sık Kullanılan Yönetim İşlevini Gerçekleştirin

Microsoft’un işletim sistemleri birçok GUI temelli yönetim araçları sunuyor olmasına karşın firma Win2K içinde komut satırından yapılan işleri çok geliştirdi. Örneğin, aşağıdaki yönetim görevlerini komut satırından gerçekleştirebilirsiniz:

 

Bir kullanıcının parolasını değiştirmek. Kullanıcılar sürekli olarak parolalarını unuturlar. Biyometrik kullanıcı onayı cihazları yaygınlaşmadıkça parolaları değiştirmek bir yöneticinin işlerinden birisi olacaktır. Komut satırından bir kullanıcının parolasını değiştirmek için uygun bir sunucuya bir Telnet oturumu açın ve komut satırında şu komutu verin:

 

net user <kullanıcıadı> <parola>

 

Burada parola, kullanıcının yeni parolası olacak. Eğer bir üye sunucuya bağlanıyorsanız bu komut o sunucunun yerel hesaplarından birisinin parolasını  değiştirir. Eğer bir Active Directory (AD) etki alanı denetleyicisine bağlanırsanız bu komut kullanıcının AD etki alanındaki parolasını değiştirir. Bir NT etki alanı kullanıcısının parolasını değiştirmek için /DOMAIN parametresini ve ilgili etki alanının adını belirtmelisiniz.  

 

Bir yazıcı işini silmek. Yazmayan yazıcılar genellikle iki sorundan birisiyle karşı karşıyadır (yeterince kağıtlarının olduğunu varsayarsak): Ya bir yazıcı işi sıkışmıştır ya da spooler hizmeti kilitlenmiştir. Sıkışmış bir yazıcı işini silmek için işin numarasını bilmek gerekir. Kuyrukta bekleyen yazıcı işlerinin listesini görmek için etki alanındaki herhangi bir makinadan, komut satırından, aşağıdaki komutu girin:

 

net print \\<sunucuadı>\<yazıcıkuyruğu>

 

Bu komut belirtilen kuyrukta beklemekte olan işleri gösterir. Silmek istediğiniz işi bulduğunuz zaman aşağıdaki komutu vererek işi silebilirsiniz:

 

 

net print \\<sunucuadı> <işnumarası>/RELEASE

 

Bu komut, verdiğiniz numaraya sahip işin silinmesini sağlar. Eğer /RELEASE komutu sıkışmış işi silemiyorsa bir de /DELETE komutunu deneyebilirsiniz. Bırakılan ya da silinen işlerin kuyruktan temizlenmesi için birkaç dakika beklemeniz gerekebilir.

 

Asılı kalmış /hung) bir hizmeti yeniden başlatma. Win2K hizmetleri çeşitli nedenlerle çökebilirler. Yapılacak en iyi şeyin hizmetin niye çöktüğünü anlamak olmasına karşın bazen önceliğiniz hizmeti tekrar çalışır duruma getirmek yönünde olacaktır. Win2K hizmetlerini durdurmak ve yeniden başlatmak için telnet oturumu içinden Net Start ve Net Stop komutlarını verin. Eğer hiçbir parametre belirtmeden Net Start komutunu verirseniz sistem, çalışmakta   olan hizmetlerin listesini gösterir. Hangi hizmetlerin çalıştığını hangilerinin çalışmadığını görmek için bu listeyi kullanabilirsiniz. Bir nedenle durmuş bir hizmeti, hizmetin adıyle birlikte Net Start komutunu vererek yeniden çalıştırabilirsiniz:

 

net start <hizmetin adı>

 

Ama burada hizmet adını verirken hizmetin kısa adını (örneğin Web Publishing Service yerine W3SVC ya da Print Spooler yerine SPOOLER) girmelisiniz. (Çevirenin notu: Hizmetin tam adı da, tırnak işareti içinde olmak şartıyla, kullanılabilir). Sisteminizdeki hizmetlerin kısa adlarını hizmetin özellikleri kısmından öğrenebilirsiniz. Gelecekte rahatca kullanabilmeniz için organizasyonunuzdaki önemli hizmetlerin kısa adını not edip PDA’ya aktarmanızı öneririm.

 

Bir hizmeti durdurmak için Net Stop komutunu kullanabilirsiniz. Bu komutun yazımı Net Start komutuna benzer:

 

net stop <hizmetin adı>

 

Bir hizmeti durdurup yenideb başlatmak için hizmetin kısa adıyla birlikte Net Stop komutunu sonra da Net Start komutunu kullanabilirsiniz.

 

Bir dosya ya da klasör üzerindeki ACL’leri (Erişim Denetim Listesi) değiştirmek. Bir ağı yönetirken kullanıcıların dosyalara erişimine izin verirsiniz ya da erişimlerini engellersiniz. Genelde bu işi GUI’de dosya izinlerini değiştirerek yaparsınız. Ama bir komut satırı programı olan cacls.exe ile de yapabilirsiniz bu işi. Telnet ile izinleri değiştirmek istediğiniz sunucuya bağlanın ve komutu aşağıdaki gibi verin:

 

 

cacls <dosyaadı> <<<ya da klasör>>> /T /E /G:izinler

 

Komutun sonundaki parametreler komutun izinleri dosyalara nasıl uygulayacağını belirler. Örneğin, /T komutu Cacls’a komutu bulunulan klasör ve bütün alt klasörlere uygulamasını söyler. /E komutu Cacls’a dosya ve klasörlerin üzerindeki izinleri silip yenilerini vermesini (overwrite) değil var olanları değiştirmesini (edit) söyler. /G komutu hangi izinlerin verileceğini gösterir: Okuma izni için R, yazma için W, değiştirebilme için C, Tam Yetki için F. Cacls’in daha  birçok   parametresi bulunur. Bu parametreler hakkında bilgi için Cacls /? komutunu verebilirsiniz.

 

Bir sunucuyu yeniden başlatmak. Son çare olarak bazen sunucuyu  yeniden başlatmanız gerekebilir. Bununla birlikte sunucuyu uzaktan yeniden başlatmak pek de iyi bir hareket olmaz. Çünkü sunucunun başlaması sırasında bir sorun çıkarsa yakından müdahale edilmeden sorun çözülemeyebilir. Eğer yeniden başlatma kesinlikle gerekiyorsa bir Telnet bağlantısından, uzaktan, sunucuyu yeniden başlatmak için Microsoft Windows 2000 Resource Kit içindeki shutdown.exe programını kullanabilirsiniz.