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 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.

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ü, 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.

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 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.

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.

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.

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 resmî 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.

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ı 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.

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.

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.

PuTTY ve plink komut satırı, Windows, Linux ve Unix için ücretsiz, açık kaynaklı bir SSH, Telnet, rlogin ve ham TCP istemcisidir.

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 hâlen 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.