CyberFlow Logo CyberFlow BLOG
Ssh Pentest

Güvenlik Önlemleri ve Hardening: Siber Güvenlikte Temel Adımlar

✍️ Ahmet BİRKAN 📂 Ssh Pentest

SSH güvenliği için önemli hardening tekniklerini inceleyin. Güçlü önlemlerle siber tehditlere karşı nasıl korunabileceğinizi öğrenin.

Güvenlik Önlemleri ve Hardening: Siber Güvenlikte Temel Adımlar

SSH protokollerinin güvenliğini artırmak için uygulanacak hardening tekniklerini keşfedin. Güvenlik parametreleri, yapılandırma dosyaları ve zayıf algoritmaları ayıklama üzerine bilgiler bulacaksınız.

Giriş ve Konumlandırma

Siber güvenlik, modern iş dünyasının ve dijital yaşamın ayrılmaz bir parçası haline gelmiştir. Organizasyonların, veri ihlalleri ve siber saldırılara karşı korunabilmesi için alacakları güvenlik önlemleri ve sistem sıkılaştırma (hardening) adımları son derece kritik bir öneme sahiptir. Bu yazının amacı, güvenlik önlemleri ve sıkılaştırma pratiğinin önemini açıklamak ve okuyucuları teknik derinliğe hazırlamak olacaktır.

Siber Güvenliğin Temelleri

Siber güvenliğin temel amacı, bilgi sistemlerinin gizliliğini, bütünlüğünü ve erişilebilirliğini korumaktır. Bunu sağlamak için bir dizi teknik ve stratejik önlem alınması gerekmektedir. Özellikle, sistemlerin şifrelenmesi, kullanıcı sınırlamaları ve güvenlik protokollerinin güncellenmesi gibi uygulamalar hayati öneme sahiptir.

Hardening, bir sistemin saldırı yüzeyini azaltmak amacıyla yapılan tüm teknik düzenlemeleri ifade eder. Bu, sistemdeki zayıf noktaların kapatılmasını, gereksiz servislerin devre dışı bırakılmasını ve güvenlik politikalarının güçlendirilmesini içerir. Güvenlik önlemleri ve sıkılaştırma, genellikle pentest (penetrasyon testi) faaliyetleri ile birlikte uygulanır; böylece sistemdeki zafiyetler tespit edilip, uygun önlemler alınabilir.

Neden Önemlidir?

Küresel ölçekte artan siber saldırılar, bireyler ve kurumlar için siber güvenlik önlemlerinin vazgeçilmez olduğunu gözler önüne sermektedir. Bir veri ihlali durumunda, yalnızca finansal kayıplar değil, aynı zamanda itibar kaybı ve müşteri güveninin zedelenmesi gibi zararlara da yol açabilmektedir.

Ayrıca, birçok yasal düzenleme ve sektör standartları, belirli güvenlik önlemlerinin alınmasını zorunlu kılmaktadır. Bu bağlamda, sistemlerinizi uygun şekilde sıkılaştırmak, yasal yükümlülüklerinizi yerine getirmenize ve veri güvenliğinizi artırmanıza yardımcı olacaktır.

Pentest ve Savunma Anlayışı

Siber güvenlik alanında pen test, bir sistemin güvenliğini değerlendirmek için gerçekleştirilen simüle saldırılardır. Bu testler, gerçek bir saldırı ortamını taklit ederek, potansiyel zayıflıkları ortaya çıkarmayı amaçlar. Elde edilen verilerle, sistemin güvenlik açıkları tespit edilir ve gerekli güvenlik önlemleri alınır.

Pentest sürecinde yapılan testler genellikle sistem konfigürasyonu, zayıf şifreleme algoritmaları, kullanıcı yetkilendirmesi ve oturum güvenliği üzerine yoğunlaşmaktadır. Örneğin, bir sistemde kullanılan şifreleme algoritmalarının güncelliği kritik öneme sahiptir. Zayıf algoritmaların kullanılması, sisteme yönelik saldırıları daha da kolaylaştırır.

