Ağ üzerinden bir bilgisayara erişirken, sistem yöneticilerinin parola dinleme gibi kötü amaçlı siber saldırılardan korunmak için güvenli bir bağlantıya ihtiyacı vardır. Büyük ağların güvenlik açıkları olduğundan, gerekli korumayı sağlamak için TLS/SSL, IPsec, S/MIME, PGP ve SSH gibi şifreleme protokolleri gereklidir.
Bu makale, SSH protokolüne – işlevine, terminolojisine ve kullanım durumlarına genel bir bakış sağlar.
Not: Benzer kısaltmalar nedeniyle SSL ile SSH’yi karıştırmak kolaydır. Her ikisi de kriptografi kullanan ağ protokolleri olsa da, ikisi çok farklıdır ve farklı amaçlar için tasarlanmıştır. SSH ve SSL: Farklar Nelerdir? kılavuzumuzu okuyarak bunları nasıl ayırt edeceğinizi öğrenin.
SSH’nin Anlamı Nedir?
SSH kısaltması “Güvenli Kabuk” anlamına gelir. SSH protokolü, güvenli olmayan uzak kabuk protokollerine güvenli bir alternatif olarak tasarlanmıştır. İstemcilerin ve sunucuların güvenli bir kanal üzerinden iletişim kurduğu bir istemci-sunucu paradigması kullanır.
SSH protokolünün üç katmanı vardır:
- taşıma katmanı. Sunucu ve istemci arasında güvenli iletişim sağlar, veri şifreleme/şifre çözmeyi izler ve bağlantının bütünlüğünü korur. Ayrıca verileri önbelleğe alma ve sıkıştırma işlemlerini gerçekleştirir.
- Kimlik doğrulama katmanı. İstemci kimlik doğrulama prosedürünü yürütür.
- bağlantı katmanı. Kimlik doğrulamasından sonra iletişim kanallarını yönetir.
SSH tarafından oluşturulan kanal, istemcinin kimliğini doğrulamak için açık anahtarlı şifreleme kullanır. Bağlantı kurulduktan sonra, SSH, temeldeki ağ altyapısından bağımsız olarak bilgileri güvenli bir şekilde değiş tokuş etmek için şifreli bir yol sağlar.
SSH, Linux, macOS ve BSD gibi Unix benzeri işletim sistemleri için tasarlanmıştır. Ancak, Windows’ta da çalışır.
Not: SSH protokolünün arkasındaki mekanizma hakkında daha fazla bilgi için SSH Nasıl Çalışır?
Kısa Bir SSH Tarihi
SSH, 1995 yılında Tatu Ylönen tarafından oluşturuldu. Protokol, parola koklamayı önleme Helsinki Teknoloji Üniversitesi’ne saldırı Şimdi SSH-1 olarak adlandırılan protokolün ilk sürümü, rsh, rlogin ve Telnet gibi güvenli olmayan protokollerin yerini alacak şekilde tasarlandı. Ücretsiz olarak başladı, ancak kısa sürede tescilli yazılım haline geldi.
Ylönen’in SSH-1’i dünya çapında popüler bir araç haline geldikten sonra, İnternet Mühendisliği Görev Gücü (IETF), amacı protokolün halefini geliştirmek olan bir grup oluşturdu. 2006’da SSH-2, Diffie-Helman anahtar değişimi gibi güvenlik iyileştirmeleri içeren yeni bir standart haline geldi.
Açık kaynak topluluğu, SSH-1’in 1.2.12 sürümüne dayalı bir SSH protokol sürümü olan OSSH’yi geliştirdi. OpenBSD geliştiricileri daha sonra, bugün dünyanın en popüler SSH uygulaması olan OpenSSH’yi oluşturmak için OSSH’yi çatalladı. 7.6 sürümünden itibaren OpenSSH yalnızca SSH-2’yi desteklemektedir. SSH-1 desteği kesildi.
SSH Terminolojisi
Aşağıdaki tablo, SSH ile çalışırken karşılaşabileceğiniz bazı terimleri içermektedir:
Terim | Açıklama |
---|---|
~ veya $ANA SAYFA | Unix veya Unix benzeri bir sistemdeki bir kullanıcının ana dizini. |
Kimlik doğrulama katmanı | SSH kimlik doğrulamasını yürütmekten sorumlu katman. |
Müşteri | Sunucuyla bağlantı kurmak için bir istemci programı. |
İstemci makinesi | SSH istemcisi çalıştıran bir bilgisayar. |
Bağlantı katmanı | İletişim kanallarını yöneten SSH protokolünün katmanı. |
yerel bilgisayar | Konumda bir SSH istemcisi çalıştıran bir bilgisayar. |
yerel kullanıcı | Yerel bilgisayar üzerinden SSH’ye erişen bir kullanıcı. |
Özel anahtar | Yerel makinede gizli olarak tutulan kullanıcı kimlik doğrulaması için genel-özel anahtar çiftinin bir parçası. |
Genel anahtar | Kimlik doğrulama işlemi sırasında SSH sunucusuna kopyalanan kullanıcı kimlik doğrulaması için genel-özel anahtar çiftinin bir parçası. |
Uzak bilgisayar | SSH istemcilerinin bağlandığı bir SSH sunucusu çalıştıran bir bilgisayar. |
uzak kullanıcı | Uzak bir bilgisayar üzerinden SSH’ye erişen bir kullanıcı. |
Sunucu | SSH istemcileriyle iletişim kurmak için bir SSH sunucu programı. |
Sunucu makinesi | SSH sunucusu çalıştıran bir bilgisayar. |
SCP | Güvenli Kopya – güvenli dosya aktarımı için SSH kullanan bir CLI yardımcı programı. |
SFTP | Güvenli Dosya Aktarım Protokolü – TLS/SSL’den yararlanan FTPS ile karıştırılmaması gereken ağ dosya aktarımlarını güvenli hale getirmek için SSH kullanan bir protokol |
Taşıma katmanı | SSH protokolünün tüm SSH oturumuna bakan katmanı. |
SSH Kullanımları
SSH, güvenli yönetim, kaynaklara uzaktan erişim, yazılım yamaları ve güncellemeler sağlamak için veri merkezlerinde yaygın olarak kullanılır. Protokol ayrıca korumalı yönlendirici yönetimi, sunucu donanımı bakımı ve sanallaştırma platformu yönetimi sağlar.
Kullanım kolaylığı, sağlamlığı ve sayısız özelliği nedeniyle SSH, çeşitli senaryolarda uygulanabilir.
Bu senaryolar şunları içerir:
- Uzak bir ana bilgisayara bağlanma.
- SFTP kullanarak dosyaları yedekleme, kopyalama ve yansıtma.
- TCP/IP ve diğer ağ protokollerini güvenli hale getirmek için bir istemcinin bağlantı noktasını sunucunun bağlantı noktasına eşleme.
- X Window Sistemini sunucudan istemcilere yönlendirme.
- Hassas verileri güvenli bir kanal üzerinden tünelleme.
- Sanal Özel Ağ Kullanma.
SSH anahtarları genellikle parolasız oturum açma, yapılandırma yönetimi ve yedekleme ile sunucu erişimini otomatikleştirmede kullanılır.
SSH Nasıl Kullanılır?
Bir SSH sunucusuna bağlanma, bir SSH istemcisi kullanılarak gerçekleştirilir. Çoğu Unix tabanlı ve Unix benzeri işletim sistemi, arka plan programı ve istemci önceden yüklenmiş olarak gelir. Bu sistemlerde, SSH istemcisi terminalde mevcuttur.
Terminali kullanarak uzak bir ana bilgisayara bağlanmak için, kullanıcı ssh komutunu ve ardından kullanıcı adını ve sunucu adresini veya ana bilgisayar adını verir:
ssh [username]@[server_ip_or_hostname]
Örneğin:
Not: SSH için bir kullanıcı adı belirtmezseniz, bağlantı şu anda oturum açmış olan kullanıcıyı kullanır.
Windows 10, 1709 sürümünden itibaren OpenSSH istemcisi ve sunucusu sunmaktadır. Windows’un önceki sürümleri SSH’yi bir özellik olarak içermiyordu, bu nedenle SSH bağlantısı kurmak için PuTTY gibi araçlar kullanılıyordu. PuTTY, SSH ve Telnet için bir GUI’ye sahip bir SSH istemcisidir:
Windows için diğer bazı popüler SSH istemcileri şunları içerir:
- Azar azar
- WinSCP
- Yavru kedi
- Solar-PuTTY
- SmarTTY
SSH Ne Kadar Güvenli?
Standart güvenlik önlemleri ile kullanıldığında, SSH protokolünün oldukça güvenli olduğu kabul edilir. Ancak SSH bağlantılarının güvenliğinin sağlanmasında insan faktörü önemli bir rol oynamaktadır.
SSH sunucularına kaba kuvvet saldırıları yaygın bir senaryodur. Saldırganlar, ortak kullanıcı adlarını ve parolaları kullanarak çok sayıda SSH sunucusuna bağlanmaya çalışır. Bir sunucuya erişim kazandıklarında, kök hesaba erişim elde etmek için ayrıcalık yükseltmeyi kullanırlar.
SSH anahtarları, parolalardan daha güvenli bir kimlik doğrulama yöntemi olarak önerilir. Bununla birlikte, zayıf SSH anahtar yönetimi, kritik bilgileri anahtarları gizli tutmaya bağlı olan kuruluşlar için hala önemli bir risk oluşturmaktadır.
SSH anahtarları daha iyi koruma sağlarken, kötüye kullanımları, kötü niyetli kişilerin ayrıcalıklı bilgilere erişmesini sağlayabilir. Bu bilgiler, veritabanları, yönlendiriciler, ödeme sistemleri vb. gibi hesapları ve kaynakları içerir.
Açığa çıkan SSH bağlantı noktaları başka bir potansiyel güvenlik zayıflığıdır. Bazı kötü amaçlı yazılım programları, bağlantı noktaları açıkta olan IoT cihazlarına saldırır ve bunları yerel ağa arka kapı girişi olarak kullanır.
Son olarak, piyasadaki çok sayıda SSH istemcisi, protokolün güvenliğinin üçüncü taraf uygulamalarının güvenliğine de bağlı olduğu anlamına gelir.
Çözüm
Bu makale, SSH protokolünün, geçmişinin, özelliklerinin ve kullanım durumlarının bir özetini sunmaktadır.
Sunucunuz için güvenlik çözümleriyle ilgileniyorsanız, Sunucunuzu Güvenli Hale Getirmek için 21 İpucu’nu okuyun.