Yeni bir VPS'i sıkılaştırma
Cevap
Yeni bir VPS'i sıkılaştırmak yaklaşık yirmi dakika sürer: parola ve root SSH girişini devre dışı bırakın, yalnızca anahtar kimlik doğrulamasını etkinleştirin, nftables'ı varsayılan olarak gelen bağlantıları reddedecek şekilde yapılandırın, gözetimsiz güvenlik yükseltmelerini etkinleştirin ve fail2ban kurun. Bu beş adım, gerçek dünyadaki ihlallerin büyük çoğunluğunu ortadan kaldırır.
Sunucuları gerçekte ne tehlikeye atar
Sıfır günler değil. Pratikte: zayıf kimlik bilgilerine karşı SSH parola kaba kuvveti, aylarca çalışan yamalanmamış hizmetler, varsayılan parolalarla açıkta kalan yönetim panelleri ve operatörün kurduğu her neyse onun uygulama güvenlik açıkları. Liste sıkıcıdır ve on beş yıldır değişmemiştir.
Aşağıdaki kontrol listesi, her adımın harcanan dakika başına ne kadar risk kaldırdığına göre sıralanmıştır. Sırayla yapın ve sabrınız tükendiğinde durun — yine de riskin çoğunu kaldırmış olacaksınız.
Adım 1 — Yalnızca SSH anahtarları
Bu tek değişiklik en yaygın saldırıyı tamamen ortadan kaldırır. Bir Ed25519 anahtarı oluşturun, genel anahtarı sunucuya kopyalayın ve /etc/ssh/sshd_config içinde PasswordAuthentication no, PermitRootLogin prohibit-password ve KbdInteractiveAuthentication no ayarlayın.
İlk terminali kapatmadan önce anahtarı ikinci bir terminalde test edin. Kendinizi kilitlemek utanç vericidir ve konsol erişimi olan bir makinede tamamen geri kazanılabilir — ama yine de doğru sırayla yapın.
Adım 2 — varsayılan olarak reddeden güvenlik duvarı
Modern Debian ve Ubuntu'da nftables, RHEL türevlerinde firewalld. Gelen trafiği varsayılan olarak reddedin, kurulu ve ilişkili bağlantılara izin verin, SSH portunuza izin verin ve iş yükünün gerçekten ihtiyaç duyduğu portlara izin verin; başka hiçbir şeye değil.
Önemli disiplin, "başka hiçbir şey" ifadesinin tüm amacın kendisi olmasıdır. Hata ayıklama sırasında eklenen ve asla kaldırılmayan izin verici bir kurala sahip güvenlik duvarı, hiçbir şey yapmayan bir güvenlik duvarıdır.
- Varsayılan politika: geleni düşür, gideni kabul et
- Kurulu, ilişkili bağlantıları kabul et
- Loopback'i kabul et
- SSH portunuzu kabul et, ideal olarak hız sınırlı
- İş yükü portlarını kabul et, açıkça listelenmiş
- ICMP echo'yu kabul et — path MTU keşfini bozma
Adım 3 — otomatik güvenlik güncellemeleri
unattended-upgrades Debian ve Ubuntu'da, dnf-automatic RHEL türevlerinde, yalnızca güvenlik güncellemeleri için yapılandırılır. Çoğu istismar, aylar önce yamanmış güvenlik açıklarını hedefler.
İş yükünüz tolerans gösteriyorsa, bir bakım penceresinde otomatik yeniden başlatmayı etkinleştirin. Çekirdek güncellemeleri, makine yeniden başlatılana kadar hiçbir işe yaramaz. 400 gün kesintisiz çalışma ve on bir bekleyen çekirdek CVE'si olan bir sunucu bir onur rozeti değildir.
Adım 4 — fail2ban ve gerçek değeri üzerine bir not
Parola kimlik doğrulaması zaten devre dışıyken fail2ban nispeten az sayıda gerçek istismarı engeller. Asıl yaptığı, log gürültüsünü önemli ölçüde azaltmaktır; çünkü binlerce başarısız denemeyle dolu bir log, kimsenin okumadığı bir logdur ve okunmayan loglar gerçek saldırıların haftalarca fark edilmemesinin yoludur.
Varsayılan sshd hapishanesi yeterlidir. İnternete açtığınız her şey için başka hapishaneler ekleyin.
Adım 5 — saldırı yüzeyini azaltın
ss -tlnp çalıştırın ve neyin dinlediğine bakın. Varsayılan bir kurulumda bu genellikle çalıştığını bilmediğiniz ve ihtiyaç duymadığınız hizmetleri içerir. Onları güvenlik duvarıyla kapatmak yerine kaldırın — kurulu olmayan yazılımın güvenlik açığı yoktur.
Yalnızca yerel erişim gerektiren hizmetleri 0.0.0.0 yerine 127.0.0.1'e bağlayın. Bir güvenlik duvarının arkasında tüm arayüzlerde dinleyen bir veritabanı, bir yanlış yapılandırma kadar herkese açık olmaktan uzaktır.
Neyi atlanmalı
SSH portunu değiştirmek log gürültüsünü azaltır ve hedefli saldırıların sıfırını durdurur. İsterseniz yapın, ancak bunu güvenlik olarak saymayın. Port knocking, marjinal bir kazanç için kırılganlık ekler. Saldırı tespit sistemleri, tek bir sunucuda kimsenin triyaj yapmadığı uyarılar oluşturur.
Yukarıdaki beş adımdan sonra bir anlamlı adım daha istiyorsanız, farklı bir yargı bölgesinde şifrelenmiş ve gerçekten geri yükleyerek test edilmiş harici yedeklerdir. Kurtarma yeteneği, başka bir önleme katmanından daha değerlidir.
Sık sorulan sorular
01 SSH portunu değiştirmeye değer mi?
Log gürültüsü için evet. Güvenlik için hayır — fırsatçı tarayıcıları durdurur ve hedefli saldırıların sıfırını. Daha sessiz loglar istiyorsanız yapın, ancak bunu bir kontrol olarak saymayın.
02 SSH anahtarları kullanıyorsam fail2ban'a ihtiyacım var mı?
Doğrudan güvenlik için pek değil. Log hijyeni için evet — binlerce başarısız deneme logları okunamaz hale getirir ve okunmayan loglar gerçek saldırıların fark edilmemesinin yoludur.
03 Otomatik yeniden başlatmayı etkinleştirmeli miyim?
İş yükü tolerans gösteriyorsa, bir bakım penceresinde evet. Çekirdek yamaları yeniden başlatılana kadar hiçbir işe yaramaz. Bekleyen çekirdek CVE'leri ile uzun kesintisiz çalışma süresi bir başarı değil, bir yükümlülüktür.
İlgili