Şifreleme algoritmalarının yanı sıra, sistem yapılandırmaları da sistem güvenliğinde önemli rol oynamaktadır. Örneğin, sshd_config dosyasındaki parametrelerin doğru şekilde ayarlanması, saldırı yüzeyini %90 oranında daraltabilmektedir. Kaba kuvvet saldırılarına karşı koymak için MaxAuthTries ayarını kontrol etmek, bu tür saldırıların etkisini azaltmak için önemlidir.

# SSH protokol desteğini kontrol etmek için Nmap komutu
nmap -p 22 --script sshv1 10.0.0.1

Bu ve benzeri komutlar, sistem yöneticilerinin mevcut durumlarını değerlendirmesine ve uygun önlemleri alabilmesine olanak tanır. Zayıf yapıların belirlenmesi, organizasyonların güvenlik stratejilerini daha sağlam hale getirmeleri açısından kritik bir adımdır.

Sonuç

Siber güvenlikte güvenlik önlemleri ve sisteme yönelik sıkılaştırma uygulamaları, iş sürekliliğini ve veri güvenliğini sağlamak için zorunludur. Bu yazının ilerleyen kısımlarında, SSH protokollerinin sıkılaştırılması, kritik güvenlik parametreleri ve uygulamalar gibi konular detaylandırılacaktır. Siber güvenliğin temellerini adım adım öğrenmek, okuyuculara daha güvenli bir dijital ortam oluşturma yolunda rehberlik edecektir.

Teknik Analiz ve Uygulama

SSH Protokol Sıkılaştırma

Siber güvenlikte ilk adım, güvenliği artırmak için mevcut sistemlerin yapılandırmasını optimize etmektir. SSH (Secure Shell) protokolü, uzaktan sunucu yönetimi için yaygın bir araçtır ve düzgün bir şekilde sıkılaştırılması kritik bir öneme sahiptir. Öncelikle, SSH-1 protokolü tasarım hataları nedeniyle güvensizdir ve bu nedenle modern sistemlerde sadece SSH-2 protokolünün aktif olması sağlanmalıdır. Hedef sunucunun hangi protokolleri desteklediğini kontrol etmek için aşağıdaki Nmap komutunu kullanabilirsiniz:

nmap -p 22 --script sshv1 <sunucu_ip_adresi>

Kritik Güvenlik Parametreleri

SSH güvenliğini artırmak için yapılandırma dosyası olan sshd_config dosyasında bazı temel parametrelerin doğru bir şekilde ayarlanması gerekmektedir. Örneğin, root erişiminin yönetimi için PermitRootLogin no ifadesini kullanmak, root kullanıcısının SSH üzerinden doğrudan giriş yapmasını engeller. Bunun yanı sıra, parola ile girişleri kapatmak ve sadece anahtar tabanlı girişi zorunlu kılmak için PasswordAuthentication no parametresini ayarlamak da önemlidir.

# /etc/ssh/sshd_config dosyasına ekleyin
PermitRootLogin no
PasswordAuthentication no

Zayıf Algoritmaları Ayıklama

Ayrıca, sistemin zayıf ve güvenli olmayan algoritmalardan arındırılması gerekmektedir. Ed25519 ve RSA 4096, günümüzde önerilen en güvenli anahtar algoritmalarıdır. Buna karşın, 3DES, Blowfish, ve MD5 gibi zayıf algoritmalar kesinlikle devre dışı bırakılmalıdır. Özellikle aşağıdaki ayarlarla yapılandırma dosyanızda bitirdiğinizden emin olun:

# Zayıf algoritmaların devre dışı bırakılması
Ciphers aes256-ctr,aes192-ctr,aes128-ctr
KexAlgorithms curve25519-sha256,ecdh-sha2-nistp256
Macs hmac-sha2-256,hmac-sha2-512

