LIONFIN

Sunucu Güvenliği Kontrol Listesi: 15 Temel Önlem

Linux sunucunuzu korumak için uygulamanız gereken 15 temel önlemi, her birinin nasıl kontrol edileceğini ve ne sıklıkla gözden geçirileceğini tek tabloda topladık; erişim, ağ, güncelleme, yedek ve olay planı başlıklarını komutlarla açıklıyoruz.

YYönetici 6 dk okuma 1 görüntülenme
Sunucu Güvenliği Kontrol Listesi: 15 Temel Önlem

Sunucu güvenliği, tek seferlik bir kurulum değil, düzenli aralıklarla tekrarlanan bir kontrol rutinidir: saldırı yüzeyini küçültmek, erişimi sınırlamak ve bir şey ters gittiğinde hızlı geri dönebilmek. İnternete açık her sunucu, kurulduğu ilk dakikalardan itibaren otomatik tarayıcıların hedefindedir ve günlüklerde SSH’ye yönelik deneme kayıtlarını görmeniz uzun sürmez.

Aşağıdaki 15 maddelik liste; yönetimsiz bir VPS, ayrılmış kaynaklı bir VDS sunucu ya da fiziksel bir sunucu için ortak bir başlangıç noktasıdır. Tabloyu yazdırıp her ay üzerinden geçmek bile çoğu ciddi olayı önler.

Kısa cevap

Sunucu güvenliği, bir sunucuyu yetkisiz erişime, veri kaybına ve kesintiye karşı koruyan önlemlerin bütünüdür. Temel kontrol listesi şunları içerir: düzenli güvenlik güncellemeleri, yalnızca SSH anahtarıyla giriş, root girişinin kapatılması, varsayılanı reddeden güvenlik duvarı, Fail2Ban, en az yetki ilkesi, sunucu dışında tutulan yedekler, izleme ve log takibi, TLS, internete kapalı veritabanı, korunan sırlar, panellerde iki adımlı doğrulama, kapatılmış gereksiz servisler, doğru dosya izinleri ve yazılı bir olay planı.

Sunucu güvenliği kontrol listesi: 15 temel önlem nedir?

Sunucu güvenliğinin temel önlemleri erişim, ağ, güncelleme, veri ve süreç başlıklarına dağılır. Her maddenin yanında nasıl kontrol edileceği ve önerilen gözden geçirme sıklığı yer alıyor:

#ÖnlemNasıl kontrol edilir?Sıklık
1Güvenlik güncellemeleriapt list --upgradableHaftalık
2Yalnızca SSH anahtarıyla girişsshd -T çıktısında passwordauthentication noKurulumda
3Root ile doğrudan giriş kapalıpermitrootlogin noKurulumda
4Varsayılanı reddeden güvenlik duvarıufw status verboseHer değişiklikte
5Fail2Ban ile kaba kuvvet korumasıfail2ban-client status sshdAylık
6En az yetki ilkesigetent group sudoÜç ayda bir
7Sunucu dışında yedekGeri yükleme testiGünlük yedek, aylık test
8İzleme ve log takibiUyarıların gerçekten ulaştığıSürekli
9TLS ile şifreli bağlantıSertifika bitiş tarihiAylık
10Veritabanı internete kapalıss -tulpnHer değişiklikte
11Sırların korunması.env izinleri, depo içeriğiHer dağıtımda
12Panellerde iki adımlı doğrulamaHesap güvenlik ayarlarıKurulumda
13Kullanılmayan servisler kapalısystemctl list-units --type=service --state=runningÜç ayda bir
14Doğru dosya izinleriHerkese yazılabilir dosya taramasıDağıtım sonrası
15Yazılı olay müdahale planıMasa başı provaYılda bir

Yeni bir sunucuda bu maddelerin çoğu ilk saat içinde tamamlanabilir; sıralı kurulum adımları VPS ilk kurulum adımları rehberindedir.

SSH erişimi nasıl güvenli hâle getirilir?

SSH erişimini güvenli hâle getirmenin özü, parolayla girişi ve root ile doğrudan girişi kapatıp yalnızca anahtarla, sudo yetkili kişisel kullanıcılarla bağlanmaktır. Anahtar çiftinin nasıl üretileceği SSH anahtarı oluşturma rehberinde anlatılır. Anahtarla giriş yapabildiğinizi doğruladıktan sonra /etc/ssh/sshd_config dosyasında şu satırları ayarlayın:

PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no

Ubuntu’da /etc/ssh/sshd_config.d/ klasöründeki ek dosyalar (örneğin bulut imajlarındaki 50-cloud-init.conf) ana dosyadaki değerleri geçersiz kılabilir. Bu yüzden ayarın gerçekten uygulandığını dosyaya değil, sunucunun etkin yapılandırmasına bakarak doğrulayın:

