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 ağ üzerinden bir konsol
oturumu açıp komutu girerdiniz. İkinci durumda ağ
ü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.
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
Telnet’i Kurma ve Yapılandırma
Telnet sunucusu sayesinde herhangi bir Win2K
sistemine aynı anda iki bağlantı kurulabiliyor (
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 ağ ü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.
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:
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
İ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.
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.
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.
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.