ssh

Ubuntu 20'de SSH Sunucusunun Güvenliği Nasıl Sağlanır.04 Temelden Gelişmişe

Ubuntu 20'de SSH Sunucusunun Güvenliği Nasıl Sağlanır.04 Temelden Gelişmişe
Diğer tüm sunucular gibi SSH sunucusu da yetkisiz erişim girişimlerine açıktır. Bu nedenle, bir SSH sunucusu kullanmak istediğinizde, uzun vadede kendinizi istenmeyen durumlardan kurtarmak için önce onu güvenceye almayı düşünmüş olmalısınız. Genel olarak, "bir sunucunun güvenliğini sağlama" terimi, "bir sunucuyu sağlamlaştırma" olarak da bilinir.Bu birden fazla önlem alınarak yapılabilir. Bu önlemler, ihtiyaç duyduğunuz güvenlik düzeyine bağlıdır.

SSH sunucusunu güvence altına alma önlemleri, temelden gelişmişe kadar uzanır ve daha önce de söylediğimiz gibi, bunları ihtiyacınız olan güvenlik düzeyine göre alabilirsiniz. Sonuçlar hakkında yeterli bilgiye sahipseniz ve bunlarla yüzleşmek için iyi bir konumdaysanız, öngörülen önlemlerden herhangi birini atlayabilirsiniz. Ayrıca tek bir adımın %100 güvenlik sağlayacağını veya belirli bir adımın diğerinden daha iyi olduğunu asla söyleyemeyiz.

Her şey aslında hangi tür güvenliğe ihtiyacımız olduğuna bağlı. Bu nedenle, bugün size Ubuntu 20'de bir SSH sunucusunun güvenliğini sağlamak için temel ve gelişmiş adımlar hakkında çok derin bir fikir vermeyi amaçlıyoruz.04. Bu yöntemlerin dışında, SSH sunucunuzun güvenliğini sağlamak için bonus olarak bazı ek ipuçlarını da sizinle paylaşacağız. O halde bugünün ilginç tartışmasına başlayalım.

Ubuntu 20'de SSH Sunucusunun Güvenliğini Sağlama Yöntemi.04:

Tüm SSH konfigürasyonları /etc/ssh/sshd_config dosyasında saklanır. Bu dosya, SSH sunucunuzun normal çalışması için çok önemli kabul edilir. Bu nedenle, bu dosyada herhangi bir değişiklik yapmadan önce, terminalinizde aşağıdaki komutu çalıştırarak bu dosyanın bir yedeğini oluşturmanız önemle tavsiye edilir:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak


Bu komut başarılı bir şekilde yürütülürse, aşağıdaki resimde gösterildiği gibi size herhangi bir çıktı sunulmayacaktır:

Bu dosyanın bir yedeğini oluşturduktan sonra, bu adım isteğe bağlıdır ve bu yapılandırma dosyasında şu anda etkin olan tüm seçenekleri kontrol etmek istiyorsanız gerçekleştirilir. Terminalinizde aşağıdaki komutu çalıştırarak kontrol edebilirsiniz:

sudo sshd-T


SSH yapılandırma dosyasının şu anda etkin olan seçenekleri aşağıdaki resimde gösterilmektedir. Tüm seçenekleri görüntülemek için bu listeyi aşağı kaydırabilirsiniz.

Artık Ubuntu 20'deki temel adımlardan gelişmiş adımlara geçerken SSH sunucunuzun güvenliğini sağlamaya başlayabilirsiniz.04.

Ubuntu 20'de SSH Sunucusunun güvenliğini sağlamak için Temel Adımlar.04:

Ubuntu 20'de bir SSH sunucusunu güvence altına almak için temel adımlar.04 aşağıdaki gibidir:

Adım # 1: SSH Yapılandırma Dosyasını Açma:

Terminalinizde aşağıda belirtilen komutu çalıştırarak SSH yapılandırma dosyasını açabilirsiniz:

sudo nano /etc/ssh/sshd_config


SSH yapılandırma dosyası aşağıdaki resimde gösterilmektedir:

Adım # 2: Parola Tabanlı Kimlik Doğrulamayı Devre Dışı Bırakma:

