CloudPanel Sunucu Güvenliği: Derinlemesine Zırhlama (Hardening) Rehberi

Bir sunucuyu internete açtığınız anda, küresel bot ağlarının radarına girersiniz. CloudPanel, performans odaklı yapısıyla size hızlı bir motor sunar, ancak bu motorun etrafındaki zırhı örmek sizin sorumluluğunuzdadır. Bu makale; giriş seviyesi ayarlardan, ileri düzey malware tarama sistemlerine kadar adım adım bir yol haritası sunar.

1. Bölüm: İşletim Sistemi Seviyesinde Temizlik ve Hazırlık

Güvenlik, panele girmeden önce SSH satırında başlar. CloudPanel genellikle Debian veya Ubuntu üzerine kurulur. İlk adım, işletim sistemini "sıkılaştırmaktır".

1.1. SSH Güvenliği: Kapıyı Kilitlemek

Varsayılan 22 portu, botların ilk hedefidir. Bunu değiştirmek saldırı trafiğini %90 oranında azaltır.

Bash
 
# SSH konfigürasyonunu açın
nano /etc/ssh/sshd_config

# Şu satırları bulun ve değiştirin:
Port 2222              # 22 yerine rastgele bir port (örneğin 2222)
PermitRootLogin no      # Root girişini kapatın (önce sudo yetkili bir kullanıcı oluşturun!)
PasswordAuthentication no # Sadece SSH Key ile girişe izin verin (en güvenli yöntem)

# Servisi yeniden başlatın
systemctl restart ssh

1.2. Otomatik Güncellemeler (Unattended Upgrades)

Güvenlik açıklarının çoğu, yaması yayınlanmış ama güncellenmemiş yazılımlardan kaynaklanır.

apt update && apt install unattended-upgrades -y
dpkg-reconfigure -plow unattended-upgrades

Bu komut, kritik güvenlik güncellemelerinin siz uyurken bile yüklenmesini sağlar.

2. Bölüm: Firewall (Güvenlik Duvarı) ve CSF Entegrasyonu

CloudPanel varsayılan olarak ufw kullanır. Ancak sen daha profesyonel bir çözüm olan CSF (ConfigServer Security & Firewall) istiyorsan, bu geçişi dikkatli yapmalısın.

2.1. Neden CSF?

CSF, sadece port kapatmaz; aynı zamanda LFD (Login Failure Daemon) aracılığıyla logları tarar, aşırı bağlantı açan IP'leri bloklar ve sunucu yükü arttığında sizi uyarır.

2.2. CSF Kurulum Adımları

Önce ufw'yi devre dışı bırakıyoruz:

ufw disable
apt remove ufw -y

Ardından CSF kurulumuna geçiyoruz:

cd /usr/src
wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh

2.3. CSF Konfigürasyonu (/etc/csf/csf.conf)

Dosyayı düzenlerken şu ayarları mutlaka yapın:

  • TESTING = "0" (Bunu 0 yapmazsanız firewall 5 dakikada bir kapanır).

  • TCP_IN: Buraya CloudPanel portunu (8443) ve yeni SSH portunu (2222) eklemeyi unutmayın.

  • CONNLIMIT: Bir IP'nin aynı anda açabileceği bağlantı sayısını sınırlayın (Örn: 80;20,443;20).

3. Bölüm: Saldırı Engelleme Sistemi (Fail2Ban)

CloudPanel ile gelen Fail2ban'i "agresif" moda geçirmeliyiz. Amacımız sadece SSH'ı değil, Nginx ve PHP-FPM'i de korumaktır.

3.1. Jail.local Yapılandırması

/etc/fail2ban/jail.local dosyasını oluşturun ve içine şu "can yakıcı" kuralları ekleyin:

[DEFAULT]
bantime  = 1h
findtime = 10m
maxretry = 5

[sshd]
enabled = true
port    = 2222

[nginx-http-auth]
enabled = true

[nginx-badbots]
enabled  = true
port     = http,https
filter   = nginx-badbots
logpath  = /var/log/nginx/access.log
maxretry = 2

[nginx-botsearch]
enabled  = true
port     = http,https
filter   = nginx-botsearch
logpath  = /var/log/nginx/access.log
maxretry = 3

4. Bölüm: Malware Taraması (Maldet + ClamAV)

Yazılım ürünlerinizin olduğu bir sunucuda "shell" dosyaları veya "backdoor"lar en büyük kabustur. Maldet (LMD) ve ClamAV bu noktada devreye girer.

4.1. ClamAV Kurulumu ve Optimizasyonu

ClamAV, açık kaynaklı bir antivirüs motorudur. Maldet bunu "tarama motoru" olarak kullanarak hızı 10 kat artırır.

apt install clamav clamav-daemon -y
freshclam # Veritabanını güncelle

