Telnet

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 (Bulletin Board Systems) 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 (UNIX ve VMS) genellikle kullanıcılara metin tabanlı bir arayüz sunar ve bu sistemlerde tüm işlemler klavye vasıtası ile komut isteminden (command prompt) gerçekleştirilir.
Telnet programı ile sanal sunucunuza (virtual server) bağlandığınızda, uzaktan UNIX işletim sistemine bağlanmış olursunuz. Bu, UNIX komutları yazabileceğiniz, programları çalıştırabileceğiniz, sanki makinenin karşısında oturuyormuş gibi web sitenizi düzenleyebileceğiniz anlamına gelir.
Telnet güvensiz bir protokoldür. Tüm veriler şifrelenmemiş olarak gönderilir. Bu yüzden telnet oturumundan, sniffer yardımıyla kolaylıkla önemli bilgilere ulaşılabilir.
Telnet protokolü kullanıcı adı (username) ve şifrenizi (password) bağlı bulunduğunuz ağda kolaylıkla görebilecek bir format olan PLAIN TEXT (düz metin) düzeninde göndermektedir. Bu kullanıcı isminizin ve şifrenizin ağı dinleyen herhangi biri tarafından kolaylıkla görülebileceği anlamına gelir. Eğer ağınızdaki herkese güveniyorsanız Telnet kullanmanızda bir sakınca yoktur. Fakat güvenlik hakkında en ufak bir endişeniz bile varsa, hesabınıza bağlanırken telnet kullanmamanız yararınıza olacaktır. Veri alışverişini şifreleyen uzaktan bağlantı protokolü olarak SSH'ı örnek verebiliriz.
Bileşenler
Telnet iki bileşenden oluşur: (1) protokolün kendisi ve (2) servis bileşeni. Telnet protokolü, güvenilir bağlantı yönelimli taşımaya (reliable connection-oriented transport) dayalı bir istemci-sunucu protokolüdür. Bu protokol, bir Telnet sunucu uygulamasının dinleme yaptığı 23 veya 2323 numaralı TCP bağlantı noktasına bağlantı kurmak için kullanılır. Telnet, TCP/IP'den öncesinde de mevcuttu ve ilk tanıtıldığında Network Control Protocol (NCP) üzerinden çalışıyordu.
Telnet Protokolü
Tarihçe
Telnet, 5 Mart 1973'e kadar resmi bir tanımı olmayan ad hoc bir protokol olmasına rağmen, aslında Telnet'te RFC 206 (NIC 7176) olarak Teletype Over Network Protocol olarak anılan ad, bağlantıyı netleştirir:
TELNET protokolü, 7 bitlik bir ASCII karakter seti kullanan sanal bir teletip kavramına dayanmaktadır. O halde bir Kullanıcı TELNET'inin birincil işlevi, kullanıcılarının o sanal teletip üzerindeki tüm tuşlara 'vurabileceği' araçları sağlamaktır.
Eklentiler
Pazarlık edilebilir opsiyon protokol mimarisi nedeniyle Telnet için birçok uzantı yapılmıştır. Bu uzantılardan bazıları İnternet standartları olarak benimsenmiştir, IETF, STD 27'den STD 32'ye kadar belgeler. Bazı uzantılar yaygın olarak uygulanmıştır ve diğerleri, IETF standartları yolunda önerilen standartlardır.
Telnet Servisi
Telnet hizmeti, Telnet protokolü üzerinden hizmet sağlayan uygulamadır. Çoğu işletim sistemi, istemcilere Telnet hizmetleri sağlamak için kurulabilen veya etkinleştirilebilen bir hizmet sağlar.
Kullanım
Tarihsel Kullanımı
Tarihsel olarak Telnet, uzak bir ana bilgisayarda bir komut satırı arabirimine erişim sağlıyordu. Ancak Telnet'i İnternet gibi açık bir ağ üzerinden kullanırken ciddi güvenlik endişeleri nedeniyle, bu amaçla kullanımı SSH lehine önemli ölçüde azaldı. Telnet'in uzaktan yönetim için kullanımı, özellikle halka açık İnternet'te Secure Shell (SSH) protokolü lehine hızla azaldı. SSH, parolalar gibi hassas verilerin ele geçirilmesini önlemek için güçlü şifreleme ve uzak bilgisayarın gerçekten iddia ettiği kişi olduğundan emin olmak için ortak anahtar kimlik doğrulaması ile telnet işlevselliğinin çoğunu sağlar.
Günümüzde Kullanımı
Telnet, bir sunucuya komutlar vermek ve yanıtları incelemek için SMTP, IRC, HTTP, FTP veya POP3 gibi ağ hizmetlerinde hata ayıklamada kullanılabilir. Örneğin, Telnet istemci uygulamaları, Telnet sunucusu bağlantı noktası dışındaki bir bağlantı noktasına etkileşimli bir TCP oturumu kurabilir. Örneğin, bir komut satırı telnet istemcisi, TCP bağlantı noktası 80'deki bir web sunucusuna aşağıdaki gibi bir HTTP isteği yapabilir:
$ telnet www.example.com 80
GET /path/to/file.html HTTP/1.1
Host: www.example.com
Connection: closeDaha eski protokol, bugünlerde yalnızca nadir durumlarda, daha modern protokolleri desteklemeyen onlarca yıllık eski ekipmanlara erişmek için kullanılıyor. Örneğin, çok sayıda endüstriyel ve bilimsel cihaz, iletişim seçeneği olarak yalnızca Telnet'e sahiptir. Bazıları yalnızca standart bir RS-232 bağlantı noktası ile oluşturulmuştur ve TCP/Telnet verileri ile RS-232 seri verileri arasında çeviri sağlamak için bir seri sunucu donanım aracı kullanır. Bu gibi durumlarda, arayüz aracı SSH için yapılandırılmadığı sürece (veya destekleyen bir SSH ile değiştirilmedikçe) SSH bir seçenek değildir. Telnet, amatör telsiz operatörleri tarafından halka açık bilgi sağlamak için yaygın olarak kullanılır. Tavsiye edilmemesine rağmen, güvenlik araştırmacıları internete bağlı 7.096.465 cihazın Telnet kullanmaya devam ettiğini tahmin ediyor, ancak tahminlerin çoğu yalnızca 23 numaralı TCP bağlantı noktasını taradığı için genellikle çok daha azı tahmin ediliyor.
Protokol detayları
Telnet güvenli bağlantıya yönelik transfere dayanan bir istemci-sunucu protokolüdür.
Genellikle bu protokol bir parola eşitleme programının dinlediği TCP port 23 te bağlantıyı tasdik etmek için kullanılır, bununla birlikte telnet TCP/IP'den daha eskidir ve ilk olarak NCP(Network Control Program) de çalışmıştır.
5 Mart 1973'ten önce, Telnet'in resmi olmayan tanımı bir ad-hoc(router kullanmadan bilgisayarlar arasındaki direkt bağlantı kurma) protokolü olarak açıklanıyordu. Aslında Telnet 7 bitlik ASCII verisini göndermek için 8 bitlik kanal kullanıyordu.
Yüksek bit setiyle her byte özel bir Telnet karakteriydi. 5 Mart 1973 tarihli UCLA toplantısında "Yeni Telnet" iki NIC dokümanıyla tanımlandı:
Telnet Protocol Spesification NIC #15372 ve Telnet Option Spesifications, NIC #15373. Şu anda kullanılan protokol eski telnet protokolü değil bu yeni protokoldür. Bu protokolün İnternet protokolü olarak benimsenen birçok eklentisi vardır.
Telnet Komutları
Telnet komutları en az iki bayttan oluşur. İlk bayt, IAC kaçış karakteridir (tipik olarak bayt 255), ardından belirli bir komut için bayt kodu gelir.
İlgili RFC'ler
Internet Standartları
RFC 854, Telnet Protokol Spesifikasyonu
RFC 855, Telnet Seçeneği Spesifikasyonları
RFC 856, Telnet İkili İletim
RFC 857, Telnet Yankı Seçeneği
RFC 858, Telnet Devam Etme Seçeneğini Bastır
RFC 859, Telnet Durumu Opsiyonu
RFC 860, Telnet Zamanlama İşareti Opsiyonu
RFC 861, Telnet Genişletilmiş Opsiyonlar: Liste Opsiyonu
Önerilen Standartlar
RFC 885, Telnet Kayıt Sonu Seçeneği
RFC 1073, Telnet Pencere Boyutu Seçeneği
RFC 1079, Telnet Terminal Hızı Seçeneği
RFC 1091, Telnet Terminal Tipi Seçeneği
RFC 1096, Telnet X Görüntüleme Konumu Seçeneği
RFC 1123, İnternet Sunucuları, Uygulamalar ve Destek için gereksinimler
RFC 1184, Telnet Hat Modu Seçeneği
RFC 1372, Telnet Uzaktan Akış Kontrolü
RFC 1572, Telnet Ortamı Seçeneği
RFC 2941, Telnet Kimlik Doğrulama Seçeneği
RFC 2942, Telnet Kimlik Doğrulaması: Kerberos Sürüm 5
RFC 2943, DSA Kullanarak TELNET Kimlik Doğrulaması
RFC 2944, Telnet Kimlik Doğrulaması: SRP
RFC 2946, Telnet Veri Şifreleme Seçeneği
RFC 4248, telnet URI Şeması
Deneysel
RFC 1143, TELNET Seçenek Pazarlığını Uygulamanın Q Metodu
RFC 1571, Telnet Ortamı Seçeneği Birlikte Çalışabilirlik Sorunları
Diğer RFC'ler
RFC 1041, Telnet 3270 Rejim Seçeneği
RFC 1205, 5250 Telnet Arayüzü
RFC 2217, Telnet İletişim Bağlantı Noktası Kontrol Seçeneği
RFC 4777, IBM'in iSeries Telnet Geliştirmeleri
Güvenlik
Telnet 1969 da geliştirilmeye başlandığında, bir ağa bağlı olan bilgisayar kullanan kullanıcıların büyük kısmı, akademik kurumların bilgisayar departmanlarında ya da yüksek gizlilikteki devlet binalarındaydı. Bu ortamda güvenlik konusunda, İnternet kullanımının patlama yaptığı 90'lı yıllarda oldugu gibi endişe uyandıran bir şey değildi. İnternet kullanan insan sayısındaki büyük artış, kişilerin başka kişilere ait bilgilere, sunuculara ulaşma girişimlerini beraberinde getirdi ve bu durum şifrelenmiş alternatifler kullanma gereksinimi doğurdu.
SANS Institute ve comp. os. linux. security haber grubu üyeleri gibi bilgisayar güvenliği uzmanları aşağıdaki sebeplerden dolayı normal koşullarda, uzak oturumlarda Telnet kullanılmasına son verilmesini tavsiye etmişlerdir.