sudo sshd -t
sudo sshd -T | grep -Ei 'permitrootlogin|passwordauthentication'
sudo systemctl restart ssh

Yeniden başlatmadan önce mevcut oturumu kapatmayın; ikinci bir terminalden giriş yapabildiğinizi test edin. En az yetki ilkesi gereği her yönetici kendi kullanıcısıyla bağlanmalı, ortak hesap kullanılmamalı ve işten ayrılan kişinin anahtarı ~/.ssh/authorized_keys dosyasından hemen silinmelidir.

Dikkat: Anahtarla girişi test etmeden parola girişini kapatırsanız sunucuya yalnızca sağlayıcının konsolu üzerinden erişebilirsiniz.

Saldırı yüzeyi nasıl küçültülür?

Saldırı yüzeyini küçültmenin yolu, internete yalnızca gerçekten gereken portları açmak ve sunucuda yalnızca kullandığınız servisleri çalıştırmaktır. Önce hangi servislerin hangi adreste dinlediğini görün:

sudo ss -tulpn

Çıktıda 0.0.0.0 ya da [::] adresinde dinleyen her servis dış dünyaya açıktır. MySQL ve MariaDB, Ubuntu ve Debian paketlerinde varsayılan olarak yalnızca 127.0.0.1 adresini dinler; bu ayarı değiştirdiyseniz uzak erişimi güvenlik duvarında yalnızca belirli IP adreslerine açın ya da bağlantıyı bir VPN ya da SSH tüneli üzerinden yapın. Aynı kural Redis, Elasticsearch ve yönetim panelleri için de geçerlidir. İnternete yanlışlıkla açık bırakılmış bir veritabanı ya da önbellek servisi, otomatik tarayıcıların en kolay bulduğu hedeflerden biridir; bu kontrolü her yeni servis kurulumundan sonra tekrarlayın.

Ardından güvenlik duvarını “gelen trafiği varsayılan olarak reddet” politikasıyla kurun ve yalnızca SSH, HTTP ve HTTPS gibi gereken portları açın; adımlar UFW firewall kurulumu rehberindedir. SSH’ye yönelik deneme saldırılarını otomatik engellemek için Fail2Ban kurulumu rehberini uygulayın. Kullanmadığınız servisleri ise kalıcı olarak kapatın:

sudo systemctl disable --now SERVIS_ADI

Güncellemeler, sırlar ve dosya izinleri nasıl yönetilir?

Güvenlik güncellemelerini otomatikleştirmek, gizli bilgileri yalnızca gereken kullanıcıya açmak ve web dizininde herkese yazılabilir dosya bırakmamak bu grubun üç temel kuralıdır. Ubuntu ve Debian’da güvenlik yamaları unattended-upgrades paketiyle otomatik uygulanabilir; çekirdek güncellemelerinden sonra gereken yeniden başlatmayı ise siz planlamalısınız. Ubuntu’da /var/run/reboot-required dosyasının varlığı bunun işaretidir.

Veritabanı parolası, API anahtarı ve benzeri sırlar Git deposuna girmemeli, yapılandırma dosyalarının izinleri sıkı tutulmalıdır. Herkese yazılabilir dosyaları bulmak ve bir .env dosyasını korumak için:

sudo find /var/www -xdev -type f -perm -0002
sudo chown www-data:www-data /var/www/site/.env
sudo chmod 600 /var/www/site/.env

Kullanıcı adı ve yol örnektir; uygulamanızın hangi kullanıcıyla çalıştığına göre uyarlayın. Dışarıya açık her web servisi TLS ile şifrelenmeli ve sertifikaların süresi takip edilmelidir; ticari sertifika gereken projelerde SSL sertifikası seçeneklerine bakabilirsiniz.

Yedek, izleme ve olay planı neden listenin parçasıdır?

Hiçbir önlem riski sıfırlamadığı için sunucu güvenliğinin son halkası, bir olay yaşandığında fark etmek ve geri dönebilmektir. Yedekler sunucunun dışında, mümkünse farklı bir sağlayıcıda ve en az bir kopyası değiştirilemez biçimde tutulmalıdır; aynı diskteki yedek fidye yazılımına karşı koruma sağlamaz. Yöntemler VPS yedekleme ve snapshot rehberinde anlatılır.

İzleme tarafında disk doluluğu, servis durumu ve dışarıdan erişilebilirlik için uyarılar kurun; uyarının telefonunuza ya da e-postanıza gerçekten ulaştığını test edin. Basit bir olay müdahale planı şu adımları içermelidir:

  1. Tespit: Uyarıyı kim alır, ilk kontrolü kim yapar?
  2. Sınırlama: Şüpheli erişimde parolalar ve anahtarlar nasıl değiştirilir, sunucu ağdan nasıl ayrılır?
  3. Kanıt: Günlükler ve disk görüntüsü silinmeden önce nereye kopyalanır?
  4. Geri dönüş: Temiz yedekten yeni sunucuya kurulum kaç saat sürer?
  5. İletişim: Müşterilere ve gerekiyorsa yetkili kurumlara kim, ne zaman bilgi verir?