4.2. Linux Malware Detect (Maldet) Kurulumu

Bash
 
cd /usr/local/src/
wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
tar -xvf maldetect-current.tar.gz
cd maldetect-*
./install.sh

4.3. Maldet Konfigürasyonu (/usr/local/maldetect/conf.maldet)

Şu kritik ayarları yapın:

  • email_alert="1" : Bir şey bulunduğunda size e-posta atar.

  • email_addr="admin@siteniz.com"

  • quarantine_hits="1" : Zararlı dosyayı otomatik karantinaya alır.

  • quarantine_clean="1" : Kodu temizlemeye çalışır.

  • scan_clamscan="1" : ClamAV motorunu aktif eder.

4.4. Otomatik Tarama Planı

CloudPanel üzerindeki web sitelerinizi her gece taramak için bir cron oluşturun:

echo "0 3 * * * /usr/local/sbin/maldet -a /home/cloudpanel/htdocs/" >> /etc/crontab

5. Bölüm: Nginx ve PHP Güvenliği (Hardening PHP)

Web sitelerinizin üzerinden sunucuya sızılmasını engellemek için PHP fonksiyonlarını kısıtlamalıyız.

5.1. PHP Fonksiyonlarını Yasaklama

CloudPanel'de her PHP versiyonu için (8.1, 8.2 vb.) php.ini dosyasını düzenleyin. Özellikle şu fonksiyonları disable_functions satırına ekleyin: exec, passthru, shell_exec, system, proc_open, popen, curl_multi_exec, parse_ini_file, show_source

5.2. Nginx Güvenlik Başlıkları (Security Headers)

CloudPanel'deki her sitenin Vhost konfigürasyonuna şu satırları ekleyerek tarayıcı bazlı saldırıları (XSS, Clickjacking) önleyin:

add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
add_header Referrer-Policy "no-referrer-when-downgrade";
add_header Content-Security-Policy "upgrade-insecure-requests";

6. Bölüm: Veritabanı ve Yedekleme Stratejisi

Güvenlik sadece saldırıyı durdurmak değil, saldırı sonrası ayağa kalkabilmektir.

6.1. Remote MySQL Erişimini Kapatın

CloudPanel varsayılan olarak dışarıdan MySQL erişimine izin vermez. Bunu doğrulamak için /etc/mysql/mariadb.conf.d/50-server.cnf dosyasında bind-address = 127.0.0.1 olduğundan emin olun.

6.2. Off-site Yedekleme (Rclone)

Sunucu hacklense bile yedeğinizin başka bir lokasyonda (Google Drive, AWS S3, Dropbox) olması gerekir. CloudPanel'in kendi yedekleme özelliğini kullanarak mutlaka uzak bir depolama alanı tanımlayın.

7. Bölüm: İzleme ve Audit (Denetleme)

Kimin ne yaptığını bilmediğiniz bir sunucuda güvende değilsinizdir.

7.1. Lynis ile Güvenlik Taraması

Lynis, sisteminizi tarayıp size bir "güvenlik skoru" verir.

apt install lynis -y
lynis audit system

Tarama sonrası Lynis size onlarca öneri sunacaktır. Bu önerileri tek tek uygulamak sunucunuzu "kurşun geçirmez" yapar.

Sonuç: 10 Maddelik Güvenlik Kontrol Listesi

  1. [ ] SSH Portu değiştirildi ve Root girişi kapatıldı.

  2. [ ] CSF veya UFW üzerinde sadece gerekli portlar açık.

  3. [ ] Fail2ban; SSH, Nginx ve PHP loglarını aktif olarak izliyor.

  4. [ ] Maldet + ClamAV her gece /home dizinini tarıyor.

  5. [ ] CloudPanel girişinde 2FA aktif.

  6. [ ] PHP disable_functions ile tehlikeli komutlar kapatıldı.

  7. [ ] Tüm web sitelerinde SSL zorunlu (HSTS aktif).

  8. [ ] Günlük yedekler sunucu dışındaki bir bulut depolamaya aktarılıyor.

  9. [ ] Sunucu çekirdek güncellemeleri otomatik yapılıyor.

  10. [ ] CloudPanel portuna (8443) IP kısıtlaması veya Basic Auth getirildi.

Bu rehberdeki adımları uyguladığınızda, sunucunuz sadece bir "yazılım barındırma alanı" değil, kurumsal düzeyde korunan bir veri merkezi haline gelecektir. Unutmayın; güvenlik bir varış noktası değil, sürekli bir yolculuktur.

Uygulama Notu: Bu komutları uygularken özellikle SSH portunu değiştirdiğinizde, yeni portu firewall üzerinden açmadan SSH bağlantısını kesmeyin, aksi takdirde sunucunun dışında kalabilirsiniz!

Bu cevap yeterince yardımcı oldu mu?