Kimlik doğrulama için parola kullanmak yerine SSH anahtarları daha güvenli kabul edilir. Bu nedenle, kimlik doğrulama için SSH anahtarlarını oluşturduysanız, parola tabanlı kimlik doğrulamayı devre dışı bırakmanız gerekir. Bunun için, “PasswordAuthentication” değişkenini bulmanız, yorumunu kaldırmanız ve aşağıda gösterilen resimde vurgulandığı gibi değerini “hayır” olarak ayarlamanız gerekir:

Adım # 3: Boş Parolaları Reddetme/Reddetme:

Bazen kullanıcılar, kendilerini karmaşık şifreleri ezberlemekten kurtarmak için boş şifreler oluşturmayı son derece uygun bulurlar. Bu uygulama, SSH sunucunuzun güvenliğine zarar verebilir. Bu nedenle, tüm kimlik doğrulama girişimlerini boş parolalarla reddetmeniz gerekir. Bunun için, "PermitEmptyPasswords" değişkenini bulmanız ve aşağıdaki resimde vurgulandığı gibi değeri zaten varsayılan olarak "hayır" olarak ayarlandığından yorumunu kaldırmanız gerekir:

Adım # 4: Kök Girişini Yasaklamak:

Herhangi bir davetsiz misafirin sunucunuza kök düzeyinde erişim elde etmesini önlemek için kök oturum açma işlemlerini kesinlikle yasaklamalısınız. Bunu, "PermitRootLogin" değişkenini bularak, yorumunu kaldırarak ve aşağıda gösterilen resimde vurgulandığı gibi değerini "hayır" olarak ayarlayarak yapabilirsiniz:

Adım # 5: SSH Protokolü 2'yi Kullanmak:

SSH sunucusu iki farklı protokolde çalışabilir, i.e., Protokol 1 ve Protokol 2. Protokol 2, daha gelişmiş güvenlik özellikleri uygular, bu nedenle Protokol 1'e tercih edilir. Ancak Protokol 1, SSH'nin varsayılan protokolüdür ve SSH yapılandırma dosyasında açıkça belirtilmemiştir. Bu nedenle, Protokol 1 yerine Protokol 2 ile çalışmak istiyorsanız, aşağıdaki resimde vurgulandığı gibi SSH yapılandırma dosyanıza “Protokol 2” satırını açıkça eklemeniz gerekir:

Adım # 6: Bir Oturum Zaman Aşımı Ayarlama:

Bazen kullanıcılar bilgisayarlarını çok uzun süre gözetimsiz bırakırlar. Bu arada, herhangi bir davetsiz misafir gelip, güvenliğini ihlal ederken sisteminize erişebilir. Oturum zaman aşımı kavramının devreye girdiği yer burasıdır. Bu özellik, bir kullanıcının uzun süre hareketsiz kalması durumunda oturumunu kapatmak için kullanılır, böylece başka hiçbir kullanıcı sistemine erişemez.

Bu zaman aşımı, “ClientAliveInterval” değişkenini bularak, yorumunu kaldırarak ve istediğiniz herhangi bir değeri (saniye olarak) atayarak ayarlanabilir. Bizim durumumuzda buna “300 saniye” veya “5 dakika” değerini atadık. Bu, kullanıcı "300 saniye" boyunca SSH sunucusundan uzak durursa, aşağıda gösterilen resimde vurgulandığı gibi otomatik olarak oturumu kapatacağı anlamına gelir:

Adım # 7: Belirli Kullanıcıların SSH Sunucusuna Erişmesine İzin Verme:

SSH sunucusu, diğer her kullanıcının erişiminin gerekli olduğu bir sunucu değildir. Bu nedenle, erişimi yalnızca gerçekten ihtiyacı olan kullanıcılarla sınırlandırılmalıdır. Belirli kullanıcıların SSH sunucusuna erişmesine izin vermek için, SSH yapılandırma dosyasına “AllowUsers” adlı bir değişken eklemeniz ve ardından SSH sunucusuna erişmesine izin vermek istediğiniz tüm kullanıcıların adlarını bir boşlukla ayırarak yazmanız gerekir. Bizim durumumuzda, yalnızca bir kullanıcının SSH sunucusuna erişmesine izin vermek istedik. Bu nedenle, yalnızca aşağıdaki resimde vurgulandığı gibi adını ekledik:

