OpenLiteSpeed ile Sucuri ve Cloudflare Entegrasyonu

Web sunucunuzu dış tehditlere karşı korumak artık bir lüks değil, zorunluluk. OpenLiteSpeed kullanıyorsanız ve Sucuri ile Cloudflare’i entegre etmek istiyorsanız, doğru yerdesiniz. Bu yazıda sıfırdan gerçek bir üretim ortamı kurar gibi her adımı ele alacağız.

Neden Bu Üçlü Kombinasyon?

OpenLiteSpeed, Apache’ye kıyasla çok daha az kaynak tüketirken yüksek performans sunan bir web sunucusu. Cloudflare ise CDN, DDoS koruması ve DNS yönetimini bir arada sunuyor. Sucuri’yi karışıma kattığınızda gerçek anlamda katmanlı bir güvenlik mimarisi elde ediyorsunuz.

Geçen ay bir müşterimin sitesi dakikada 50.000 istek gören bir DDoS saldırısına maruz kaldı. Cloudflare ilk filtreyi geçirdi, Sucuri WAF kötü niyetli paketleri engelledi, OpenLiteSpeed ise geri kalan meşru trafiği sorunsuz servis etti. Sunucu hiç terlemedi.

Bu üçlünün mantığı şöyle işliyor:

  • Cloudflare: İlk katman, DNS seviyesinde trafik filtreleme ve CDN
  • Sucuri WAF: İkinci katman, uygulama seviyesinde tehdit engelleme
  • OpenLiteSpeed: Son katman, temizlenmiş trafiği işleyen yüksek performanslı sunucu

Ön Hazırlık ve Gereksinimler

Başlamadan önce şunlara ihtiyacınız var:

  • Ubuntu 20.04/22.04 veya CentOS 7/8 çalışan bir VPS
  • OpenLiteSpeed kurulu ve çalışıyor olmalı
  • Cloudflare hesabı (ücretsiz plan yeterli başlangıç için)
  • Sucuri hesabı (en azından Basic WAF planı)
  • Root veya sudo erişimi
  • Domain adınız Cloudflare’e taşınmış olmalı

OpenLiteSpeed’i henüz kurmadıysanız hızlıca başlatın:

# Ubuntu için OpenLiteSpeed kurulumu
wget -O - https://rpms.litespeedtech.com/debian/enable_lst_debian_repo.sh | sudo bash
sudo apt-get install openlitespeed
sudo /usr/local/lsws/bin/lswsctrl start

# Servis durumunu kontrol et
sudo systemctl status lsws

Cloudflare Entegrasyonu

DNS Ayarları ve IP Yönlendirmesi

Cloudflare’de alan adınızı aktif ettikten sonra DNS kayıtlarınızı düzenlemeniz gerekiyor. A kaydınızın Cloudflare proxy’si üzerinden geçtiğinden emin olun. Turuncu bulut simgesi aktif olmalı.

Ancak asıl önemli nokta şu: Cloudflare’den gelen gerçek ziyaretçi IP adreslerini OpenLiteSpeed’in doğru okuması. Aksi takdirde tüm bağlantılar Cloudflare’in IP adreslerinden geliyormuş gibi görünür ve log analizleri anlamsız hale gelir.

OpenLiteSpeed’de gerçek IP’yi restore etmek için önce Cloudflare’in kullandığı IP aralıklarını öğrenin:

# Cloudflare IPv4 aralıklarını çek
curl https://www.cloudflare.com/ips-v4 > /tmp/cf_ips.txt
cat /tmp/cf_ips.txt

# Cloudflare IPv6 aralıklarını çek
curl https://www.cloudflare.com/ips-v6 >> /tmp/cf_ips.txt

OpenLiteSpeed’de Gerçek IP Yapılandırması

