Telnet ve SSH Nasıl Kullanılır? Farkları Nelerdir?
Merhaba sevgili blog okurlarımız. Bu yazımızda uzak sunucu bağlantı protokollerinden Telnet ve SSH’a değineceğiz ve iki protokolümüzü karşılaştıracağız, galibi dünden belli olan bir karşılaştırma olacak ama olsun, karşılaştırma yaparken biraz da yüzeysel olarak kriptografiye gireceğiz. Şimdi müsaadenizle daha kıdemli protokolümüz olan Telnet ile başlayalım.
Telnet Nedir:
Telnet TCP/IP protokollerinden biri olmakla beraber uygulama katmanında işlev görür. İsminin açık hali “Telecommunication Network” Türkçe meali ise “İletişim ağı”dır. Önceleri kullanımı yaygın olan protokolümüz günümüzde ise neredeyse kullanılmamaktadır. Günümüzdeki kullanımı iç ağlarda ve sunucu çiftliklerindedir diyebiliriz. Tabi ki bilinçsiz son kullanıcılar tarafından da hala kullanılmaktadır.
Protokolümüz varsayılan olarak 23. porttan işlevini görür. Günümüzde kullanılmamasının sebebi ise güvenli iletişim protokolleri arasında yerini alamamasıdır. Bunun da sebebi iletişimi açık metin halinde şifrelemeden iletmesidir. Ağımızı dinleyen herhangi birisi uzak makine ile kurduğumuz iletişimi çok rahat bir şekilde takip edebilir.
Kısaca Telnet’in kullanımından da bahsedeyim lakin kullanmayalım lütfen :)
Telnet Nasıl Kullanılır?
telnet ip_adresi/etki_alanı_adı
Şeklinde terminalinize giriş yaparsanız. Karşıdaki cihaza erişim sağlanabiliyorsa sizden kullanıcı adı ve parola isteyerek giriş yapmanızı sağlar ayrıca aşağıdaki komut dizisiyle de bağlantı sağlayabilirsiniz.
telnet
o #telnet> başlığı varken
ip_adresi/etki_alanı_adı
Bu şekilde de yine kullanıcı adı ve parolanızı girerek erişim sağlayabilirsiniz. Örnek bir iki bağlantı gösterelim.
Telnet yıllar ilerledikçe ve internetteki kullanıcı sayısı artışıyla beraber güvenlik zaafiyeti anlaşılınca yerini SSH’a bıraktı. Gelin beraber SSH’ı da inceleyelim.
SSH Nedir:
SSH da Telnet gibi uzak bağlantı için kullanılan güzide bir protokolümüzdür. Kendisi varsayılan olarak 22. portta çalışır. Telnet’in güvenlik kısmı olmadığı için ilk olarak onun yedeği olarak ortaya çıkmıştır. Şuanda da uzak makine bağlantılarında en çok kullanılan protokoldür. Telnet’in aksine SSH güvenlik konusuna önem vermiş olup iletişimin şifreli olarak iletilmesini sağlamıştır.
SSH Nasıl Kullanılır?
SSH’ın Linux tabanlı sistemlerde ve MacOS’da kullanımı uçbirim aracılığı ile oldukça basitken Windows sistemlerde ise SSH istemcilerinden faydalanılır. Bunun için en yaygın olarak kullanılanı da Putty’dir. Putty’nin kullanımını aşağıdaki linkten inceleyebilirsiniz.
http://wiki.uhem.itu.edu.tr/w/index.php/Putty_kullan%C4%B1m_k%C4%B1lavuzu
Linux ve MacOS’da SSH Kullanımı:
Linux ve MacOS’da kullanımına bakacak olursak aşağıdaki gibidir.
Ssh kullanıcı_adı@ip_adresi/etki_alanı_adı
Yukarıdaki komutu uçbirimde çalıştırırsanız size “Bağlanmak istediğinize emin misiniz?” şeklinde bir soru yöneltir. Bu soruya evet şeklinde cevap verip kullanıcı adına ait parolayı girmenizi ister. Siz parolayı yazarken ekranda parola gözükmeyecektir. Yazıyorum yazıyorum gözükmüyor bozuk bu demeyin direkt olarak. Parolanızı girdiğiniz zaman eğer girdiğiniz parola doğru ise uzak makinenin uçbiriminin önünüze geldiğini görürsünüz lakin girdiğiniz parola hatalı ise sizden tekrar parolayı girmenizi isteyecektir.
Evet bağlantının nasıl sağlanacağını anlattığımıza göre “SSH güvenli SSH güvenli” dememizin sebebi olan iletişimin şifreli olarak iletilmesi ve bunun nasıl gerçekleştiği kısmına değinelim.
SSH Güvenliği Nasıl Sağlar?
SSH’ın iletişimi uçtan uca şifrelediğine değinmiştik. Peki SSH bunu nasıl yapıyor? SSH iletişimin güvenliğini sağlarken kriptografiden üç adet bileşen kullanıyor. Bunlar simetrik şifreleme, asimetrik şifreleme ve hashleme. Şimdi gelin bunları nasıl kullandığını ve bu kavramların neler olduğunu inceleyelim.
Simetrik Şifreleme:
Simetrik şifrelemede isminden de anlaşılacağı üzere mesajın hem şifrelenmesi hem de şifreli mesajın çözülmesi için aynı anahtar kullanılır. Bu olayı şu şekilde örneklendirebiliriz:
Eşref Murat’a üzerinde tek bir kilit bulunan kilitli bir sandık gönderiyor. Sandığı kilitlediği anahtarda Murat’ın sandığı açacağı anahtar da aynı anahtara karşılık geliyor. Hem Murat hem de Eşref birbirleriyle paylaştığı veriler sayesinde bu anahtarları kendileri oluşturuyorlar yani Eşref Murat’a anahtarını yollamıyor.
SSH’da Kullanımı:
SSH bütün iletişimi simetrik şifreleme ile şifreler. Yukarıda belirttiğim gibi hem istemci hem de kaynak anahtarlarını kendileri oluşturur. Bunu yaparken de Diffie-Hellman Anahtar Takas Algoritmasını kullanırlar. Her yeni oturumda da yeni bir anahtar oluşturulur, eski anahtar kullanılmaz. Simetrik şifreleme için birden fazla algoritma bulunur. Bunlardan bazıları şunlardır: AES, 3DES, DES, RC4, Blowfish. Kaynak ve istemci iletişimde hangi algoritmayı kullanacaklarını ortak olarak sahip oldukları algoritmaları karşılaştırıp en çok kullanılan algoritmayı belirleyerek seçerler.
Diffie-Hellman Algoritması için aşağıdaki linki inceleyebilirsiniz:
Asimetrik Şifreleme:
Asimetrik şifrelemede simetrik şifrelemeden farklı olarak Public(Açık) ve Private(Özel) olmak üzere iki anahtar kullanılır ve bu anahtarlardan herhangi biri kullanılarak diğeri elde edilemez. İletilecek olan bir anahtar ile şifrelenirken diğer anahtar ile çözülür yani hem şifrelemede hem de çözme işleminde aynı anahtarlar kullanılmaz. Bunlara ek olarak kullanıcının Public(Açık) anahtarı ile şifrelediği içeriği sadece yine o kullanıcının Private(Özel) anahtarı çözebilir. Aynı durum tam tersi için de geçerlidir. Anahtar kavramlarına ek olarak karşımıza birde “Sayısal İmza” kavramı çıkar. Sayısal imzanın amacı mesajı doğru kişiye iletebilmek ve gönderen kişiden emin olmaktır.
SSH’da Kullanımı:
SSH asimetrik şifrelemeyi yukarıda bahsettiğimiz anahtar takasında kullanır. Hem istemci hem de kaynak açık ve özel anahtarlarını oluşturur. Açık ve özel anahtarlar kullanılarak simetrik şifrelemede kullanılacak anahtar oluşturulur. Genelde kullanılan asimetrik şifreleme algoritmaları RSA, DSA, Diffie-Hoffman ve Eliptik Eğri Algoritmalarıdır.
Hashlemek:
Hash ve şifre kavramları genellikle birbirleri ile karıştırılmaktadır. Hash almak aslında bir şeyin özetini almak demektir. Şifreleme işlemi bir mesajın gizliliğini sağlayarak çözümlenmesini amaçlarken hashleme işleminde çözümleme işlemi yapılamaz. Her iki tarafda elindeki verinin hashini alarak hashleri karşılaştırır ve mesajın değiştirilip değiştirilmediğini yada doğru mesaj olup olmadığını anlar.
SSH’da Kullanımı:
SSH’da da kullanımı temeliyle aynıdır. İletişim sağlanırken mesajların değiştirilip değiştirilmediğini kontrol etmek için kullanılır.
Kabaca simetrik şifreleme, asimetrik şifreleme ve hashing kavramlarıyla beraber bunların SSH’da nasıl kullanıldığına değindiğimize göre şimdi SSH ile Telnet’i güvenlik açısında uygulamalı olarak karşılaştıralım.
Telnet İle İletişim Kurulurken:
Telnet’de yazımızın başında anlattığımız gibi uzak makineye erişmeye çalışırken ağ trafiğimizden geçen Telnet paketlerimizi wireshark üzerinden inceliyelim. Kendiniz de denemek isterseniz iletişimi sağlarken wireshark adlı aracı açıp Telnet paketlerini filtrelerseniz iletişimde kullanılan paketleri görebilirsiniz.
Ekran görüntülerinde de görüldüğü üzere Telnet’e girdiğimiz veriler hiçbir şifreleme işlemine tabi tutulmadan açık metin şeklinde paketlerimizde açıkca görülüyor.
SSH ile İletişim Kurulurken:
Telnet’in aksine SSH paketlerimizi filtrelediğimizde SSH ile iletişimi sağlarken verilerin şifrelendiğini ve anlaşılabilir bir şekilde olmadığını ekran görüntüsünde açıkca görüyoruz. Gelin bir de bağlantı kurulduktan sonra işlem gerçekleştirilirken neler olduğuna bakalım.
Telnet İle İşlem Gerçekleştirirken:
Hedef makine üzerinde yaptığımız işlemlerin, girdiğimiz komutların ve bastığımız her tuşun şifreleme işlemine tabi tutulmadan açık bir şekilde gönderildiğini ekran görüntülerimiz de görebiliyoruz. Bakalım SSH’da durum ne?
SSH İle İşlem Gerçekleştirirken:
Burada da yine Telnet’in aksine gerçekleştirdiğimiz işlemlerin herbirinin şifreli bir şekilde iletildiğini ve anlaşılabilir olmadığını çok net bir şekilde görebiliyoruz.
Okuduğunuz için teşekkür ederim umarım faydalı bir yazı olmuştur.