Ana içeriğe atla

VPS'inizi sağlamlaştırın: 20 dakikada bitirebileceğiniz bir kontrol listesi

Bu kılavuz İngilizceden çevrilmiştir. Bağlantılı bazı sayfalar yalnızca İngilizce olarak mevcuttur.

Fırsatçı saldırıların ezici çoğunluğunu durduran somut adımlar.

Bir sunucuyu asla mükemmel derecede güvenli yapamazsınız. Ama yaklaşık yirmi dakikada onu çekici olmayan bir hedef haline getirebilirsiniz; bu da otomatik saldırıların neredeyse tamamını savuşturur.

1. Yalnızca anahtarla SSH

SSH anahtarları ve erişim yazısında ayrıntılı anlatılmıştır. Bu, tek başına en değerli adımdır. Parola kaba kuvvet saldırısı, açık internette en yaygın saldırı yöntemidir ve bu adım onu ortadan kaldırır.

text
PasswordAuthentication no
PermitRootLogin prohibit-password

2. Varsayılan olarak reddeden bir güvenlik duvarı

Yalnızca gerçekten sunduklarınıza izin verin. Debian/Ubuntu'da:

bash
apt install -y ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp          # SSH — see the warning below
ufw allow 80,443/tcp      # web
ufw enable
ufw status verbose

RHEL ailesinde firewalld kullanın:

bash
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

Uyarı: SSH oturumunuz açıkken güvenlik duvarını etkinleştirin ve bağlantıyı kesmeden önce SSH'a izin verildiğini doğrulayın. SSH bağlantı noktasını değiştirirseniz önce yeni bağlantı noktasına izin verin. Her zaman izinli olması gereken özel mesh arayüzümüz dahil ayrıntılar için bkz. Güvenlik duvarı temelleri.

3. Otomatik güvenlik güncellemeleri

bash
apt install -y unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades    # choose yes
# verify:
systemctl status unattended-upgrades --no-pager

RHEL ailesinde dnf-automatic aynı işi yapar. Otomatik güvenlik yamaları, bir güvenlik açığının yayımlanması ile istismar edilmesi arasındaki boşluğu kapatır — pratikte bu çoğu zaman saatlerdir.

4. Fail2ban

Tekrarlanan başarısız girişlerden sonra bir IP'yi engeller ve bitmeyen bir kaba kuvvet denemesini çıkmaz sokağa çevirir. Bkz. Fail2ban temelleri.

bash
apt install -y fail2ban
systemctl enable --now fail2ban

5. Kullanmadığınız şeyleri kapatın

Dinleyen her hizmet olası bir giriş noktasıdır.

bash
ss -tulpn        # what is listening, and who owns it
systemctl --type=service --state=running   # what is running

İstemediğiniz her şeyi durdurun ve devre dışı bırakın. Minimal bir sunucu, güvenli bir sunucudur.

6. Hizmetleri ayrıcalıksız kullanıcılarla çalıştırın

Veritabanları, web uygulamaları ve işçiler asla root olarak çalışmamalıdır. Çoğu paket kendi hizmet kullanıcısını otomatik oluşturur; onu kullanın. Kendi unit dosyanızı yazıyorsanız User= ve Group= değerlerini açıkça belirleyin.

7. Sırları koruyun

  • Sırları asla git'e göndermeyin. chmod 600 ile ortam dosyaları kullanın.

  • Parola veya anahtar içeren bir yapılandırma dosyasını asla herkesçe okunabilir yapmayın.

  • Tek bir ortak yönetici kimlik bilgisi yerine hizmet başına kimlik bilgilerini tercih edin.

8. Geri dönmenin bir yolu olsun

9. İzleyin

Hiç bakmadığınız bir sunucuyu savunamazsınız. Bir izleme kontrolü ekleyin ve zaman zaman günlüklerinizi okuyun — nasıl yapılacağını Günlüklerinizi okuma gösterir.

İsteğe bağlı: saldırı tespiti

Daha değerli sunucular için CrowdSec (kitle kaynaklı engelleme, MIT lisansı) ve Wazuh (ana makine saldırı tespiti) gerçek derinlik katar. İkisi de uygulama barındırma kılavuzlarımızda belgelenmiştir.

İlgili okumalar