Telnet bize, karşıdaki bir sunucunun portuna bağlanıp klavyenizdeki tuşlar ile istekler gönderebileceğimiz bir arayüz sunar.
Telnet TCP kullanarak istekleri gönderir ve karşı tarafa düz metin halinde giderler. Bu yüzden network’ü gözetleyen birisi varsa mesajınız bu kişilere de görünür olacaktır. İsteklerin karşıya şifrelenip gönderilmesi için TLS var ancak bu yazıda yalnızca Telnet’ten bahsedeceğim.
Telnet’in geçmişi bilgisayarların ağ bağlantılarının yeni yapılmaya başlandığı yıllara dayanır. Günümüzde çok sık kullanılan bir yazılım değildir ama bizlere TCP ve metin tabanlı tüm protkolleri, başka bir program gerekmeksizin kullanabilmemize imkan sağlar. Bunlar arasında HTTP, FTP, SMTP ve WHOIS gibi yaygın olarak kullanılan protokoller bulunmaktadır. Ayrıca benim gibi bir zamanlar hobi amaçlı robotikle ilgilenip, ağa bağlı bir motor sürücüsünü kontrol eden bir protokol yazdıysanız protokolünüzü test etmek için de kullanabiliyorsunuz.
Telnet, telnet <sunucu adı> <dinleme portu>
gibi basit bir arayüze sahiptir. Bu komutu kullanarak birkaç örnek yapalım. Linux, macOS veya Windows farketmeksizin birçok işletim sisteminde bulunan bir yazılım olduğu için direkt terminal’inizi açıp, HTTP 1.1 protokolüne sahip bir sunucuya bağlanalım.
telnet example.com 80
Bu komuttan sonra example.com sunucusunun 80 portuna bağlanıyoruz. Karşı sunucu bize, kendisine istek gönderebilmemiz için bağlantıyı bir süre açık tutuyor. Zaman aşımı (timeout) dolmadığı sürece herhangi bir istek gönderebiliriz. example.com sunucusunun 80 portu HTTP protokolünü kullanıyor. Bu yüzden HTTP protokolüne uygun bir istek gönderelim. (İsteği göndermek için son satır boş bırakılmalıdır.)
GET / HTTP/1.1
HOST: example.com
Bu isteği gönderikten sonra sunucu bize “HTTP/1.1 200 OK” cevabını verdi. Birkaç satırlık header kısmı ve ardından gelen bir boş satır sonrasında başlayan body kısmında da HTML kodlarını görebilirsiniz.
Şimdi de bir WHOIS isteği gönderelim. WHOIS protokolü de tıpkı HTTP 1.1 gibi metin tabanlı bir protokol olduğu için telnet’i kullanabiliyoruz. WHOIS protokolü 43 numaralı portu kullanıyor. Neredeyse tüm alan adı kayıt kuruluşu WHOIS hizmeti sunmaktadır. WHOIS isteği için karşı tarafa yalnızca bilgilerini istediğimiz alan adını yazıp göndermemiz yeterldir. Bu örnekte “facebook.com” alan adının WHOIS bilgilerine bakalım mesela. Tabi önce “.com” alan adının kayıt kuruluşunun WHOIS sunucusunu adresini öğrenmemiz gerekiyor. Bunun için IANA’ya danışıyoruz. Bizlere “whois.iana.org” adresinden WHOIS hizmeti sunuyor.
telnet whois.iana.org 43
Sunucuya bağlanıp “com” yazıp isteği gönderiyoruz. Yanıt olarak gelen veriler arasında refer: karşısındaki değer olan “whois.verisign-grs.com” adresini veriyor. Bu değer .com alan adının kayıt kuruluşunun WHOIS adresidir.
Bu sefer “whois.iana.org” yerine “whois.verisign-grs.com” adresine bağlanıyoruz. Bu sefer “facebook.com” yazıp isteği gönderiyoruz. Yanıt olarak bize alan adının bilgilerini döndürüyor.
Başka bir örnek:
telnet mapscii.me 23
Bununla telnet üzerinden Dünya haritasını görüntülemek mümkün. Bu arada 23 portunu kullandık. Bu port telnet’te kullanılan varsayılan porttur aynı zamanda. mapscii.me bu hizmet için 23 numaralı portu kullanmayı tercih etmiş. Yani direkt olarak
telnet mapscii.me
yazarak da erişmek mümkün.