CSF Firewall Nedir: cPanel Sunucularda Kurulum ve Yapılandırma

Sunucunuzu internete açtığınız anda, saldırı denemeleri dakikalar içinde başlar. Brute force, port tarama, DDoS denemeleri… Bunlarla başa çıkmak için güvenilir bir firewall şart. cPanel/WHM kullanan sunucularda bu işin en yaygın ve etkili çözümü CSF (ConfigServer Security & Firewall). Hem ücretsiz, hem güçlü, hem de cPanel ile kusursuz entegre çalışıyor. Bu yazıda CSF’yi sıfırdan kuracağız, yapılandıracağız ve gerçek senaryolarda nasıl kullandığımızı paylaşacağım.

CSF Firewall Nedir?

CSF, ConfigServer tarafından geliştirilen, Linux tabanlı sunucular için tasarlanmış bir güvenlik duvarı ve izinsiz giriş tespit sistemidir. Arka planda iptables kullanır ancak bunu yönetilebilir ve anlaşılır bir hale getirir. Tek başına bir firewall olmaktan öte, içinde birçok güvenlik aracı barındırır.

CSF’nin temel bileşenleri şunlardır:

  • csf: Ana firewall bileşeni, iptables kurallarını yönetir
  • lfd (Login Failure Daemon): Başarısız giriş denemelerini izler ve otomatik engelleme yapar
  • cPHulk entegrasyonu: cPanel’in brute force korumasıyla birlikte çalışır
  • Cluster yönetimi: Birden fazla sunucuyu merkezi yönetme imkanı

Neden bu kadar popüler? Çünkü basit bir iptables yapılandırması yazmak hem zaman alır hem de hata yapmaya açıktır. CSF bunu bir konfigürasyon dosyasıyla hallediyor ve üstüne bir de WHM paneline entegre oluyor.

Kurulum Öncesi Hazırlık

Kuruluma geçmeden önce birkaç şeyi kontrol etmek gerekiyor. Sunucunuzda başka bir firewall çalışıyorsa, bunları durdurmak lazım. Aksi halde çakışma yaşarsınız.

# Firewalld varsa durdur ve devre dışı bırak
systemctl stop firewalld
systemctl disable firewalld

# UFW varsa (nadir ama olabilir)
ufw disable

# Mevcut iptables kurallarını kontrol et
iptables -L -n

Sunucunuzda Perl kurulu olmalı, CSF bunu gerektiriyor:

# Perl kontrolü
perl -v

# Perl yoksa yükle (CentOS/RHEL)
yum install perl -y

# AlmaLinux/Rocky Linux için
dnf install perl -y

Ayrıca kurulum yapmadan önce SSH portunu not edin. CSF kurulumu sırasında bu porta erişimi kaybederseniz sunucuya bağlanamaz hale gelirsiniz. cPanel sunucularında varsayılan SSH portu genellikle 22’dir ama değiştirilmiş olabilir.

# SSH portunu öğren
grep -i "^Port" /etc/ssh/sshd_config

CSF Kurulumu

Kurulum oldukça basit. Önce kurulum scriptini indiriyoruz:

# /usr/src dizinine geç
cd /usr/src

# CSF'yi indir
wget https://download.configserver.com/csf.tgz

# Arşivi aç
tar -xzf csf.tgz

# Kurulum dizinine gir
cd csf

# Kurulum scriptini çalıştır
sh install.sh

Kurulum başarıyla tamamlandığında şuna benzer bir çıktı görürsünüz:

Installation Completed

Kurulum sırasında CSF, iptables modüllerini kontrol eder. Eğer bazı modüller eksikse uyarı verir. Prodüksiyon ortamında bu uyarılara dikkat edin.

Kurulumdan sonra iptables uyumluluğunu test edin:

perl /usr/local/csf/bin/csftest.pl

Bu script, sunucunuzun CSF’yi düzgün çalıştırıp çalıştıramayacağını test eder. Tüm testlerin “PASS” göstermesi ideal durumdur.

CSF Yapılandırması

Ana yapılandırma dosyası /etc/csf/csf.conf‘tur. Bu dosya yüzlerce parametre içerir. Hepsini ezberlemek gerekmez ama kritik olanları bilmek şart.

Test Modundan Çıkma

CSF varsayılan olarak test modunda kurulur. Bu modda iptables kuralları 5 dakika sonra otomatik sıfırlanır. Bu özellik, yanlış yapılandırma durumunda kendinizi dışarıda bırakmamanız içindir. Yapılandırmayı tamamladıktan sonra test modunu kapatın:

# csf.conf dosyasını düzenle
nano /etc/csf/csf.conf