Adım # 8: Kimlik Doğrulama Girişimlerinin Sayısını Sınırlama:

Bir kullanıcı bir sunucuya erişmeye çalıştığında ve kendisini ilk kez doğrulayamadığında, bunu tekrar dener. Kullanıcı, başarılı bir şekilde kimliğini doğrulayamayana ve dolayısıyla SSH sunucusuna erişim kazanana kadar bu girişimleri yapmaya devam eder. Bir bilgisayar korsanı bir Brute Force Attack (doğru eşleşme bulunana kadar tekrar tekrar bir parola tahmin etmeye çalışan bir saldırı) başlatabileceğinden, bu oldukça güvensiz bir uygulama olarak kabul edilir. Sonuç olarak, SSH sunucunuza erişim kazanabilecektir.

Bu nedenle, parola tahmin saldırılarını önlemek için kimlik doğrulama girişimlerinin sayısının sınırlandırılması şiddetle tavsiye edilir. SSH sunucusuna yapılan kimlik doğrulama girişimlerinin varsayılan değeri “6” olarak ayarlanmıştır. Ancak, ihtiyaç duyduğunuz güvenlik düzeyine bağlı olarak bunu değiştirebilirsiniz. Bunun için “MaxAuthTries” değişkenlerini bulmanız, yorumunu kaldırmanız ve değerini istediğiniz herhangi bir sayıya ayarlamanız gerekir. Aşağıda gösterilen resimde vurgulandığı gibi, kimlik doğrulama girişimlerini "3" ile sınırlamak istedik:

Adım # 9: SSH Sunucusunu Test Modunda Çalıştırma:

Şimdiye kadar, SSH sunucumuzu Ubuntu 20'de güvence altına almak için tüm temel adımları attık.04. Ancak yine de yeni yapılandırdığımız seçeneklerin düzgün çalıştığından emin olmamız gerekiyor. Bunun için önce yapılandırma dosyamızı kaydedip kapatacağız. Bunu yaptıktan sonra SSH sunucumuzu test modunda çalıştırmayı deneyeceğiz. Test modunda başarılı bir şekilde çalışırsa, yapılandırma dosyanızda herhangi bir hata olmadığı anlamına gelir. Terminalinizde aşağıdaki komutu çalıştırarak SSH sunucunuzu test modunda çalıştırabilirsiniz:

sudo sshd -t


Bu komut başarıyla yürütüldüğünde, aşağıdaki resimde gösterildiği gibi terminalde herhangi bir çıktı görüntülemeyecektir. Ancak, yapılandırma dosyanızda herhangi bir hata olacaksa, bu komutu çalıştırmak bu hataları terminalde işleyecektir. Daha sonra bu hataları düzeltmeniz gerekecek. Ancak o zaman daha fazla ilerleyebileceksiniz.

Adım # 10: SSH Sunucusunu Yeni Konfigürasyonlarla Yeniden Yükleme:

Şimdi SSH sunucusu test modunda başarılı bir şekilde çalıştığında, yeni yapılandırma dosyasını okuyabilmesi için yeniden yüklememiz gerekiyor, i.e., yukarıda gösterilen adımlarda SSH yapılandırma dosyasında yaptığımız değişiklikler. SSH sunucusunu yeni yapılandırmalarla yeniden yüklemek için terminalinizde aşağıdaki komutu çalıştırmanız gerekir:

sudo hizmeti sshd yeniden yükleme


SSH sunucunuz başarıyla yeniden başlatılırsa, aşağıdaki resimde gösterildiği gibi terminal herhangi bir çıktı göstermeyecektir:

Ubuntu 20'de SSH Sunucusunun güvenliğini sağlamak için Gelişmiş Adımlar.04:

Ubuntu 20'de SSH sunucusunun güvenliğini sağlamak için tüm temel adımları gerçekleştirdikten sonra.04, sonunda gelişmiş adımlara geçebilirsiniz. Bu, SSH sunucunuzun güvenliğini sağlamak için sadece bir adımdır. Ancak, yalnızca orta düzeyde bir güvenlik düzeyi elde etmeyi amaçlıyorsanız, yukarıda açıklanan adımlar yeterli olacaktır. Ancak biraz daha ileri gitmek istiyorsanız, aşağıda açıklanan adımları takip edebilirsiniz:

