Uzaktan çalışmanın giderek popüler hale geldiği günümüz dünyasında, SSH gibi uzaktan erişim çok önemlidir. Bu gibi güvenli protokolleri kullanmamız neredeyse zorunluluktur. Böyle bir protokol, uzaktan sunucu yönetimi için güvenli ve şifreli bağlantı sağlar.
Bu yazımızda SSH veya Secure Shell protokolünün detaylarına bakacağız. Kısaca tarihine, güvenliğine, kimlik doğrulama yöntemlerin inceleyeceğiz. Son olarak, uzaktan bağlantı yapmak için Windows 10’a SSH Server kurulumu yapacağız.
SSH Protokolü Nedir?
SSH veya Secure Shell, kullanıcıların uzak sunucularını Internet üzerinden kontrol etmelerini ve değiştirmelerini sağlayan uzaktan yönetim protokolüdür.
Şifreli veri iletimi için kullandığımız SSH (Secure Shell) protokolü, 22 port numarası kullanır. Böylece, uzaktan bağlantı sağlayarak makine kontrol yönetimi sağlar.
Bu protokolü şifrelenmemiş Telnet için güvenli yedek bağlantı olarak oluşturdular. Bu, uzak sunucuya yapılan tüm iletişimleri şifrelediğimiz anlamına gelir. Ancak bazı güvenli ve sağlam şifreleme teknikleri kullanır.
Onu uygulayan ve ağ üzerinden uzak makinelere erişmek için kullanılan programın adıdır. Bilgisayarı komut yorumlayıcısı aracılığıyla tamamen yönetmemizi sağlar. Bu sebeple çalışan bir SSH Sunucumuz (Unix ve Windows sistemlerinde) varsa grafik programlarını yürütmek için X trafiğini yeniden yönlendirebilir.
SSH, diğer cihazlara bağlanmaya ek olarak, verileri güvenli bir şekilde kopyalamamıza izin verir. Bu hem tek dosyalar hem de şifreli FTP oturumlarını simüle etmemizi sağlar. Ayrıca, cihazlara bağlanırken anahtar yazmamak için RSA anahtarlarını yönetmemize ve başka uygulamadan veri kanalından geçirmemize izin verir.
SSH Güvenliği
SSH, telnet ile aynı şekilde çalışır. Temel fark, SSH’nin medyada dolaşan bilgileri okunamaz hale getiren şifreleme teknikleri kullanmasıdır.
Aynı zamanda hiçbir üçüncü tarafın bağlantının kullanıcı adını ve şifresini veya tüm oturum boyunca metinleri bulamaz.
REPLAY saldırıları ile bu tür sistemlere saldırmak ve böylece hedefler arasındaki bilgileri değiştirmek mümkündür.
Tarihi
SSH protokolünün ilk başta, yalnızca telnet’e benzer şekilde çalışan rlogin programına dayanan r komutları vardı.
SSH’in ilk sürümü ücretsizdi. Ancak, Tatu Ylönen bunu değiştirdi ve lisansladı. Böylece, SSH Communications Security şirketi ortaya çıktı. Bunun sonucunda yerel ve akademik kullanım için ücretsiz teklif etti. Bunlar dışında kullanıma ise ödeme talep etti.
1997 yılında IETF’de taslak halinde önerdiler. Yani bunu ilk versiyonundan iki yıl sonra yaptılar.
1999’un başlarında, OpenBSH’nin OpenSSH adlı mükemmel uygulama haline gelecek sürümü yazmaya başlandı.
SSH Kimlik Doğrulama
1) Parola Kimlik Doğrulaması
SSH, kullanıcının normal Unix parolasını kullanarak kimlik doğrulamasına izin verir. Tek fark, parolanın asla ağ üzerinden net bir şekilde dolaşmamasını sağlar. Diğer yandan Telnet, rlogin veya FTP’yi değiştirmek için SSH kullanırsak, şifremizin ağdaki olası “sniffers” tehlikesini önleyeceğiz.
Öte yandan, parolaya karşı “dictionary attacks/sözlük saldırılarına” karşı savunmasız olmaya devam edeceğiz. Saldırganın / etc / passwd
dosyasına erişimi varsa, görünebilecek sözcüklerden oluşan parolaları bulmak zor değildir.
Bu, yöneticinin /etc/passwd
dosyasını düzgün şekilde korumasını gerektirir. Bu yüzden kullanıcıların “güvenli” parolalar kullanması son derece önemli olduğu anlamına gelir.
2) Ortak Anahtar Kimlik Doğrulaması
İkinci kimlik doğrulama alternatifi, asimetrik anahtar olarak da bilinen genel / özel anahtar şeması kullanır. SSH, bu şemada anahtar çiftini kullanır:
- Bağlanmak istediğimiz tüm sunuculara kopyaladığı ortak anahtar.
- Sadece sahip olduğumuz özel anahtartır. Ek güvenlik için bu anahtarı parola ile şifreler.
Bu iki anahtarın önemli özelliği vardır. Ortak anahtarla şifrelediği metnin şifresini sadece özel anahtar kullanarak çözer.
Bu özelliğin kimlik doğrulama işlemine nasıl uygulandığını görelim:
- Sunucu bize, özel anahtarımızla şifreli olarak geri dönmemiz gereken mesaj gönderir.
- Sunucu, genel anahtarımızla yanıt mesajının şifresini çözer.
- Sunucu, elde edilen mesajı orijinal metinle karşılaştırır. Eşleşirlerse, sunucu bizi doğru şekilde kimlik doğrulaması olarak görür.
Tabii ki, tüm bu süreç kullanıcı için şeffaftır. Yalnızca program istediğinde parolayı yazmak konusunda endişelenmemiz gerekir. Bu şemanın en zayıf noktası, ortak anahtarımızı sunucuya nasıl alacağımızdır. Şu anda bunu yapmanın otomatik bir yolu yoktur ve bunu elle yapmaktan başka bir yolu yoktur.
SSH kimlik doğrulama yönteminin temel avantajı, bir saldırgan sunucunun güvenliğini aşmayı başarsa bile, yalnızca ortak anahtarımıza erişebilmeleridir. Ancak hiçbir zaman özel anahtarımıza erişemezler. Bu yüzden, olası müşteri güvenliğinin aşılmasını önlemek için özel anahtarın uygun parola ile korunması gerekir. Bu şekilde, onu ele geçirmeyi başarabildikleri halde kimse kullanamaz.
Unix makinesinden bağlanmamız durumunda ikincil avantajı vardır. Her bağlantıda parolanın yazılmasını önlemek için bir kimlik doğrulama ajanını kullanır.
Ortak anahtar kimlik doğrulamasının en büyük dezavantajı, biraz hantal olabilen ön yapılandırma aşamasıdır. İzlenecek adımlar şunlardır:
- Anahtarların oluşturulması.
- Açık anahtarın yayılması.
- Anahtar çiftinin seçimi
Uzak Bir Sunucuya Bağlanma
Unix/Linux tipi istemciden uzak SSH bağlantısı yapabiliriz. Örneğin, sunucuya erişmek için bir konsolda şu komutu yazın:
$ ssh example.com
Uzak sunucuda root olarak bağlanmak istiyorsanız ise şunu yazın. Ancak bu bağlantı türünde istemci olarak diğer kullanıcılar gibiyiz.
$ ssh -l root example.com
Uzak bir kullanıcının kimliğini doğrulayarak istemciden sunucuya veri aktarır. Ardından, tekrar istemciye iletmek için mekanizma sağlar.
Yani, bilgisayarınıza SSH Server kurdunuz. Daha sonra, LAN veya WAN üzerinden sunucunuza erişmek için SSH Client kullanmanız gerekir.
Diyelim uzak lokasyondan ağ üzerindeki sunucuya bağlantı kurdunuz. Bu durumda ise, verileriniz güçlü şifreleme algoritması ile transfer edersiniz.
SSH protokolü kullanarak güvenli veri transferi TCP üzerinden gerçekleşir. Eğer uzak konumdan sunucuya erişmek için ADSL Modem veya Router’ınız üzerinde TCP/22 Portunu yapılandırmanız gerekir.
SSH Bağlantısı Güvenli mi?
Bu bağlantı türü veri güvenliği için SSL sertifikası kullanır.
Örneğin, bir websitesini ziyaret ettiğinizde sol üst köşede bir yeşil bir simge görürsünüz. Bu ikon, websitesinin bir SSL sertifikası olduğunu ve verilerinizin güvenli olarak iletildiğini belirtir. Sonuç olarak, veri akışının güvenilirliği sağlanır.
Windows 10 Üzerinde SSH Server Nasıl Kurulur?
SSH yani Secure Shell protokolü tanımını yaptık. Şimdi, Windows işletim sistemleri üzerinde SSH kurulumu nasıl yapacağımıza bakalım.
Önceki yazılarımızda, Telnet protokolünü inceledik. Windows 7,8,8.1 ve Windows 10 üzerinde Telnet Client’i Windows Özellikleri’nden etkinleştirdik. Fakat, Windows üzerinde SSH Client’i Windows Özellikleri’nden basit olarak etkinleştiremiyoruz.
Bu nedenle, sunucuya bağlantı kurmak amacıyla Putty gibi 3. parti programa ihtiyacımız var.
Bu protokolü Telnet ile karşılaştırırsak, çok daha güvenli olduğunu görebilirsiniz.
Windows bilgisayarınızda SSH sunucu çalıştırmak amacıyla iki program lazım. Bunlar OpenSSH ve Putty yazılımlarıdır.
OpenSSH ve Putty programlarını bilgisayarınıza indirip kurunuz. Ardından, öncelikle sanallaştırma programınız üzerinde Windows 10 sanal makine kurulumu yapınız.
Adımlar:
VMware sanal makineyi OpenSSH sunucu olarak kullanmak neticesinde aşağıdaki adımları sırasıyla takip ediniz.
Adım 1
Host’unuz üzerindeki ağ bağdaştırıcısının IP adresini kontrol ediniz.
Adım 2
Guest makinenin ağ ayarlarını VMnet4/Bridged olarak yapılandırınız. Bundan sonra makinenin DHCP sunucudan aldığı IP’sine bakın.
Adım 3
Şimdi de VM’nin ağ bağdaştırıcı ayarını yapmalıyız. Bu yüzden bunu Virtual Network Editor‘den denetleyin.
Adım 4
VMware Virtual Network Editör programında VMnet4 veya yeni VMnet oluşturabilirsiniz. VMnet4 adaptör kartının Bridged olarak ayarlandığını kontrol ediniz.
Adım 5
Bilgisayarınıza indirdiğiniz OpenSSH programını sanal makineye kopyalayınız. Daha sonra kurulumu yapmak için setupssh.exe dosyasını yönetici olarak çalıştırınız.
Adım 6
Kurulacak programın dilini seçiniz ve OK’u seçin.
Adım 7
Sihirbazı, OpenSSH programı kurulumunu hazırlanıyor.
Adım 8
OpenSSH kurulum penceresinde Next ile ilerleyin.
Adım 9
OpenSSH lisans anlaşmasını kabul ederek Next’i seçin.
Adım 10
Components (Bileşenler) penceresinde Server seçeneğini işaretleyiniz ve Next’e tıklayın.
Adım 11
Kurulum lokasyonu penceresinde, varsayılan ayarları bırakıp Next tıklayın.
Adım 12
Başlangıç menü klasörü seç penceresinde, Next’le devam edin.
Adım 13
Run as LOCAL_SYSTEM penceresinde, bu ayarı seçin.
Adım 14
SSH bağlantısı, varsayılan port numarası 22’yi kullandığını belirtmiştik.
Adım 15
Güvenli bağlantı için Key/Anahtar oluştuğunda varsayılan değeri kabul edin.
Adım 16
Kullanıcı ayar penceresinde, Local Users seçerek devam edin.
Adım 17
Windows 10’da OpenSSH kurulurken bekleyin.
Adım 18
OpenSSH kurulumu tamamlandıktan sonra bir sonraki adıma geçiniz.
Adım 19
Kurulumu yaptıktan sonra, şimdi İstemci için yeni kullanıcı oluşturmanız gerekir.
Yeni bir kullanıcı oluşturmak için Computer Management(Bilgisayar Yönetimi) açınız.
Adım 20
Bilgisayar Yönetimi penceresinde Users (Kullanıcılar) üzerine ve ardından boş alanda Sağ Tuş’a basın.
Adım 21
Kullanıcı oluşturma penceresi açıldığında burada Yeni Kullanıcı seçeneğine basın.
Adım 22
Kullanıcı, parola ve açıklama yapılandırdıktan sonra Oluştur’a basın.
Adım 23
Client için yeni hesap oluşturduktan sonra pencereyi kapatmak için Close (Kapat) basın.
Adım 24
SSHUser kullanıcısını Administrator üyesi yapmak amacıyla çift tıklayın.
Adım 25
Üyelik sekmesine geçiniz ve ardından bir altta Ekle butonunu göreceksiniz. Ekle butonuna tıklayarak devam ediniz.
Adım 26
Grup seç penceresinde alttaki Gelişmiş tıklayınız.
Adım 27
Daha sonra Bul’a tıklayarak, işletim sistemi üzerinde grupları arayacaksınız.
Adım 28
Administrator hesabını seçtikten sonra OK tıklayınız.
Adım 29
Son olarak, tekrardan OK butonuna tıklayınız.
Adım 30
Kullanıcıyı Administrator grubuna üye yaptıktan sonra, OK’a tıklayın.
Adım 31
Şimdi, Server’a Host PC’den bağlanmak için Putty programını kullanacağız. Putty bize bir SSH Client hizmeti sağlayacaktır. Putty programını açmak için üzerine çift tıklayınız.
Adım 32
Putty programını açtıktan sonra, VM’nin (OpenSSH Server) IP adresini yazın ve Open (Aç) düğmesine tıklayın.
Adım 33
OpenSSH Server’a bağlantının sağlandığını aşağıdaki görüntüden inceleyebilirsiniz.
Adım 34
Sanal makinede oluşturduğunuz SSHUser kullanıcı adını yazın.
Adım 35
SSHUser’ın parolasını yazınız ve Enter tuşuna basınız.
Adım 36
SSH Server’a Putty kullanarak başarıyla bağlantı kurdunuz!
Adım 37
Sunucunun bilgisayar adını öğrenmek için “hostname” komutunu uygulayınız.
Adım 38
Ayrıca, OpenSSH Server üzerinden Hostname kontrol edebilirsiniz.
Adım 39
Sunuucuda yeni bir klasör oluşturmak için “md KlasörAdı” komutunu çalıştırınız.
Adım 40
Sanal makineye gidin ve C: sürücüsünü kontrol ederek yeni klasör oluşturduğunuzu kontrol edin.
Secure Shell Protokolü Kullanımı ⇒ Video
Bilgisayarınız veya VMware sanal makine üzerinde OpenSSH sunucu kurmak ve yapılandırmak için aşağıdaki videoyu izleyebilir ve ayrıca bize destek olmak için YouTube kanalımıza abone olabilirsiniz!
SSH Hakkında Sık Sorulan Sorular (SSS / FAQ)
- SSH nedir ve neden kullanılır?
- SSH nasıl çalışır?
- SSH ve SSL arasındaki fark nedir?
- Windows’ta SSH komutu nasıl kullanılır?
Sonuç
Bu yazımızda, Windows 7, Windows 8, Windows 8.1 ve Windows 10 işletim sistemleri üzerinde ücretsiz bir SSH Server nasıl kurulur inceledik.
OpenSSH programını kullanarak uzak bir lokasyondan sunucunuza güvenli olarak bağlanabilir ve dosya transferi yapabilirsiniz. Bizi takip ettiğiniz için teşekkürler!