Dosyada şu satırı bulun ve değiştirin:

TESTING = "0"

Temel Port Yapılandırması

cPanel sunucusu için gelen ve giden portları doğru ayarlamak kritik. Varsayılan konfigürasyon çoğu durumda yeterli olsa da kontrol etmek iyi olur:

# TCP_IN: Dışarıdan sunucuya gelen TCP bağlantıları
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2077,2078,2082,2083,2086,2087,2095,2096"

# TCP_OUT: Sunucudan dışarıya giden TCP bağlantıları
TCP_OUT = "20,21,22,25,53,80,110,143,443,465,587,993,995"

# UDP_IN: Gelen UDP bağlantıları
UDP_IN = "20,21,53"

# UDP_OUT: Giden UDP bağlantıları
UDP_OUT = "20,21,53,113,123"

Bu portların anlamları:

  • 20,21: FTP
  • 22: SSH
  • 25: SMTP
  • 53: DNS
  • 80,443: HTTP ve HTTPS
  • 110,143,993,995: POP3 ve IMAP (şifreli ve şifresiz)
  • 465,587: SMTP submission
  • 2082,2083: cPanel (HTTP ve HTTPS)
  • 2086,2087: WHM (HTTP ve HTTPS)
  • 2077,2078: WebDAV
  • 2095,2096: Webmail

LFD (Login Failure Daemon) Ayarları

LFD, CSF’nin en değerli özelliklerinden biri. Başarısız giriş denemelerini izler ve belirli eşiği aşan IP’leri otomatik olarak engeller.

Önemli LFD parametreleri:

  • LF_TRIGGER: Engelleme öncesi başarısız deneme sayısı (varsayılan: 10)
  • LF_TRIGGER_PERM: 1 yapılırsa kalıcı engelleme, 0 yapılırsa geçici
  • LF_ALERT_TO: Uyarı e-postalarının gideceği adres
  • LF_ALERT_FROM: Uyarı e-postalarının gönderileceği adres
# csf.conf içinde bu değerleri düzenleyin
LF_TRIGGER = "5"
LF_TRIGGER_PERM = "0"
LF_ALERT_TO = "[email protected]"

LF_TRIGGER’ı 5’e düşürmek daha agresif bir koruma sağlar. Ancak meşru kullanıcıların da kilitlenebileceğini unutmayın. Özellikle şifresini unutan kullanıcılar için support talebi oluşabilir.

IP Listeleri: Whitelist ve Blacklist

CSF’de IP yönetimi birkaç dosya üzerinden yapılır:

  • /etc/csf/csf.allow: Beyaz liste, bu IP’ler hiçbir zaman engellenmez
  • /etc/csf/csf.deny: Kara liste, bu IP’ler kesinlikle engellenir
  • /etc/csf/csf.ignore: LFD tarafından görmezden gelinecek IP’ler

Kendi ofis IP’nizi veya yönetim IP’nizi beyaz listeye eklemek güvenli bir pratiktir:

# Ofis IP'sini beyaz listeye ekle
csf -a 203.0.113.50 "Ofis IP - Engelleme"

# Belirli bir IP'yi kara listeye ekle
csf -d 198.51.100.100 "Brute force saldirisi"

# Beyaz listedeki IP'yi kaldır
csf -ar 203.0.113.50

# Kara listedeki IP'yi kaldır
csf -dr 198.51.100.100

Bir IP hakkında bilgi almak için:

# IP'nin durumunu kontrol et
csf -g 198.51.100.100

Bu komut, söz konusu IP’nin iptables kurallarında nerede göründüğünü listeler.

Gerçek Dünya Senaryosu: Brute Force Saldırısı

Bir gece sunucu yöneticisine şöyle bir e-posta gelir: “Sunucumuz çok yavaşladı.” Auth loguna bakılır:

# Başarısız SSH girişlerini kontrol et
grep "Failed password" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -rn | head -20

Çıktı şunu gösterir: Tek bir IP’den 5 dakikada 2000 deneme. LFD bu IP’yi zaten engellemiş olmalı. Ama bazen saldırı birden fazla IP’den gelir. Bu durumda CSF’nin cluster özelliği veya geçici bir CIDR bloğu işe yarar:

# Belirli bir IP bloğunu engelle (örnek: /24 subneti)
csf -d 198.51.100.0/24 "Koordineli brute force - tum subnet"

# CSF istatistiklerini gör
csf -l

# LFD tarafından engellenen IP'leri listele
csf -t

Bu senaryoda CSF olmadan, iptables kurallarını elle yazmak saatler alabilirdi ve birinin gece 3’te terminalin başında olması gerekirdi.

WHM Üzerinden CSF Yönetimi