Adım # 1: ~/.ssh/yetkili_anahtarlar Dosya:

SSH sunucusunu güvence altına almanın temel adımları, SSH yapılandırma dosyası içinde uygulanır. Bu, bu politikaların SSH sunucusuna erişmeye çalışacak tüm kullanıcılar için geçerli olacağı anlamına gelir. Ayrıca, temel adımların SSH sunucusunu güvence altına almak için genel bir yöntemi temsil ettiği anlamına gelir. Ancak, “Derinlikli Savunma” ilkesini dikkate almaya çalışırsak, her bir SSH anahtarını ayrı ayrı güvence altına almamız gerektiğini anlayacağız. Bu, her bir anahtar için açık güvenlik parametreleri tanımlanarak yapılabilir. SSH anahtarları ~/ dizininde saklanır.ssh/yetkili_keys dosyası, bu nedenle güvenlik parametrelerini değiştirmek için önce bu dosyaya erişeceğiz. ~/ dizinine erişmek için terminalde aşağıdaki komutu çalıştıracağız.ssh/yetkili_keys dosyası:

sudo nano ~/.ssh/yetkili_anahtarlar

Bu komutu çalıştırmak, belirtilen dosyayı nano düzenleyici ile açacaktır. Ancak, bu dosyayı açmak için seçtiğiniz başka bir metin düzenleyiciyi de kullanabilirsiniz. Bu dosya, şimdiye kadar oluşturduğunuz tüm SSH anahtarlarını içerecektir.

Adım # 2: Belirli Anahtarlar için Özel Konfigürasyonları Tanımlama:

Gelişmiş bir güvenlik düzeyi elde etmek için aşağıdaki beş seçenek mevcuttur:

Bu seçenekler, seçtiğiniz herhangi bir SSH anahtarından önce yazılabilir ve bu anahtar için kullanılabilir hale getirilebilir. Tek bir SSH anahtarı için birden fazla seçenek de yapılandırılabilir. Örneğin, belirli bir anahtar için bağlantı noktası yönlendirmeyi devre dışı bırakmak veya başka bir deyişle, belirli bir anahtar için bağlantı noktası yönlendirmesiz uygulamak istiyorsanız, sözdizimi aşağıdaki gibi olacaktır:

port yönlendirmesiz İstenenSSHKey

Burada, DesiredSSHKey yerine, ~/ içinde gerçek bir SSH anahtarına sahip olacaksınız.ssh/yetkili_keys dosyası. İstediğiniz SSH anahtarları için bu seçenekleri uyguladıktan sonra ~/.ssh/authorized_keys dosyasını açın ve kapatın. Bu gelişmiş yöntemle ilgili iyi bir şey, bu değişiklikleri yaptıktan sonra SSH sunucunuzu yeniden yüklemenizi gerektirmeyecek olmasıdır. Bunun yerine bu değişiklikler SSH sunucunuz tarafından otomatik olarak okunacaktır.

Bu sayede gelişmiş güvenlik mekanizmalarını uygulayarak her bir SSH anahtarının güvenliğini derinlemesine sağlayabileceksiniz.

Ubuntu 20'de SSH Sunucusunun güvenliğini sağlamak için Bazı Ek İpuçları.04:

Yukarıda attığımız tüm temel ve gelişmiş adımların yanı sıra, Ubuntu 20'de SSH sunucusunun güvenliğini sağlamak için çok iyi olduğunu kanıtlayabilecek bazı ek ipuçları da var.04. Bu ek ipuçları aşağıda tartışılmıştır:

Verilerinizi Şifreli Tutun:

SSH sunucunuzda bulunan verilerin yanı sıra aktarımda kalan veriler de güçlü bir şifreleme algoritması ile şifrelenmelidir. Bu, yalnızca verilerinizin bütünlüğünü ve gizliliğini korumakla kalmayacak, aynı zamanda tüm SSH sunucunuzun güvenliğinin tehlikeye girmesini de önleyecektir.

Yazılımınızı Güncel Tutun:

SSH sunucunuzda çalışan yazılımlar güncel olmalıdır. Bu, yazılımınızdaki hiçbir güvenlik hatasının gözetimsiz kalmamasını sağlamak için yapılır. Aksine, zamanında iyi bir şekilde yamalanmaları gerekir. Bu sizi uzun vadede olası zararlardan kurtaracak ve ayrıca sunucunuzun güvenlik sorunları nedeniyle çökmesini veya hizmet dışı kalmasını önleyecektir.

