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  ile başlayarak geliştirildi, '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  (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:


```bash
$ telnet www.example.com 80
GET /path/to/file.html HTTP/1.1
Host: www.example.com
Connection: close
```
Daha 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 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.
* 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ı

* , Telnet Protokol Spesifikasyonu
* , Telnet Seçeneği Spesifikasyonları
* , Telnet İkili İletim
* , Telnet Yankı Seçeneği
* , Telnet Devam Etme Seçeneğini Bastır
* , Telnet Durumu Opsiyonu
* , Telnet Zamanlama İşareti Opsiyonu
* , Telnet Genişletilmiş Opsiyonlar: Liste Opsiyonu

### Önerilen Standartlar

* , Telnet Kayıt Sonu Seçeneği
* , Telnet Pencere Boyutu Seçeneği
* , Telnet Terminal Hızı Seçeneği
* , Telnet Terminal Tipi Seçeneği
* , Telnet X Görüntüleme Konumu Seçeneği
* , İnternet Sunucuları, Uygulamalar ve Destek için gereksinimler
* , Telnet Hat Modu Seçeneği
* , Telnet Uzaktan Akış Kontrolü
* , Telnet Ortamı Seçeneği
* , Telnet Kimlik Doğrulama Seçeneği
* , Telnet Kimlik Doğrulaması: Kerberos Sürüm 5
* , DSA Kullanarak TELNET Kimlik Doğrulaması
* , Telnet Kimlik Doğrulaması: SRP
* , Telnet Veri Şifreleme Seçeneği
* , telnet URI Şeması

### Deneysel

* , TELNET Seçenek Pazarlığını Uygulamanın Q Metodu
* , Telnet Ortamı Seçeneği Birlikte Çalışabilirlik Sorunları

### Diğer RFC'ler

* , Telnet 3270 Rejim Seçeneği
* , 5250 Telnet Arayüzü
* , Telnet İletişim Bağlantı Noktası Kontrol Seçeneği
* , 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 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.

## Kaynakça

* Telnet nedir
* Telnet