CSF kurulduktan sonra WHM panelinde “ConfigServer Security & Firewall” menüsü oluşur. Bu menü üzerinden:

  • IP engelleme ve serbest bırakma
  • Konfigürasyon dosyasını düzenleme
  • LFD loglarını görüntüleme
  • Güvenlik denetimi çalıştırma

işlemlerini yapabilirsiniz. Terminal erişimi olmayan müşterileriniz veya ekip üyeleriniz için bu arayüz oldukça kullanışlıdır.

CSF’yi WHM üzerinden aktif hale getirmek için:

# CSF'yi başlat
csf -s

# CSF'yi durdur (dikkat: firewall devre dışı kalır)
csf -f

# CSF kurallarını yenile
csf -r

Port Knocking ve Özel Kurallar

Bazı durumlarda belirli bir IP’ye belirli bir portu sadece o IP için açmak isteyebilirsiniz. Örneğin, monitoring sisteminin Zabbix portuna bağlanması için:

# Belirli IP için belirli portu aç
csf -a tcp in 10050 203.0.113.10/32 "" "Zabbix monitoring sunucusu"

Veya csf.conf üzerinde özel iptables kuralları ekleyebilirsiniz. /etc/csf/csfpost.sh dosyası, CSF başladıktan sonra çalıştırılacak özel kurallar için kullanılır:

# /etc/csf/csfpost.sh dosyasını oluştur
nano /etc/csf/csfpost.sh

Dosya içeriği:

#!/bin/bash
# CSF başladıktan sonra çalışacak özel kurallar

# Belirli bir subnetten 8080 portuna erişime izin ver
iptables -I INPUT -p tcp --dport 8080 -s 10.0.0.0/8 -j ACCEPT

# Rate limiting: Saniyede 10'dan fazla yeni bağlantıyı sınırla
iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m limit --limit 60/min --limit-burst 20 -j ACCEPT

Dosyayı çalıştırılabilir yapın:

chmod +x /etc/csf/csfpost.sh

CSF Güvenlik Denetimi

CSF, csf --check komutuyla sunucunuzdaki güvenlik açıklarını tarar:

# Güvenlik denetimi çalıştır
csf --check

Bu denetim şunları kontrol eder:

  • Açık ve gereksiz portları
  • Zayıf SSH yapılandırmasını
  • Apache ve diğer servis güvenlik ayarlarını
  • Kernel parametrelerini

Çıktıda [WARNING] ile başlayan satırlar dikkat gerektiren konulardır. Hepsini düzeltmek zorunda değilsiniz ama gözden geçirmeye değer.

Yaygın Sorunlar ve Çözümleri

Kendi IP’nizi Engellediniz

Bu, her sysadmin’in en az bir kez yaşadığı durumdur. IP’niz engellendiğinde SSH bağlantısı kesilir ve panik başlar. Eğer sunucuya fiziksel erişim veya IPMI/KVM erişiminiz varsa:

# Kendi IP'nizi engeli kaldır
csf -dr KENDI_IP_ADRESINIZ

# Veya tüm kuralları temizle (dikkat: firewall devre dışı kalır)
csf -f

Bu yüzden kurulum aşamasında ofis IP’nizi veya yönetim IP’nizi /etc/csf/csf.ignore dosyasına eklemek kritik önem taşır.

LFD Meşru Kullanıcıları Engelliyor

E-posta sunucunuz üzerindeki bazı kullanıcılar şifrelerini yanlış girdikten sonra engelleniyorsa, bu durumu yönetmek gerekir. /etc/csf/csf.conf içinde:

LF_POP3D = "10"
LF_IMAPD = "10"

Bu değerleri artırmak, e-posta protokolleri için eşiği yükseltir. Ancak güvenlikle kullanım kolaylığı arasındaki dengeyi iyi kurmak gerekir.

CSF Sonrası Servis Sorunları

CSF kurulumundan sonra bazı servisler çalışmayabilir. En yaygın neden, o servisin portunu TCP_IN veya TCP_OUT listesine eklemeyi unutmaktır:

# Hangi portu dinlediğini kontrol et
ss -tlnp

# Veya
netstat -tlnp

# Port açık mı diye kontrol et
csf -g SUNUCU_IP:PORT

CSF Güncelleme ve Bakım

CSF düzenli olarak güncellenir. Güncellemeler yeni özellikler getirdiği gibi güvenlik yamalarını da içerir:

# Mevcut versiyonu kontrol et
csf -v

# Güncelleme yap
csf -u

Güncelleme komutu yeni versiyonu indirir ve kurar. Konfigürasyon dosyalarınız korunur. Ancak güncelleme sonrasında CSF’yi yeniden başlatmayı unutmayın:

# Güncelleme sonrası yeniden başlat
csf -r
service lfd restart

Cron job ile otomatik güncelleme de yapılabilir, ancak prodüksiyon sunucularda bunu önermiyorum. Güncellemenin ne zaman yapıldığını bilmek ve kontrollü bir şekilde uygulamak her zaman daha güvenlidir.

CSF ile E-posta Bildirimleri

Sunucunuzda bir şeyler ters gittiğinde haberdar olmak istersiniz. CSF’nin e-posta bildirimleri bu konuda çok yardımcı olur. /etc/csf/csf.conf içinde:

LF_ALERT_TO = "[email protected]"
LF_ALERT_FROM = "[email protected]"

Hangi durumlarda bildirim alacağınızı ayarlayabilirsiniz:

  • LF_EMAIL_ALERT: IP engellendiğinde bildirim
  • LT_EMAIL_ALERT: Login takibi bildirimi
  • CT_EMAIL_ALERT: Bağlantı takibi bildirimi

Ancak dikkatli olun. Aktif saldırı altındaki bir sunucuda dakikada yüzlerce bildirim alabilir ve e-posta kutunuz dolabilir. Kritik bildirimleri açık tutup diğerlerini kapatmak mantıklıdır.

cPHulk ile Entegrasyon

cPanel’in kendi brute force koruması olan cPHulk da mevcuttur. CSF ve cPHulk aynı anda çalışabilir ama bunları entegre etmek daha iyi sonuç verir. WHM > cPHulk Brute Force Protection menüsünden cPHulk’u etkinleştirdiğinizde, engellenen IP’ler otomatik olarak CSF’ye de aktarılır.

Bunu aktif hale getirmek için csf.conf içinde:

CPANEL_INTEGRATION = "1"

satırının 1 değerinde olduğundan emin olun.

Firewall Kurallarını İzleme

Günlük operasyonlarda CSF’nin ne yaptığını takip etmek önemlidir:

# CSF log dosyasını takip et
tail -f /var/log/lfd.log

# Engellenen IP'leri listele
csf -t

# Aktif bağlantıları görüntüle
csf -c

# Mevcut iptables kurallarını göster
iptables -L -n -v | head -50

Özellikle /var/log/lfd.log dosyasını düzenli kontrol etmek, sunucunuza yönelik saldırı paternlerini anlamanızı sağlar. Hangi ülkelerden saldırı geldiğini, hangi portların hedeflendiğini görünce kendinize özgü koruma stratejisi oluşturabilirsiniz.

Ülke Bazlı Engelleme

CSF, ülke bazlı engelleme özelliği de sunar. Eğer Türkiye’ye hizmet veren bir sunucunuz varsa ve Asya veya Doğu Avrupa’dan sürekli saldırı geliyorsa, bu özelliği kullanabilirsiniz. Ancak bu kararı dikkatli alın. Meşru kullanıcıları da etkileyebilir.

# csf.conf içinde ülke bloklama
CC_DENY = "CN,RU,KP"  # Çin, Rusya, Kuzey Kore'den bağlantıları engelle
CC_ALLOW = "TR"  # Türkiye'den gelen bağlantılara izin ver

Bu özelliği etkinleştirmeden önce MaxMind GeoIP veritabanının kurulu olması gerekir. CSF bunu otomatik indirmeye çalışır ama bazen elle kurulum gerekebilir.

Sonuç

CSF, cPanel sunucularında güvenlik altyapısının vazgeçilmez bir parçası haline gelmiştir. Sadece bir iptables yöneticisi değil; brute force koruması, port yönetimi, ülke bazlı filtreleme ve kapsamlı loglama ile gerçek anlamda bir güvenlik platformudur.

Kurulum basit, yapılandırma esnektir ve WHM entegrasyonu sayesinde grafik arayüzden de yönetilebilir. Ancak “kur ve unut” mantığıyla yaklaşmak doğru değildir. Logları düzenli kontrol edin, güncellemeleri takip edin ve güvenlik denetimlerini periyodik olarak çalıştırın.

En önemli tavsiyem: Kendi yönetim IP’nizi her zaman beyaz listeye alın. Gece 2’de kendinizi sunucunun dışında bulmak kimsenin istemediği bir deneyimdir. Ayrıca test modunu kapatmadan önce konfigürasyonunuzu iyice gözden geçirin.

CSF, doğru yapılandırıldığında sunucunuzu otomatik saldırılara karşı oldukça dirençli hale getirir. Yani temel güvenlik görevlerini üstlenirken siz daha kritik işlere odaklanabilirsiniz.

Yorum yapın