SELinux'un Etkin olduğundan emin olun:

SELinux, Linux tabanlı sistemlerde güvenliğin temel taşını oluşturan mekanizmadır. Zorunlu Erişim Kontrolü (MAC) uygulayarak çalışır. Güvenlik politikasında erişim kurallarını tanımlayarak bu erişim kontrol modelini uygular. Bu mekanizma varsayılan olarak etkindir. Ancak, kullanıcıların bu ayarı istedikleri zaman değiştirmelerine izin verilir. Bu, istedikleri zaman SELinux'u devre dışı bırakabilecekleri anlamına gelir. Ancak, SSH sunucunuzun olası tüm zararlardan korunabilmesi için SELinux'u her zaman etkin tutmanız şiddetle tavsiye edilir.

Sıkı Parola Politikaları Kullanın:

SSH sunucunuzu parolalarla koruduysanız, güçlü parola politikaları oluşturmanız gerekir. İdeal olarak, şifreler 8 karakterden uzun olmalıdır. Belirli bir süre sonra, örneğin 2 ayda bir değiştirilmeleri gerekir. Herhangi bir sözlük kelimesi içermemelidirler; daha ziyade, alfabeler, sayılar ve özel karakterlerin bir kombinasyonu olmalıdır. Benzer şekilde, yeterince güçlü olduklarından emin olmak için parola ilkeleriniz için başka ekstra katı önlemler tanımlayabilirsiniz.

SSH Sunucunuzun Denetim Günlüklerini İzleyin ve Bakımını Yapın:

SSH sunucunuzda bir şeyler ters giderse, ilk yardımcınız denetim günlükleri olabilir. Bu nedenle, sorunun temel nedenini geri izleyebilmeniz için bu günlükleri tutmaya devam etmelisiniz. Ayrıca, SSH sunucunuzun sağlığını ve çalışmasını sürekli olarak izlemeye devam ederseniz, bu aynı zamanda herhangi bir büyük sorunun oluşmasını da önleyecektir.

Verilerinizin Düzenli Yedeklenmesini Sağlayın:

Son olarak, her zaman tüm SSH sunucunuzun bir yedeğini almalısınız. Bunu yapmak yalnızca verilerinizi bozulmaktan veya tamamen kaybolmaktan kurtarmakla kalmaz; bunun yerine, ana sunucunuz çöktüğünde bu yedekleme sunucusunu da kullanabilirsiniz. Bu aynı zamanda sunucu kesinti süresini de sınırlandıracak ve kullanılabilirliğini sağlayacaktır.

Sonuç:

Bu makalede belirtilen tüm önlemlere dikkat ederek Ubuntu 20'de SSH sunucunuzu kolayca güvenli hale getirebilir veya sağlamlaştırabilirsiniz.04. Ancak, Bilgi Güvenliği geçmişinden geliyorsanız, %100 güvenlik diye bir şey olmadığının çok iyi farkında olmalısınız. Alabileceğimiz tek şey, en iyi çaba vaadidir ve bu en iyi çaba, yalnızca ihlal edileceği zamana kadar güvenli olacaktır. Bu yüzden tüm bu önlemleri aldıktan sonra bile SSH sunucunuzun %100 güvenli olduğunu söyleyemezsiniz; daha doğrusu, hiç aklınıza bile gelemeyecek kadar zayıf noktalara sahip olabilir. Bu tür güvenlik açıkları ancak SSH sunucumuzu yakından takip edersek ve gerektiğinde güncellemeye devam edersek halledilebilir.

How to change Left & Right mouse buttons on Windows 10 PC
It's quite a norm that all computer mouse devices are ergonomically designed for right-handed users. But there are mouse devices available which are s...
Emulate Mouse clicks by hovering using Clickless Mouse in Windows 10
Using a mouse or keyboard in the wrong posture of excessive usage can result in a lot of health issues, including strain, carpal tunnel syndrome, and ...
Add Mouse gestures to Windows 10 using these free tools
In recent years computers and operating systems have greatly evolved. There was a time when users had to use commands to navigate through file manager...