Telnet varsayılan olarak, bilgileri şifrelemeden gönderir (parolalar buna dahildir). Bu durum iletişimin dinlenilebilmesine ve bu verilerin kötü amaçlar için kullanılmasına ortam sağlar. Ağ üzerinde router, switch veya gateway'e ulaşabilen herhangi birisi, tcpdump ve Wireshark gibi, piyasadaki birçok programı kullanarak, Telnetle iletişim kuran iki istemci arasında gönderilen bütün paketleri yakalayabilir, kullanıcı adı ve parola bilgileri dahil olmak üzere ağda gönderilen bütün veriye ulaşabilir.
Telnet uygulamalarının çoğu bilginin iletişimin istenen iki host arasında doğru bir şekilde sağlandığını ve arada iletişimi dinleyen bir istemci olmadığını doğrulayacak bir yapıya sahip değildi.
Sıkça kullanılan Telnet programlarının yıllar içinde birçok zayıf noktası tespit edildi.

Bu güvenlikle alakalı yetersizlikler, ssh protokolünün de 1995 yılında yayınlanması ve tutulmasıyla birlikte, özellikle İnternet üzerinde Telnet protokolü kullanımının hızla azalmasına sebep oldu.
Telnet Clientlar
PuTTY ve plink komut satırı, Windows, Linux ve Unix için ücretsiz, açık kaynaklı bir SSH, Telnet, rlogin ve ham TCP istemcisidir.
AbsoluteTelnet, Windows için bir telnet istemcisidir. Ayrıca SSH ve SFTP'yi destekler,
RUMBA (Terminal Emülatörü)
Line Mode Browser, bir komut satırı web tarayıcısı
NCSA Telnet
TeraTerm
Van Dyke Software'den SecureCRT
ZOC Terminal
Telnet, SSHv2, RLogin, Serial, Windows, nix ve Mac OS X platformlarını, X/Y/ZMODEM'i ve çeşitli BBS terminal öykünmelerini destekleyen SyncTERM BBS terminal programı
Rtelnet, Telnet'in bir SOCKS istemci sürümüdür ve güvenlik duvarı ve NAT'ın arkasındaki ana bilgisayarlara benzer telnet işlevselliği sağlar.
Inetutils bir telnet istemcisi ve sunucusu içerir ve birçok Linux dağıtımında varsayılan olarak kurulur.
telnet. exe komut satırı yardımcı programı, Microsoft Windows'un birçok sürümünün varsayılan kurulumunda bulunur.
Güncel durum
2000'lerin ortalarına geldiğimizde Telnet protokolünün uzak oturum amaçlı kullanımı büyük oranda yürürlükten kalktı. Fakat halen nadiren de olsa bazı zorunlu durumlarda kullanılabilmektedir. Örneğin, sunucuya komut yollamanın ve gelen cevapları sınamanın kolay bir yolu oldugundan SMTP, IRC, HTTP, FTP veya POP3 gibi servislerdeki sorunları tespit ederken kullanılabilmektedir.