cPanel/WHM kullanan bir sunucu yönetiyorsanız, güvenlik konusunda yalnızca cPanel’in varsayılan araçlarıyla yetinmek çoğu zaman yeterli olmaz. İşte tam bu noktada CSF (ConfigServer Security & Firewall) devreye girer ve cPanel/WHM ile kusursuz bir entegrasyon sunarak sunucunuzu çok daha sağlam bir güvenlik katmanına kavuşturur. Bu yazıda CSF’yi cPanel/WHM ortamına nasıl entegre edeceğinizi, ince ayarlarını nasıl yapacağınızı ve gerçek dünya senaryolarında nasıl kullanacağınızı adım adım ele alacağız.
CSF Nedir ve Neden cPanel ile Kullanmalısınız?
CSF, iptables tabanlı bir güvenlik duvarı ve giriş tespit sistemidir. Tek başına güçlü bir araç olsa da cPanel/WHM ile entegre çalıştığında WHM arayüzü üzerinden yönetim imkanı sunar, cPanel servisleriyle otomatik uyum sağlar ve LFD (Login Failure Daemon) sayesinde brute-force saldırılarını anlık olarak engeller.
Şunu söyleyelim: Paylaşımlı hosting ortamı yönetiyorsanız veya onlarca müşteri hesabı barındırıyorsanız, CSF olmadan sunucuyu yönetmek kör uçmak gibidir.
Kurulum Öncesi Hazırlık
CSF kurmadan önce birkaç şeyi kontrol etmeniz gerekiyor.
Sistem Gereksinimlerini Kontrol Edin
# Perl modüllerini kontrol et
perl -v
perl -MIO::Socket::SSL -e 'print "SSL OKn"' 2>/dev/null || echo "SSL modulu eksik"
# iptables durumunu kontrol et
iptables -L -n | head -20
# Mevcut firewall servislerini kontrol et
systemctl status firewalld 2>/dev/null
systemctl status ufw 2>/dev/null
Eğer sunucunuzda firewalld ya da ufw aktifse, CSF ile çakışma yaşarsınız. CSF kurmadan önce bunları devre dışı bırakın:
systemctl stop firewalld
systemctl disable firewalld
systemctl mask firewalld
Eksik Perl Modüllerini Yükleyin
# RHEL/CentOS/AlmaLinux için
yum install -y perl-libwww-perl perl-LWP-Protocol-https perl-GDGraph
perl-IO-Socket-INET6 perl-Socket6 perl-Crypt-SSLeay
perl-Net-SSLeay perl-IO-Socket-SSL
# Modül kontrolü
perl -MLWP::UserAgent -e 'print "LWP OKn"'
perl -MNet::SSLeay -e 'print "SSLeay OKn"'
CSF Kurulumu
# Kurulum dizinine geç
cd /usr/src
# CSF'yi indir
wget https://download.configserver.com/csf.tgz
# Arşivi aç
tar -xzf csf.tgz
# Kurulum scriptini çalıştır
cd csf && sh install.sh
Kurulum tamamlandıktan sonra CSF, cPanel varlığını otomatik olarak tespit eder ve WHM eklentisini /usr/local/cpanel/whostmgr/docroot/cgi/addon_csf.cgi konumuna yerleştirir. WHM arayüzünde “ConfigServer Security & Firewall” sekmesini görüyorsanız entegrasyon başarıyla gerçekleşmiştir.
Temel Yapılandırma Dosyası
CSF’nin tüm ayarları /etc/csf/csf.conf dosyasında tutulur. Bu dosyayı doğru yapılandırmak, güvenlik altyapınızın temelini oluşturur.
# Test modunu kapat (MUTLAKA yapın)
sed -i 's/^TESTING = "1"/TESTING = "0"/' /etc/csf/csf.conf
# Değişikliği doğrula
grep '^TESTING' /etc/csf/csf.conf
TESTING = “1” modunda CSF, iptables kurallarını 5 dakika sonra otomatik olarak temizler. Bunu kapatmadan gerçek koruma başlamaz. Bu ayarı değiştirmeyi unutup kendinizi sunucudan kilitleyenler az değildir.
cPanel Servisleri için Port Yapılandırması
/etc/csf/csf.conf dosyasında aşağıdaki portların açık olduğundan emin olun:
# csf.conf içinde TCP_IN ve TCP_OUT değerlerini düzenle
nano /etc/csf/csf.conf
TCP_IN için önerilen cPanel portları:
- 20,21: FTP
- 22: SSH
- 25,26: SMTP
- 53: DNS
- 80,443: HTTP/HTTPS
- 110,995: POP3/POP3S
- 143,993: IMAP/IMAPS
- 465,587: Güvenli SMTP
- 2082,2083: cPanel HTTP/HTTPS
- 2086,2087: WHM HTTP/HTTPS
- 2095,2096: Webmail HTTP/HTTPS
Yapılandırma satırı şu şekilde görünmelidir:
TCP_IN = "20,21,22,25,26,53,80,110,143,443,465,587,993,995,2082,2083,2086,2087,2095,2096"
LFD (Login Failure Daemon) Yapılandırması
LFD, CSF’nin en güçlü özelliklerinden biridir. Başarısız giriş denemelerini izler ve belirlediğiniz eşiği aşan IP adreslerini otomatik olarak engeller.
# LFD için kritik ayarlar - csf.conf içinde
nano /etc/csf/csf.conf
Dikkat etmeniz gereken başlıca parametreler:
LF_TRIGGER: Kaç başarısız denemeden sonra engelleme yapılacağı. Varsayılan 20’dir, paylaşımlı hosting için 5-10 arası daha mantıklıdır.
LF_BLOCKTIME: Engelleme süresi (saniye cinsinden). 3600 = 1 saat, 86400 = 1 gün. Kalıcı engelleme için 0 kullanın.
LF_ALERT: E-posta bildirimi açık/kapalı. Aktif sisteme geçmeden önce mutlaka e-posta adresini doğru ayarlayın.
# Bu değerleri csf.conf'ta düzenleyin
LF_TRIGGER = "10"
LF_BLOCKTIME = "86400"
LF_EMAIL_ALERT = "1"
LT_EMAIL_ALERT = "1"
WHM Arayüzü Üzerinden Yönetim
WHM’e giriş yaptıktan sonra sol menüden “Plugins” bölümüne gelin ve “ConfigServer Security & Firewall” seçeneğini tıklayın. Buradan yapabileceğiniz işlemler:
IP Beyaz Listeye Alma
Kendi ofis IP adresinizi veya güvenli bildiğiniz IP bloklarını beyaz listeye almak için WHM arayüzünü kullanabilirsiniz ya da doğrudan dosyayı düzenleyebilirsiniz:
# Kalıcı beyaz liste
echo "203.0.113.10" >> /etc/csf/csf.allow
echo "198.51.100.0/24 # Ofis network" >> /etc/csf/csf.allow
# Değişiklikleri uygula
csf -r
IP Kara Listeye Alma
# Tek IP engelle
csf -d 192.168.1.100 "Saldirgan IP"
# IP bloğu engelle
echo "192.168.1.0/24" >> /etc/csf/csf.deny
csf -r
# Engellenen IP'leri listele
csf -l
Geçici Engelleme ve İzin Verme
# 3600 saniye (1 saat) boyunca engelle
csf -td 192.168.1.100 3600 "Gecici engelleme"
# 3600 saniye boyunca izin ver (örneğin test amaçlı)
csf -ta 192.168.1.100 3600 "Gecici izin"
# Geçici kuralları görüntüle
csf -lt
cPanel Spesifik Güvenlik Ayarları
CSF, cPanel ortamına özel bazı ek güvenlik modülleri sunar. Bunların en önemlileri şöyle:
cPHulk ile Entegrasyon
cPanel’in kendi brute-force koruması olan cPHulk ve CSF’nin LFD’si bazen çakışabilir. Her ikisini birlikte kullanıyorsanız csf.conf içinde şu ayarı aktif edin:
# csf.conf içinde
LF_CPANEL = "1"
LF_CPANEL_ALERT = "1"
Bu ayar, cPHulk tarafından engellenen IP’lerin CSF tarafından da engellenmesini sağlar ve çift katmanlı koruma sunar.
Mod Security ile Uyum
# ModSecurity tetiklemelerini LFD'ye bildir
LF_MODSEC = "5"
LF_MODSEC_PERM = "1"
Yukarıdaki ayarla, aynı IP’den 5 ModSecurity ihlali geldiğinde o IP otomatik olarak kalıcı engelleme listesine alınır.
cPanel Hesap Bazlı Port Kısıtlaması
Paylaşımlı hosting ortamında müşteri hesaplarının gereksiz bağlantı açmasını önlemek için:
# csf.conf içinde
LF_CPANEL_SCRIPTS = "1"
CT_LIMIT = "300"
CT_INTERVAL = "30"
CT_LIMIT: Bir IP’nin aynı anda açabileceği maksimum bağlantı sayısı. CT_INTERVAL: Kontrol aralığı (saniye).
Gerçek Dünya Senaryoları
Senaryo 1: Brute-Force SSH Saldırısı
Gece 2’de telefona bir bildirim düştü, LFD alarm veriyor. Günlüklere baktığınızda tek bir IP’den dakikada 300’den fazla SSH denemesi görüyorsunuz.
# Saldırıyı anlık izle
tail -f /var/log/lfd.log | grep "sshd"
# Manuel olarak IP'yi engelle ve sebebini logla
csf -d 45.33.32.156 "Brute-force SSH saldirisi - $(date)"
# Bu IP aralığının tamamını engelle
csf -d 45.33.32.0/24 "Saldirgan /24 blok"
# Engellemenin aktif olduğunu doğrula
iptables -L INPUT -n | grep 45.33.32
Bu tür saldırılarda csf.conf içinde LF_SSHD = "5" ve LF_SSHD_PERM = "1" ayarlarını aktif etmek, benzer saldırıların otomatik olarak kalıcı engellenmesini sağlar.
Senaryo 2: Müşteri Hesabından Spam Gönderimi
Bir müşteri hesabı ele geçirilmiş ve sunucudan toplu spam gönderiliyor. SMTP trafiğini izole etmeniz gerekiyor:
# Giden SMTP trafiğini incele
netstat -an | grep ':25 ' | grep ESTABLISHED
# Hangi prosesin bağlantı açtığını bul
lsof -i :25
# Belirli bir cPanel hesabı için giden SMTP'yi geçici olarak kısıtla
# /etc/csf/csf.conf içinde:
# SMTP_BLOCK = "1" - cPanel hesaplarının direkt SMTP bağlantısını engeller
# SMTP_ALLOWUSER = "guvenilir_kullanici" - İstisna eklemek için
# Değişikliği uygula
csf -r && service lfd restart
SMTP_BLOCK = “1” ayarı, tüm cPanel kullanıcılarının doğrudan port 25 bağlantısı açmasını engeller. E-postalar yalnızca sunucunun mail transfer agent’ı üzerinden gönderilir.
Senaryo 3: DDoS Bağlantı Flood
Birden fazla IP’den gelen bağlantı flood saldırısı web sunucunuzu yavaşlatıyor:
# Anlık bağlantı durumunu izle
watch -n 1 'netstat -an | grep ":80 " | wc -l'
# Bağlantı başına IP sayısını göster
netstat -an | grep ":80 " | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -20
# CSF'de connection tracking'i aktifleştir
# csf.conf içinde:
# CT_LIMIT = "100"
# CT_INTERVAL = "30"
# CT_BLOCK_TIME = "1800"
# CT_EMAIL_ALERT = "1"
csf -r
Bu ayarlarla 30 saniyelik periyotta 100’den fazla bağlantı açan IP’ler otomatik olarak 30 dakika engellenir.
Periyodik Bakım ve Log Yönetimi
CSF logs çok hızlı büyüyebilir. Düzenli bakım alışkanlığı edinmek şart:
#!/bin/bash
# /usr/local/bin/csf-bakim.sh
# Bu script'i cron'a ekleyin: 0 2 * * 0 /usr/local/bin/csf-bakim.sh
# Temp IP listesini temizle (süresi dolanları)
csf -tf
# Deny listesindeki eski kayıtları temizle (30 günden eski)
# Bu işlemi csf.conf'ta DENY_TEMP_IP_LIMIT ile otomatikleştirebilirsiniz
# Log boyutunu kontrol et
DU=$(du -sh /var/log/lfd.log 2>/dev/null | cut -f1)
echo "LFD log boyutu: $DU"
# CSF istatistiklerini göster
csf -l | wc -l | xargs echo "Toplam engellenen IP sayisi:"
# CSF güncellemelerini kontrol et
csf -u
# Script'i çalıştırılabilir yap ve cron'a ekle
chmod +x /usr/local/bin/csf-bakim.sh
echo "0 2 * * 0 root /usr/local/bin/csf-bakim.sh >> /var/log/csf-bakim.log 2>&1" >> /etc/cron.d/csf-bakim
CSF Cluster Modu
Birden fazla cPanel sunucusu yönetiyorsanız, CSF’nin cluster özelliği hayat kurtarır. Bir sunucuda engellenen IP, diğer sunuculara da otomatik olarak iletilir.
# csf.conf içinde cluster ayarları
CLUSTER_SENDTO = "192.168.1.101,192.168.1.102"
CLUSTER_RECVFROM = "192.168.1.101,192.168.1.102"
CLUSTER_MASTER = ""
CLUSTER_PORT = "7777"
CLUSTER_KEY = "guclu-bir-sifre-buraya"
Her sunucuda bu ayarları yapılandırdıktan sonra:
# CSF cluster servisini yeniden başlat
service lfd restart
# Cluster bağlantısını test et
csf --cping
Güncelleme ve Sürüm Yönetimi
CSF’yi güncel tutmak kritik önem taşır. Yeni sürümler genellikle güvenlik iyileştirmeleri ve cPanel uyumluluk güncellemeleri içerir:
# Mevcut sürümü kontrol et
csf -v
# Güncel sürümü kontrol et (indirilmeden sadece bilgi verir)
csf -u
# Otomatik güncelleme için cron ekle
echo "0 3 * * 1 root perl /usr/local/csf/bin/csfupdate.pl >> /var/log/csf-update.log 2>&1" >> /etc/cron.d/csf-update
Sık Yapılan Hatalar ve Çözümleri
Yıllar içinde en sık karşılaştığım sorunlar ve çözümleri şunlar:
Kendi IP’nizi kilitlemek: Kurulum yaparken kendi IP adresinizi csf.allow dosyasına ekleyin. Kilit yerseniz sunucu konsolundan (KVM/IPMI) csf -f komutuyla tüm kuralları temizleyebilirsiniz.
Test modunu kapatmamak: TESTING = "1" kalırsa 5 dakika sonra tüm firewall kuralları silinir. Kurulum sonrası ilk iş bu satırı "0" yapmak.
cPHulk ile çift engelleme: Hem cPHulk hem de CSF aktifken aynı IP’nin farklı sistemlerde farklı engelleme durumları olabilir. Tek yönetim noktası için LF_CPANEL = "1" ile CSF’yi birincil yönetici yapın.
E-posta bildirimlerinin gelememesi: LF_ALERT_TO ve LF_ALERT_FROM ayarlarının doğru yapılandırıldığından emin olun. Test için:
# Test e-postası gönder
echo "CSF test maili" | mail -s "CSF Test" [email protected]
Sonuç
CSF ile cPanel/WHM entegrasyonu, paylaşımlı ya da VPS hosting ortamlarında güvenlik yönetimini hem güçlü hem de pratik hale getirir. WHM arayüzü sayesinde teknik bilgisi sınırlı operatörler bile temel firewall işlemlerini yapabilirken, komut satırı üzerinden derin özelleştirme imkanı deneyimli sysadminlere tam kontrol sağlar.
Özellikle şu noktalara önem verin: Test modunu kapatmak, kendi IP’nizi beyaz listeye almak, LFD eşiklerini ortamınıza göre ayarlamak ve cluster özelliğini birden fazla sunucu yönetiyorsanız aktif etmek. Bu dört adımı doğru yaparsanız, CSF sunucunuzun en güvenilir kalkanlarından biri olacaktır.
Güvenlik tek seferlik bir iş değil, sürekli bakım isteyen bir süreçtir. CSF’yi kurdunuz, yapılandırdınız; şimdi logları düzenli izleyin, güncellemeleri takip edin ve her yeni saldırı vektörü için yapılandırmanızı güncelleyin. Sunucunuzun güvende kalması büyük ölçüde bu disipline bağlıdır.