Beyaz Liste (Whitelisting) Uygulaması

Sistemdeki her kullanıcının SSH yapmasına gerek yoktur. Belirli kullanıcıları tanımlamak için AllowUsers parametresiyle sadece izin verilen kullanıcıların SSH erişimine açık hale getirilmesi, yetkisiz erişim riskini önemli ölçüde azaltır. Örneğin, aşağıdaki satırı sshd_config dosyanıza ekleyerek sadece "ahmet" kullanıcısına izin verebilirsiniz:

AllowUsers ahmet

MFA (Çift Faktörlü Doğrulama) Entegrasyonu

SSH erişimi için çok faktörlü kimlik doğrulamanın (MFA) kullanımı, ek bir güvenlik katmanı sağlar. Ubuntu sistemlerinde bunu sağlamak için libpam-google-authenticator paketini kurarak Google Authenticator ile entegre edebilirsiniz:

sudo apt install libpam-google-authenticator

Kurulumdan sonra, kullanıcınız google-authenticator komutunu çalıştırarak talimatları takip edebilir. Bu, her girişte bir QR kodu tarayarak doğrulama yapmanızı sağlayacaktır.

Zaman Aşımı ve Oturum Güvenliği

Açık unutulan SSH oturumları, fiziksel erişimi olan biri için büyük bir fırsat oluşturur. Bu nedenle, oturum zaman aşımını yönetmek kritik öneme sahiptir. ClientAliveInterval ve LoginGraceTime ayarları ile aktif olan ama kullanılmayan oturumların sınırlandırılmasını sağlamak için yapılandırma ayarları şu şekilde olmalıdır:

ClientAliveInterval 300
LoginGraceTime 60

Bu ayarlar, 5 dakikalık bir boş kalma süresinin ardından sunucunun istemciye sinyal göndermesini ve 60 saniye içindeki kimlik doğrulaması başarısız olduğunda oturumun otomatik olarak sonlandırılmasını sağlayacaktır.

Fail2Ban ile Dinamik Savunma

Kaba kuvvet saldırılarını önlemek için, Fail2Ban gibi dinamik savunma sistemleri kullanılmalıdır. Fail2Ban, belirli bir süre içinde belirli sayıda hatalı giriş denemesi yapan IP adreslerini otomatik olarak engelleme özelliğine sahiptir. Fail2Ban durumunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz:

systemctl status fail2ban

Bilgi İfşası ve Banner Yönetimi

Son olarak, sunucu bilgilerini ifşa etmemek için DebianBanner no ve PrintMotd no ayarlarını kullanarak saldırganların hedefe yönelik bilgi bulmasını zorlaştırmalısınız. Bu tür ayrıntılar, bir saldırganın hedef sistem için uygun bir exploit bulmasını kolaylaştırır.

# Bilgi ifşasını azaltmak için ayarlar
DebianBanner no
PrintMotd no

Bu adımlar, güvenli bir SSH yapılandırması için önemli bir temel oluşturur ve siber güvenlikte sıkılaştırma işlemine olan ihtiyacı ortaya koyar. Unutulmamalıdır ki, tüm bu yapılandırma ayarları, sürekli olarak gözden geçirilmeli ve güncellenmelidir.

Risk, Yorumlama ve Savunma

Siber güvenlikte risk değerlendirmesi, güvenlik önlemlerinin etkinliği ve sistemin genel güvenlik durumu hakkında bilgi edinilmesi açısından kritik bir adımdır. Risklerin doğru bir şekilde anlaşılması, organizasyonların potansiyel zayıflıklarını belirlemesine ve bu zayıflıklara yönelik savunma stratejileri oluşturmasına olanak tanır.

Elde Edilen Bulguların Güvenlik Anlamı

