Pardus Server Üzerinde CrowdSec Kurulumu ve Yönetimi
Sunucu güvenliği günümüzde yalnızca güçlü parolalar kullanmakla sınırlı değildir. İnternete açık bir sunucu, sürekli olarak otomatik saldırı araçları tarafından taranmakta ve hedef alınmaktadır. Özellikle SSH brute-force saldırıları, web uygulaması taramaları ve yetkisiz erişim girişimleri sistem yöneticilerinin en sık karşılaştığı tehditler arasındadır.
Bu noktada CrowdSec, geleneksel saldırı önleme sistemlerinden farklı olarak topluluk tabanlı tehdit istihbaratı sunan modern bir güvenlik çözümüdür.
CrowdSec Nedir?
CrowdSec; günlük (log) dosyalarını analiz ederek kötü niyetli davranışları tespit eden, saldırgan IP adreslerini engelleyen ve elde edilen tehdit verilerini küresel toplulukla paylaşan açık kaynaklı bir güvenlik platformudur.
CrowdSec aşağıdaki görevleri yerine getirir:
- Sunucu günlüklerini analiz eder.
- Brute-force saldırılarını tespit eder.
- Kötü niyetli IP adreslerini engeller.
- Topluluk veritabanından tehdit istihbaratı alır.
- Güvenlik olaylarını gerçek zamanlı izler.
CrowdSec Mimarisi
CrowdSec üç temel bileşenden oluşur:
1. CrowdSec Agent
Logları okuyarak saldırıları analiz eder.
2. Bouncer
Tespit edilen kötü niyetli IP adreslerini engeller.
Örneğin:
- Firewall Bouncer
- Nginx Bouncer
- Traefik Bouncer
3. Local API (LAPI)
CrowdSec bileşenleri arasında iletişim sağlar.
CrowdSec Nasıl Çalışır?
+-------------------+| SSH / Nginx Logları |+---------+---------+|v+-------------------+| CrowdSec Agent |+---------+---------+|v+-------------------+| Saldırı Tespiti |+---------+---------+|v+-------------------+| Local API (LAPI) |+---------+---------+|v+-------------------+| Firewall Bouncer |+---------+---------+|v+-------------------+| IP Engellenir |+-------------------+
Sistem Gereksinimleri
Bu makale aşağıdaki sistemler üzerinde uygulanabilir:
- Pardus Server 21
- Pardus Server 23
- Debian 11/12
- Ubuntu Server
Minimum gereksinimler:
| Kaynak | Gereksinim |
|---|---|
| CPU | 1 çekirdek |
| RAM | 512 MB |
| Disk | 1 GB |
Paket Güncellemesi
Kuruluma başlamadan önce sistemi güncelleyelim.
sudo apt updatesudo apt upgrade -y
CrowdSec Kurulumu
Öncelikle gerekli paketleri yükleyelim.
sudo apt install curl gnupg lsb-release -y
CrowdSec deposunu sisteme ekleyelim:
curl -s https://install.crowdsec.net | sudo sh
Paket listesini güncelleyelim:
sudo apt update
CrowdSec'i yükleyelim:
sudo apt install crowdsec -y
Kurulum tamamlandıktan sonra servisi kontrol edelim.
sudo systemctl status crowdsec
Servisi etkinleştirelim:
sudo systemctl enable crowdsec
CrowdSec Sürüm Kontrolü
sudo cscli version
Örnek çıktı:
2026.1.0
Mevcut Koleksiyonları Görüntüleme
CrowdSec saldırıları tespit etmek için koleksiyonlar kullanır.
Kurulu koleksiyonları listelemek:
sudo cscli collections list
Örnek çıktı:
PARSERSSCENARIOSCOLLECTIONScrowdsecurity/linuxcrowdsecurity/sshd
SSH Korumasını Etkinleştirme
SSH saldırılarını algılamak için:
sudo cscli collections install crowdsecurity/sshd
Yeniden başlat:
sudo systemctl restart crowdsec
Kurulum doğrulaması:
sudo cscli collections list
Nginx Koruması
Sunucuda Nginx kullanılıyorsa:
sudo cscli collections install crowdsecurity/nginx
Ek olarak:
sudo cscli collections install crowdsecurity/nginx-probingsudo cscli collections install crowdsecurity/http-cve
Servisi yeniden başlatın:
sudo systemctl restart crowdsec
Apache Koruması
sudo cscli collections install crowdsecurity/apache2
Firewall Bouncer Kurulumu
CrowdSec saldırganı tespit eder ancak engelleme işlemi için bir Bouncer gereklidir.
Pardus üzerinde genellikle nftables kullanılmaktadır.
Bouncer yükleme:
sudo apt install crowdsec-firewall-bouncer-nftables -y
Servis durumunu kontrol edin:
sudo systemctl status crowdsec-firewall-bouncer
Başlat:
sudo systemctl enable --now crowdsec-firewall-bouncer
Bouncer Durumunu Kontrol Etme
sudo cscli bouncers list
Örnek:
─────────────────────────────────────────────Name IP Address Valid─────────────────────────────────────────────firewall-bouncer localhost ✔
Uyarıları (Alerts) Görüntüleme
Tespit edilen saldırıları görmek için:
sudo cscli alerts list
Detaylı görüntüleme:
sudo cscli alerts inspect <ID>
Örnek:
sudo cscli alerts inspect 12
Kararları (Decisions) Görüntüleme
Engellenmiş IP adreslerini görmek:
sudo cscli decisions list
Manuel IP Engelleme
Belirli bir IP'yi manuel olarak engellemek:
sudo cscli decisions add --ip 192.168.1.150
Belirli süre engellemek:
sudo cscli decisions add --ip 192.168.1.150 --duration 24h
Manuel Engeli Kaldırma
sudo cscli decisions delete --ip 192.168.1.150
Logları Gerçek Zamanlı İzleme
sudo journalctl -u crowdsec -f
veya
sudo tail -f /var/log/crowdsec.log
Senaryoları Görüntüleme
sudo cscli scenarios list
Örnek:
crowdsecurity/ssh-bfcrowdsecurity/http-probingcrowdsecurity/http-crawl-non_statics
Hub Güncelleme
Yeni saldırı imzalarını almak için:
sudo cscli hub update
Tüm bileşenleri yükseltmek:
sudo cscli hub upgrade
CrowdSec Konsoluna Kayıt
Merkezi yönetim için ücretsiz konsol kullanılabilir.
Kayıt anahtarı oluştur:
sudo cscli console enroll
Komut size bir URL verecektir.
Tarayıcıdan açarak sistemi kaydedebilirsiniz.
Yapılandırma Dosyaları
Önemli dosyalar:
| Dosya | Görevi |
|---|---|
/etc/crowdsec/config.yaml | Ana yapılandırma |
/etc/crowdsec/acquis.yaml | Log kaynakları |
/etc/crowdsec/parsers/ | Parser dosyaları |
/etc/crowdsec/scenarios/ | Senaryolar |
/var/log/crowdsec.log | Günlük dosyası |
Özel Log Kaynağı Ekleme
Örneğin özel bir uygulama logunu izlemek için:
sudo nano /etc/crowdsec/acquis.yaml
İçerik:
filenames:- /var/log/uygulama.loglabels:type: syslog
Değişiklikten sonra:
sudo systemctl restart crowdsec
Test Amaçlı SSH Brute Force Simülasyonu
Yalnızca kendi laboratuvar ortamınızda uygulayın.
Başka bir sistemden:
for i in {1..20}; dossh test@SUNUCU_IPdone
Bir süre sonra:
sudo cscli alerts list
çıktısında saldırı görülebilir.
Performans İpuçları
- Gereksiz koleksiyonları kaldırın.
- Düzenli olarak Hub güncellemesi yapın.
- Firewall Bouncer kullanın.
- Log döndürmeyi (logrotate) etkin tutun.
- Günlük dosyalarını düzenli inceleyin.
CrowdSec'in Avantajları
✅ Açık kaynaklıdır.
✅ Topluluk tabanlı tehdit istihbaratı sunar.
✅ Gerçek zamanlı koruma sağlar.
✅ SSH ve web saldırılarını algılar.
✅ Düşük kaynak tüketir.
✅ Modern Linux sunucularıyla uyumludur.
Sonuç
CrowdSec, Pardus Server sistemlerinde klasik Fail2Ban yaklaşımının ötesine geçen, topluluk destekli ve gerçek zamanlı koruma sağlayan güçlü bir güvenlik platformudur. Özellikle internete açık SSH, Nginx ve Apache servisleri kullanan sunucularda saldırı yüzeyini ciddi ölçüde azaltabilir.
Sunucu güvenliği söz konusu olduğunda yıllardır akla ilk gelen araçlardan biri Fail2Ban olmuştur. Ancak siber saldırıların karmaşıklığı arttıkça, savunma mekanizmalarımızın da evrilmesi gerekiyor. Bu noktada sahneye, kitle kaynaklı (crowdsourced) ve modern bir Tehdit Önleme Sistemi (IPS) olan CrowdSec çıkıyor.
CrowdSec Nedir ve Neden Kullanmalıyız?
CrowdSec, sunucu loglarını okuyarak kötü niyetli davranışları tespit eden ve bunları engelleyen açık kaynaklı bir güvenlik motorudur. En büyük avantajı "kolektif zeka" kullanmasıdır. Eğer dünyanın başka bir yerindeki bir CrowdSec kullanıcısı belirli bir IP adresinden saldırı alırsa, bu IP adresi merkezi veri tabanına raporlanır ve sizin sunucunuz da o IP'ye karşı anında bağışıklık kazanır.
Öne Çıkan Özellikleri:
Hafif ve Hızlı: Go diliyle yazıldığı için sistem kaynaklarını (CPU/RAM) minimum seviyede tüketir.
Modüler Mimari: Algılama (Agent) ve Engelleme (Bouncer) işlemleri birbirinden ayrılmıştır.
Geniş Entegrasyon: Nginx, SSH, Django, WordPress gibi birçok servis ile tam uyumlu çalışır.
Kurulum Öncesi Hazırlıklar
Bu laboratuvar senaryosu için gerekenler:
Temiz kurulumu yapılmış ve güncellenmiş bir Pardus Server (Debian tabanlı olduğu için Debian yönergeleri birebir uyumludur).
rootveyasudoyetkilerine sahip bir kullanıcı.
Öncelikle sunucumuzu güncelleyelim:
sudo apt update && sudo apt upgrade -y
Adım 1: CrowdSec Kurulumu
CrowdSec, paket yönetim sistemimize ekleyebileceğimiz resmi bir depo sunar. Debian tabanlı sistemler (Pardus) için otomatik kurulum betiğini indirip çalıştırıyoruz.
curl -s https://install.crowdsec.net | sudo sh
Depo eklendikten sonra CrowdSec temel motorunu (Agent) kuruyoruz:
sudo apt install crowdsec -y
Kurulum tamamlandığında CrowdSec, sisteminizde çalışan servisleri (SSH, Nginx, Systemd vb.) otomatik olarak algılayacak ve bu servislere uygun parser (ayrıştırıcı) ile senaryoları (scenario) indirecektir.
Servisin durumunu kontrol etmek için:
systemctl status crowdsec
Adım 2: Bouncer (Engelleyici) Kurulumu
CrowdSec tek başına sadece logları okur ve kötü niyetli IP'leri tespit eder. Bu IP'leri engellemek için "Bouncer" adı verilen eklentilere ihtiyacımız vardır. Sunucu düzeyinde bir engelleme yapmak için Güvenlik Duvarı (Firewall) bouncer'ını kuracağız.
Pardus üzerinde genellikle iptables veya nftables kullanıldığından, standart firewall bouncer paketini yüklüyoruz:
sudo apt install crowdsec-firewall-bouncer-iptables -y
Kurulumdan sonra bouncer otomatik olarak çalışmaya başlayacaktır. Bouncer'ın aktif olup olmadığını kontrol edelim:
sudo cscli bouncers list
Listede cs-firewall-bouncer ibaresini ve geçerli (valid) olarak işaretlendiğini görmelisiniz.
Adım 3: cscli Aracı ile Yönetim ve Analiz
CrowdSec'i yönetmek için kullanacağımız komut satırı aracı cscli'dir. Mavi Takım operasyonlarında log analizi ve metrik takibi için bu aracın temel komutlarına hakim olmak önemlidir.
1. Metrikleri İnceleme
Sisteminizin ne kadar log okuduğunu ve hangi senaryoların tetiklendiğini görmek için:
sudo cscli metrics
2. Kurulu Koleksiyonları (Collections) Görme
Koleksiyonlar; belirli bir servisi korumak için gereken parser ve senaryoların bir araya getirilmiş halidir.
sudo cscli collections list
Varsayılan olarak crowdsecurity/sshd veya crowdsecurity/linux gibi koleksiyonların kurulu olduğunu göreceksiniz.
3. Engellenen IP Adreslerini (Kararları) Listeleme
Şu ana kadar ağınıza sızmaya çalışıp CrowdSec tarafından engellenen (banlanan) IP adreslerini görmek için:
sudo cscli decisions list
Adım 4: Sistemi Test Etme (Kırmızı Takım / Mavi Takım Simülasyonu)
Sistemimizin çalıştığını doğrulamak için kontrollü bir test yapalım. Uyarı: Bu testi üretim sunucunuzdan farklı bir makineden veya laboratuvar ortamınızdaki bir saldırı makinesinden (Örneğin bir Kali Linux VM) yapın.
Saldırı makinesinden Pardus sunucunuza art arda yanlış SSH şifreleri deneyerek kaba kuvvet (Brute-Force) saldırısı simüle edin:
# Saldırı makinesinden çalıştırılacak komut (kullanıcı ve IP'yi kendinize göre değiştirin)for i in {1..10}; do ssh -o StrictHostKeyChecking=no sahte_kullanici@pardus_sunucu_ip; doneBirkaç denemeden sonra SSH bağlantınız aniden kesilecek ve yanıt vermemeye başlayacaktır.
Şimdi Pardus sunucunuza (farklı bir terminalden veya konsol üzerinden) dönün ve engellenen IP'leri kontrol edin:
sudo cscli decisions list
Listede saldırı yaptığınız IP adresini ve engellenme nedenini (crowdsecurity/ssh-bf - SSH Brute Force) görebilirsiniz.
Yanlışlıkla engellenen bir IP'yi kaldırmak için:
sudo cscli decisions delete -i ENGELLENEN_IP_ADRESI
Ekstra: Nginx veya Django Uygulamalarını Korumak
Eğer Pardus sunucunuz üzerinde Nginx ile yayın yaptığınız bir web projeniz varsa, CrowdSec'i web tabanlı saldırılara (L7 DDoS, SQL Injection) karşı da yapılandırabilirsiniz.
Bunun için ilgili koleksiyonu kurmanız yeterlidir:
sudo cscli collections install crowdsecurity/nginxsudo systemctl reload crowdsec
Genel Değerlendirme
CrowdSec, Pardus altyapısında barındırılan sistemler için modern, dinamik ve son derece etkili bir güvenlik katmanı sağlar. Topluluk odaklı yapısı sayesinde, sunucunuz henüz hiç saldırıya uğramamış olsa bile diğer kullanıcıların tecrübelerinden faydalanarak güvende kalır. Siber güvenlik laboratuvarlarınızda bu mimariyi öğrencilerinize uygulamalı olarak göstermek, güncel Mavi Takım stratejilerini kavramaları açısından büyük önem taşımaktadır.
Yorumlar