Secure Shell (SSH) protokolü, sunuculara ve ağ cihazlarına güvenli bir şekilde uzaktan erişim sağlamak için endüstri standardı haline gelmiştir. Ancak, varsayılan SSH yapılandırmaları genellikle yeterli güvenlik önlemlerini içermez ve potansiyel saldırılara karşı savunmasız kalabilir. Bu rehber, SSH sunucunuzun güvenliğini artırmak için adım adım bir yapılandırma süreci sunmaktadır. Güvenli bir uzaktan erişim ortamı oluşturmak, sistemlerinizi yetkisiz erişime, veri ihlallerine ve hizmet kesintilerine karşı korumanın temel taşıdır.
Temel Güvenlik Ayarları
SSH yapılandırması, sshd_config dosyası üzerinden yapılır. Bu dosyaya erişmek ve değişiklik yapmak için root veya sudo yetkisine sahip olmanız gerekmektedir. Değişiklik yapmadan önce her zaman dosyanın yedeğini almanız önerilir.
SSH Portunu Değiştirme
SSH varsayılan olarak 22 numaralı portu kullanır. Bu port, otomatik tarama araçları tarafından sıkça hedef alınır. Port numarasını değiştirmek, yaygın saldırıları önemli ölçüde azaltabilir. Ancak, yeni port numarasını unutmamak ve güvenlik duvarınızda bu portu açmak önemlidir.
/etc/ssh/sshd_config dosyasını düzenleyin:
Port 2222
Değişiklikleri kaydettikten sonra SSH servisini yeniden başlatın: sudo systemctl restart sshd veya sudo service ssh restart
Root Girişini Devre Dışı Bırakma
Root kullanıcısının doğrudan SSH ile giriş yapmasına izin vermek, en kritik güvenlik açıklarından biridir. Bu ayarı devre dışı bırakarak, kullanıcıların önce normal bir hesapla giriş yapıp ardından yetkilerini yükseltmelerini sağlamalısınız.
/etc/ssh/sshd_config dosyasında şu satırı bulun ve değiştirin:
PermitRootLogin no
Şifre Tabanlı Kimlik Doğrulamayı Devre Dışı Bırakma (SSH Anahtar Kullanımı)
Şifre tabanlı kimlik doğrulama, kaba kuvvet saldırılarına karşı hassastır. SSH anahtar tabanlı kimlik doğrulama, çok daha güvenli bir alternatif sunar. Bu yöntemle, sunucuya erişim sağlamak için eşleşen özel ve genel anahtar çiftine sahip olmanız gerekir.
Anahtar tabanlı kimlik doğrulama için önce istemcide bir SSH anahtar çifti oluşturmanız gerekir: ssh-keygen -t rsa -b 4096. Ardından, genel anahtarınızı sunucuya kopyalayın: ssh-copy-id user@sunucu_ip.
/etc/ssh/sshd_config dosyasında şu satırı bulun ve değiştirin:
PasswordAuthentication no
Bu değişikliği yapmadan önce SSH anahtarınızın sunucuya başarıyla kopyalandığından ve çalıştığından emin olun. Aksi takdirde kendinizi sunucuya kilitleyebilirsiniz.
Gelişmiş Güvenlik Önlemleri
Temel ayarların yanı sıra, SSH güvenliğini daha da artırmak için ek yapılandırmalar yapılabilir.
Sınırlı Kullanıcılara İzin Verme
SSH erişimine yalnızca belirli kullanıcıların veya grupların sahip olmasını sağlamak, yetkisiz erişimi engellemenin etkili bir yoludur. AllowUsers veya AllowGroups direktiflerini kullanabilirsiniz.
Belirli kullanıcılar için:
AllowUsers kullanici1 kullanici2
Belirli gruplar için (örneğin, ‘sshusers’ grubundakiler):
AllowGroups sshusers
SSH Protokol Sürümünü Sınırlama
SSH protokolünün eski sürümleri (özellikle SSHv1) güvenlik zafiyetleri içerebilir. Yalnızca güncel ve güvenli olan SSHv2 protokolünü kullanmak önemlidir.
/etc/ssh/sshd_config dosyasında şu satırın bulunduğundan emin olun:
Protocol 2
Bağlantı Zaman Aşımlarını Ayarlama
Belirli bir süre boyunca aktif olmayan SSH bağlantılarının otomatik olarak kapatılması, kaynakların verimli kullanılmasına yardımcı olur ve açık bağlantılar üzerinden yapılabilecek potansiyel saldırıları önler.
ClientAliveInterval ve ClientAliveCountMax direktiflerini kullanarak bunu yapılandırabilirsiniz:
ClientAliveInterval 300ClientAliveCountMax 0
Bu ayarlar, 5 dakika (300 saniye) boyunca yanıt vermeyen bir istemci bağlantısını kapatacaktır. ClientAliveCountMax 0, sunucunun istemciye tek bir canlılık kontrolü göndermesini ve yanıt gelmemesi durumunda bağlantıyı hemen kapatmasını sağlar.
X11 Yönlendirmesini Devre Dışı Bırakma
Eğer grafiksel arayüz uygulamalarına uzaktan erişim ihtiyacınız yoksa, X11 yönlendirmesini devre dışı bırakmak ek bir güvenlik katmanı sağlar.
/etc/ssh/sshd_config dosyasında şu satırı bulun ve değiştirin:
X11Forwarding no
Yapılandırma Sonrası Kontroller
Yukarıdaki adımları tamamladıktan sonra, SSH servisini yeniden başlatmanız ve yeni yapılandırmanın doğru çalıştığından emin olmanız kritik önem taşır.
Servisi yeniden başlatın:
sudo systemctl restart sshd
Ardından, yeni yapılandırmayla sunucuya erişmeyi deneyin. Özellikle root girişi ve şifre kimlik doğrulaması ayarlarını test edin. Güvenlik duvarınızda belirttiğiniz yeni SSH portunun açık olduğundan emin olun.
SSH güvenliğini sürekli olarak gözden geçirmek ve en güncel güvenlik uygulamalarını takip etmek, sistemlerinizin bütünlüğünü korumanın ayrılmaz bir parçasıdır. Bu rehberde sunulan adımlar, genel bir güvenlik artışı sağlamak için tasarlanmıştır, ancak her ortamın kendine özgü gereksinimleri olabileceğini unutmamak gerekir.
SSH yapılandırmanızda hangi ek güvenlik önlemlerini uyguluyorsunuz?