Bir sistemde gerçekleştirilen güvenlik taramaları ve analizleri, potansiyel güvenlik açıklarının belirlenmesine yardımcı olur. Örneğin, nmap aracı ile bir sunucunun desteklediği SSH protokolleri kontrol edilebilir. Eğer sistem yalnızca SSHv1 protokolünü destekliyorsa, bu protokolün zayıf tasarımı nedeniyle kötü niyetli saldırganlar, sistemdeki verileri ele geçirebilir. Bu durumda, elde edilen bulguların güvenlik anlamı, protokollerin güncellenmesi gerektiğini ve güvenli olmayan yapıların kaldırılması gerektiğini ortaya koyar.

nmap -p 22 --script sshv1 <hedef_ip>

Yanlış Yapılandırma ve Zafiyetler

Yanlış yapılandırmalar, siber güvenlikte yaygın bir risk kaynağıdır. sshd_config dosyasındaki parametrelerin hatalı ayarlanması, sistemin saldırıya duyarlılığını artırabilir. Örneğin, PermitRootLogin yes ayarı ile root kullanıcısının SSH üzerinden doğrudan giriş yapmasına izin verilirse, bu durum saldırganların sisteme sızmasını son derece kolaylaştırır. Bu tür zafiyetler tespit edildiğinde, hemen düzeltilmeli ve güvenlik politikaları gözden geçirilmelidir.

Sızan Veri ve Servis Tespiti

Saldırganlar genellikle sistemlerde veri çalmaya yönelik saldırılar düzenler. Sızan veri türleri arasında kullanıcı bilgileri, özel anahtarlar ve sistem yapılandırmaları sayılabilir. Ayrıca, ağda bulunan hizmetlerin tespiti, saldırgan için bir fırsat yaratır. Örneğin, nmap aracı ile hedef sistemde açık portlar ve çalışan servisler belirlenebilir. Bu bilgiler, saldırganların hangi açık kapılardan sisteme sızabileceklerini belirlemelerine yardımcı olur. Uygun yapılandırmalar yapılmazsa, bir saldırı sırasında kritik servislerin kötüye kullanılması riski artar.

Profesyonel Önlemler ve Hardening Önerileri

Sistemlerin güvenliğini artırmak için alınabilecek profesyonel önlemler arasında hardening (sıkılaştırma) önemli bir yerdedir. İşte bazı temel hardening uygulamaları:

  • SSH Protokol Sıkılaştırma: sadece güvenli olan SSHv2’nin kullanılmasını sağlamak.
  • Kritik Güvenlik Parametreleri: sshd_config dosyasında PermitRootLogin no ve PasswordAuthentication no gibi ayarların yapılması.
  • Beyaz Liste (Whitelisting): AllowUsers parametresi ile sadece belirli kullanıcıların SSH erişiminin sağlanması.
  • MFA (Çift Faktörlü Doğrulama) Entegrasyonu: Google Authenticator gibi araçlarla, kullanıcı girişlerinin güvenliğinin artırılması.
  • Zaman Aşımı ve Oturum Güvenliği: ClientAliveInterval ve LoginGraceTime ayarları ile açık oturumların yönetilmesi.

Örnek bir sshd_config yapılandırması:

PermitRootLogin no
PasswordAuthentication no
AllowUsers ahmet
MaxAuthTries 3
ClientAliveInterval 300

Sonuç

Risk değerlendirmesi ve savunma stratejilerinin uygulanması, siber güvenlikte en önemli adımlardan biridir. Yanlış yapılandırmalar ve zafiyetlerin belirlenmesi, potansiyel saldırıların önlenmesinde kritik bir rol oynar. Bu bağlamda, profesyonel önlemlerin alınması ve sistemlerin sıkılaştırılması, güvenlik durumunu önemli ölçüde iyileştirebilir. Tercih edilen güvenlik politikaları ve sıkılaştırma teknikleri sayesinde, sistemler üzerindeki saldırı yüzeyi daraltılabilir, böylece güvenlik seviyesi artırılabilir.