Müşteri paneli, cPanel ya da Plesk ve Git hesapları gibi sunucuya dolaylı erişim sağlayan her yerde iki adımlı doğrulamayı açın. LIONFIN müşteri panelindeki ayarlar müşteri paneli güvenliği rehberinde açıklanmıştır.

Bu liste web sitesi güvenliğinden nasıl ayrılır?

Bu kontrol listesi işletim sistemi ve ağ düzeyindeki önlemleri kapsar; WordPress eklentileri, form güvenliği ya da web uygulama güvenlik duvarı gibi uygulama katmanı konuları ayrı bir listede ele alınır. Sunucuda bir site çalıştırıyorsanız iki listeyi birlikte kullanın: uygulama katmanı için web sitesi güvenliği kontrol listesi yazısına bakın.

Sorumluluk dağılımı da önemlidir. Paylaşımlı hostingde işletim sistemi güvenliği sağlayıcıdadır; yönetimsiz bir VPS ya da VDS’te ise bu listedeki her madde sizin işinizdir. Sunucu bakımına ayıracak zamanınız yoksa yönetilen VPS seçeneklerini değerlendirin. Kendi yönettiğiniz sunucularda ise takviminize aylık bir kontrol günü ekleyin: güncellemeler, açık portlar, yetkili kullanıcılar ve son geri yükleme testinin tarihi, bu toplantının dört sabit gündem maddesi olsun.

Sık Sorulan Sorular

SSH portunu değiştirmek güvenliği artırır mı?

SSH portunu 22’den başka bir numaraya taşımak otomatik tarayıcılardan gelen deneme sayısını azaltır ve günlükleri sadeleştirir, ancak tek başına bir güvenlik önlemi sayılmaz; port taraması yapan biri yeni portu kısa sürede bulur. Asıl koruma anahtarla giriş, kapalı parola girişi ve Fail2Ban’dır. Portu değiştirirseniz güvenlik duvarında yeni portu açmayı unutmayın.

Linux sunucuda antivirüs gerekir mi?

Linux sunucularda masaüstü tarzı bir antivirüs çoğu senaryoda zorunlu değildir; öncelik güncellemeler, erişim kontrolü ve dosya izinleridir. Ancak kullanıcıların dosya yüklediği, e-posta barındıran ya da Windows istemcilere dosya dağıtan sunucularda ClamAV gibi bir tarayıcı faydalıdır. Web sitelerinde ise zararlı kod taraması için uygulamaya özel araçlar daha etkili sonuç verir.

Sunucumun hacklendiğini nasıl anlarım?

Tanımadığınız kullanıcı hesapları ya da SSH anahtarları, açıklanamayan yüksek işlemci kullanımı, bilmediğiniz zamanlanmış görevler, değişmiş sistem dosyaları ve sunucudan dışarıya yoğun giden trafik başlıca işaretlerdir. Şüphelendiğinizde sunucuda değişiklik yapmadan önce günlükleri ve gerekiyorsa disk görüntüsünü güvenli bir yere kopyalayın, ardından olay planınızı uygulayın.

Sunucu güvenliği ne sıklıkla kontrol edilmeli?

Güncellemeler haftalık, açık portlar ve yetkili kullanıcılar ayda bir, yedekten geri yükleme testi en az ayda bir yapılmalıdır. Yeni bir servis kurduğunuzda, ekipten biri ayrıldığında ya da önemli bir güvenlik açığı duyurulduğunda ise ilgili maddeleri hemen gözden geçirin. Düzenli küçük kontroller, yılda bir yapılan büyük denetimden daha etkilidir.

Root kullanıcısını tamamen silmeli miyim?

Hayır, root hesabı sistemin çalışması için gereklidir ve silinmez. Yapılması gereken root ile SSH üzerinden doğrudan girişi kapatmak, yönetim işlerini sudo yetkili kişisel kullanıcılarla yapmaktır. Böylece hangi işlemi kimin yaptığı günlüklerde izlenebilir ve root parolasını ele geçirmeye yönelik uzaktan denemeler sonuçsuz kalır.

  • #linux sunucu güvenliği
  • #server hardening
  • #sunucu sıkılaştırma
  • #ssh güvenliği
  • #vps güvenliği
  • #güvenlik kontrol listesi
  • #fail2ban
  • #ufw
X LinkedIn WhatsApp