OpenLiteSpeed yönetim paneline gidin (varsayılan olarak https://sunucu-ip:7080) ve şu ayarları yapın. Ya da doğrudan konfigürasyon dosyasını düzenleyin:

# OpenLiteSpeed ana konfigürasyon dosyasını aç
sudo nano /usr/local/lsws/conf/httpd_config.conf

useIpInProxyHeader direktifini ekleyin. Virtual host konfigürasyonunuzda şunu arayın ve düzenleyin:

# Virtual host konfigürasyonunu düzenle
sudo nano /usr/local/lsws/conf/vhosts/siteadi/vhconf.conf

# Şu satırı ekleyin veya düzenleyin
useIpInProxyHeader 2

useIpInProxyHeader parametresinin değerleri:

  • 0: Proxy header’ı kullanma
  • 1: Güvenilir proxy’lerden gelen header’ı kullan
  • 2: Her zaman X-Forwarded-For header’ını kullan (Cloudflare için önerilir)

Cloudflare SSL/TLS Modu Ayarı

Bu kısım çok kritik. Cloudflare panelinde SSL/TLS bölümüne gidin ve Full (Strict) modunu seçin. Bu mod, Cloudflare’in sunucunuzla olan bağlantısını da SSL ile şifreler ve sertifika doğrulaması yapar.

OpenLiteSpeed’de de geçerli bir SSL sertifikası olması gerekiyor. Let’s Encrypt ile ücretsiz sertifika alabilirsiniz:

# Certbot kurulumu
sudo apt-get install certbot

# OpenLiteSpeed servisi geçici durdur
sudo /usr/local/lsws/bin/lswsctrl stop

# Sertifika al (standalone mod)
sudo certbot certonly --standalone -d siteniz.com -d www.siteniz.com

# OpenLiteSpeed'i yeniden başlat
sudo /usr/local/lsws/bin/lswsctrl start

# Sertifika yolları
ls -la /etc/letsencrypt/live/siteniz.com/

Sertifika yollarını OpenLiteSpeed konfigürasyonuna ekleyin:

# Virtual host SSL konfigürasyonu
sudo nano /usr/local/lsws/conf/vhosts/siteadi/vhconf.conf

# Şu bloğu ekleyin veya düzenleyin:
# keyFile /etc/letsencrypt/live/siteniz.com/privkey.pem
# certFile /etc/letsencrypt/live/siteniz.com/fullchain.pem
# certChain 1
# sslProtocol 24

Sucuri WAF Entegrasyonu

Sucuri’nin Çalışma Mantığı

Sucuri, trafiği kendi altyapısından geçirir. DNS’inizin Sucuri’ye işaret etmesi gerekiyor ve Sucuri temizlenmiş trafiği sizin gerçek sunucu IP’nize yönlendiriyor. Cloudflare ile birlikte kullanıldığında trafik akışı şöyle oluyor:

Ziyaretçi -> Cloudflare -> Sucuri WAF -> OpenLiteSpeed Sunucusu

Sucuri panelinde sitenizi ekledikten sonra size iki Sucuri IP adresi verilir. Bu IP’leri Cloudflare’deki A kaydınız olarak girin. Cloudflare artık trafiği doğrudan sizin sunucunuza değil Sucuri’ye gönderir.

Sunucu Tarafında Sucuri IP Whitelist

Sucuri’nin trafiği sunucunuza ulaştırabilmesi için Sucuri’nin IP aralıklarını firewall’da açmanız gerekiyor. Aynı zamanda direkt erişimi engelleyerek sadece Sucuri ve Cloudflare üzerinden gelen trafiğe izin verin:

# UFW ile Sucuri IP'lerini ekle
# Sucuri'nin güncel IP listesi için: https://sucuri.net/what-is-sucuri/

sudo ufw default deny incoming
sudo ufw default allow outgoing

# Sucuri IP aralıkları (2024 itibarıyla - güncel listeyi Sucuri panelinden alın)
sudo ufw allow from 192.88.134.0/23 to any port 80
sudo ufw allow from 192.88.134.0/23 to any port 443
sudo ufw allow from 66.248.200.0/22 to any port 80
sudo ufw allow from 66.248.200.0/22 to any port 443
sudo ufw allow from 208.109.0.0/22 to any port 80
sudo ufw allow from 208.109.0.0/22 to any port 443

# SSH erişimine izin ver (kendi IP'niz için)
sudo ufw allow from SENIN_IP_ADRESIN to any port 22

# OpenLiteSpeed yönetim paneli sadece kendi IP'nizden erişilebilir olsun
sudo ufw allow from SENIN_IP_ADRESIN to any port 7080

# UFW'yu etkinleştir
sudo ufw enable
sudo ufw status verbose

Sucuri’den Gelen Gerçek IP’yi Okuma

Sucuri da Cloudflare gibi X-Forwarded-For header’ı kullanır. Ancak ikisi birlikte kullanıldığında zincir biraz karmaşıklaşır. OpenLiteSpeed’in doğru IP’yi okuması için şu konfigürasyonu kullanın:

# .htaccess veya virtual host konfigürasyonuna ekle
sudo nano /usr/local/lsws/conf/vhosts/siteadi/vhconf.conf

# Aşağıdaki satırları ekleyin:
# extprocessor php8 {
#   type                    lsapi
#   ...
# }

# Rewrite kuralları için .htaccess dosyasına ekleyin:
sudo nano /usr/local/lsws/DEFAULT/html/siteadi/.htaccess
# .htaccess içeriği - Sucuri ve Cloudflare için header yönetimi
cat >> /var/www/html/.htaccess << 'EOF'
# Sucuri gerçek IP başlıkları
SetEnvIf X-Sucuri-ClientIP ^(.+)$ REMOTE_ADDR=$1
SetEnvIf HTTP_CF_CONNECTING_IP ^(.+)$ REMOTE_ADDR=$1

# Sucuri dışından gelen direkt erişimi engelle
# (Sadece güvenilir proxy'lerden gelen trafik kabul edilsin)
EOF

OpenLiteSpeed Güvenlik Sertleştirme

Rate Limiting Konfigürasyonu

Cloudflare ve Sucuri mükemmel iş yapsa da OpenLiteSpeed seviyesinde de rate limiting eklemek savunmanızı güçlendirir. OpenLiteSpeed’in yerleşik connection throttling özelliğini kullanın:

# OpenLiteSpeed ana konfigürasyonuna throttle kuralları ekle
sudo nano /usr/local/lsws/conf/httpd_config.conf

Yönetim panelinden Server Configuration > Connection bölümüne gidin ve şu değerleri ayarlayın:

  • Max Connections: 500
  • Max SSL Connections: 500
  • Connection Timeout: 300
  • Max Keep-Alive Requests: 1000

ModSecurity Kuralları ile Ek Koruma

OpenLiteSpeed, ModSecurity’yi destekler. Sucuri WAF’ın yanı sıra yerel bir WAF katmanı daha eklemek istiyorsanız:

# ModSecurity modülü OpenLiteSpeed ile gelir, aktif edin
# Yönetim paneli: Server > Modules > mod_security

# OWASP Core Rule Set indir
cd /usr/local/lsws
sudo mkdir -p modsec
cd modsec

# CRS indirme
wget https://github.com/coreruleset/coreruleset/archive/v3.3.5.tar.gz
tar -xzf v3.3.5.tar.gz
mv coreruleset-3.3.5 crs

# ModSecurity konfigürasyon dosyası oluştur
sudo nano /usr/local/lsws/modsec/modsec.conf
# modsec.conf temel içeriği
cat > /usr/local/lsws/modsec/modsec.conf << 'EOF'
SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess Off
SecResponseBodyMimeType text/plain text/html text/xml
SecDataDir /tmp/
SecTmpDir /tmp/
SecAuditLog /usr/local/lsws/logs/modsec_audit.log
SecAuditEngine RelevantOnly
SecAuditLogParts ABIJDEFHZ

Include /usr/local/lsws/modsec/crs/crs-setup.conf
Include /usr/local/lsws/modsec/crs/rules/*.conf
EOF

Cloudflare Page Rules ve Güvenlik Politikaları

Kritik Sayfalar İçin Gelişmiş Koruma

Cloudflare panelinde bazı önemli ayarlar yapmanız gerekiyor. Security bölümünden WAF kurallarını aktif edin ve şu ayarları yapın:

  • Security Level: High
  • Bot Fight Mode: Açık
  • Browser Integrity Check: Açık

Özellikle WordPress veya benzeri CMS kullanıyorsanız admin panelini ekstra koruma altına alın:

# Cloudflare Workers ile admin koruması (opsiyonel)
# Bu script sadece bilinen IP'lerden /wp-admin erişimine izin verir

# Firewall Rules bölümünde şu kuralı ekleyin:
# (http.request.uri.path contains "/wp-admin") and 
# (not ip.src in {SENİN_IP_ADRESİN})
# Action: Block

Cache Bypass Kuralları

Cloudflare önbellekleme ile OpenLiteSpeed’in LiteSpeed Cache eklentisi çakışabilir. Yönetim panelleri, API endpoint’leri ve dinamik içerik için cache bypass kuralları ekleyin:

# OpenLiteSpeed'de cache konfigürasyonu
sudo nano /usr/local/lsws/conf/vhosts/siteadi/vhconf.conf

# Cache bypass kuralları için rewrite direktifleri
# Aşağıdaki path'ler için cache bypass aktif edin:
# /wp-admin/
# /wp-login.php
# /checkout/
# /cart/
# /my-account/

Log Yönetimi ve Monitoring

Merkezi Log Analizi

Bu üç katmanlı mimaride log yönetimi kritik önem taşır. Her katmanın loglarını bir araya getirip analiz etmek güvenlik olaylarını hızla tespit etmenizi sağlar:

# OpenLiteSpeed log rotasyonu ayarla
sudo nano /etc/logrotate.d/openlitespeed

# İçerik:
cat > /etc/logrotate.d/openlitespeed << 'EOF'
/usr/local/lsws/logs/*.log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    create 640 nobody root
    sharedscripts
    postrotate
        /usr/local/lsws/bin/lswsctrl restart > /dev/null 2>&1 || true
    endscript
}
EOF

# Log analizi için basit script
cat > /usr/local/bin/security-check.sh << 'EOF'
#!/bin/bash
echo "=== Son 1 Saatteki Şüpheli İstekler ==="
grep "$(date -d '1 hour ago' '+%d/%b/%Y:%H')" /usr/local/lsws/logs/access.log | 
  grep -E "(wp-login|xmlrpc|.php?|SELECT|UNION|script>)" | 
  awk '{print $1}' | sort | uniq -c | sort -rn | head -20

echo "=== En Çok İstek Yapan IP'ler ==="
grep "$(date '+%d/%b/%Y')" /usr/local/lsws/logs/access.log | 
  awk '{print $1}' | sort | uniq -c | sort -rn | head -10
EOF

chmod +x /usr/local/bin/security-check.sh

Otomatik Tehdit Engelleme

Fail2Ban ile OpenLiteSpeed loglarını izleyip otomatik IP banlama yapabilirsiniz:

# Fail2Ban kurulumu
sudo apt-get install fail2ban

# OpenLiteSpeed için özel jail oluştur
sudo nano /etc/fail2ban/jail.d/openlitespeed.conf

cat > /etc/fail2ban/jail.d/openlitespeed.conf << 'EOF'
[openlitespeed-auth]
enabled = true
port = http,https
filter = openlitespeed-auth
logpath = /usr/local/lsws/logs/error.log
maxretry = 5
findtime = 600
bantime = 3600

[openlitespeed-badbots]
enabled = true
port = http,https
filter = openlitespeed-badbots
logpath = /usr/local/lsws/logs/access.log
maxretry = 2
findtime = 300
bantime = 86400
EOF

# Filter dosyası oluştur
sudo nano /etc/fail2ban/filter.d/openlitespeed-badbots.conf

cat > /etc/fail2ban/filter.d/openlitespeed-badbots.conf << 'EOF'
[Definition]
failregex = ^<HOST> .* "(GET|POST|HEAD).*(wp-login.php|xmlrpc.php|.env|.git).*" (400|403|404|429)
ignoreregex =
EOF

sudo systemctl restart fail2ban
sudo fail2ban-client status

Gerçek Dünya Senaryosu: E-Ticaret Sitesi Güvenliği

Diyelim ki WooCommerce tabanlı bir e-ticaret sitesi yönetiyorsunuz. Ödeme sayfaları, müşteri verileri ve yüksek trafik bir arada olunca güvenlik öncelikleri değişiyor.

Bu senaryo için özel konfigürasyon:

# Ödeme sayfaları için ekstra güvenlik kuralları
sudo nano /var/www/html/wp-content/uploads/.htaccess

cat > /var/www/html/wp-content/uploads/.htaccess << 'EOF'
# Uploads klasöründe PHP çalıştırmayı engelle
<Files *.php>
    deny from all
</Files>

# Script dosyası uzantılarını engelle
<FilesMatch ".(php|php3|php4|php5|phtml|pl|py|jsp|asp|aspx|cgi|sh)$">
    Order Deny,Allow
    Deny from all
</FilesMatch>
EOF

# Sucuri için özel header ekle - sunucu fingerprint gizle
sudo nano /usr/local/lsws/conf/httpd_config.conf
# hideSigInHeader ayarını 1 yapın

PCI DSS uyumluluğu için de bazı header’lar eklemeniz gerekiyor:

# Güvenlik header'larını OpenLiteSpeed'e ekle
# Virtual host konfigürasyonuna şunları ekleyin:

cat >> /usr/local/lsws/conf/vhosts/siteadi/vhconf.conf << 'EOF'
# Güvenlik header'ları
rewrite {
  addDefaultCharset utf-8
}

# .htaccess üzerinden header eklemek daha pratik:
EOF

# .htaccess'e güvenlik header'larını ekle
cat >> /var/www/html/.htaccess << 'EOF'
Header always set X-Content-Type-Options nosniff
Header always set X-Frame-Options SAMEORIGIN
Header always set X-XSS-Protection "1; mode=block"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "geolocation=(), microphone=(), camera=()"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
EOF

Sık Karşılaşılan Sorunlar ve Çözümleri

530/525 SSL Hatası: Cloudflare Full Strict modundayken sertifikanız geçersiz veya süresi dolmuşsa bu hata çıkar. Let’s Encrypt otomatik yenilemeyi kontrol edin:

# Sertifika yenileme testi
sudo certbot renew --dry-run

# Cron job ile otomatik yenileme
echo "0 3 * * * certbot renew --quiet && /usr/local/lsws/bin/lswsctrl restart" | sudo crontab -

IP Leak Sorunu: Sunucunuzun gerçek IP’si DNS geçmişinde veya SSL sertifika kayıtlarında (Shodan üzerinden) görünebilir. Bunu önlemek için sunucu IP’nizi değiştirmeyi veya en azından direkt erişimi firewall ile tamamen engellemeyi düşünün.

Cache Çakışması: LiteSpeed Cache ve Cloudflare aynı anda cache yaparsa eski içerik servis edilebilir. Her iki tarafta da purge mekanizmalarını test edin ve öncelik sırasını netleştirin.

Sonuç

OpenLiteSpeed, Cloudflare ve Sucuri üçlüsü doğru kurulduğunda gerçekten güçlü bir güvenlik mimarisi sunuyor. Cloudflare edge seviyesinde DDoS ve bot koruması sağlarken, Sucuri WAF uygulama katmanı tehditlerini yakalıyor, OpenLiteSpeed ise kalanı verimli bir şekilde işliyor.

Bu entegrasyonun başarısı detaylara dikkat etmekten geçiyor. Gerçek IP restore, SSL zincirinin doğru çalışması, firewall kuralları ve log yönetimi olmadan sistemin bir parçası diğerini bozabilir. Yukarıdaki konfigürasyonları üretim ortamına almadan önce mutlaka test ortamında deneyin.

Son olarak, güvenlik statik bir hedef değil. Cloudflare ve Sucuri’nin kural setlerini düzenli güncelleyin, OpenLiteSpeed yamalarını takip edin ve log analizlerinizi rutin hale getirin. İyi konfigüre edilmiş bu üçlü kombinasyon, küçük ve orta ölçekli sitelerden yüksek trafikli platformlara kadar her senaryoda güvenilir bir kalkan görevi görür.

Yorum yapın