Ubuntu Üzerinde Config Server Firewall (CSF) Kurulumu ve Yapılandırması
Giriş: Sunucu Güvenliğinde CSF’nin Önemi
Günümüzün dijital dünyasında, sunucu güvenliği her zamankinden daha kritik bir öneme sahiptir. İnternet’e açık bir Ubuntu sunucusu, sürekli olarak çeşitli siber tehditlere, kötü niyetli saldırılara ve yetkisiz erişim denemelerine maruz kalmaktadır. Bu tehditlere karşı en temel ve etkili savunma mekanizmalarından biri, güçlü bir güvenlik duvarı (firewall) kullanmaktır. Config Server Firewall (CSF), özellikle Linux tabanlı sunucular için tasarlanmış, kapsamlı özelliklere sahip, gelişmiş bir güvenlik duvarı çözümüdür. CSF, sadece bir paket filtreleme aracı olmanın ötesine geçerek, sunucunuzu brute-force saldırılarından, port taramalarından, SYN flood gibi DoS saldırılarından koruyan ve şüpheli etkinlikleri izleyen bir dizi güvenlik özelliği sunar.
CSF’nin en dikkat çekici özelliklerinden biri, beraberinde gelen Login Failure Daemon (LFD) aracıdır. LFD, başarısız oturum açma denemelerini (SSH, FTP, cPanel vb.) sürekli olarak izler ve belirli bir eşiği aşan IP adreslerini otomatik olarak engeller. Bu, özellikle brute-force saldırılarına karşı son derece etkili bir koruma sağlar. Ayrıca, CSF, belirli ülke IP’lerini engelleme, şüpheli süreçleri izleme, dizin değişikliklerini kontrol etme ve detaylı e-posta uyarıları gönderme gibi gelişmiş yeteneklere de sahiptir. Bu makalede, Ubuntu işletim sistemi üzerinde CSF’nin nasıl kurulacağını, temel ve gelişmiş ayarlarının nasıl yapılandırılacağını ve günlük kullanımda karşılaşabileceğiniz durumları ele alacağız. Amacımız, sunucunuzun güvenliğini en üst düzeye çıkarmak için CSF’yi etkili bir şekilde kullanmanızı sağlamaktır.
Ön Koşullar: Başlamadan Önce Bilmeniz Gerekenler
CSF kurulumuna başlamadan önce, sunucunuzun belirli gereksinimleri karşıladığından ve bazı ön hazırlıkların yapıldığından emin olmanız önemlidir. Bu adımlar, kurulum sürecinin sorunsuz ilerlemesini sağlayacak ve olası çakışmaları önleyecektir.
Ubuntu İşletim Sistemi
Bu rehber, Ubuntu sunucuları için yazılmıştır. Genellikle güncel LTS (Uzun Süreli Destek) sürümleri (örneğin Ubuntu 20.04 LTS veya 22.04 LTS) önerilir. CSF, çoğu Linux dağıtımında çalışsa da, komutlar ve paket yöneticisi (apt) Ubuntu’ya özeldir.
Root veya Sudo Yetkileri
Kurulum ve yapılandırma işlemleri, sistem dosyalarında değişiklik yapmayı gerektirdiğinden, root kullanıcısı olarak oturum açmış olmanız veya sudo komutunu kullanma yetkisine sahip bir kullanıcı olmanız gerekmektedir. Güvenlik açısından sudo kullanılması genellikle daha iyi bir uygulamadır.
Temel Linux Komut Satırı Bilgisi
CSF’nin kurulumu ve yönetimi tamamen komut satırı üzerinden gerçekleşecektir. Temel Linux komutları (cd, ls, cp, mv, nano veya vi gibi metin düzenleyicileri) hakkında bilgi sahibi olmanız gerekmektedir.
Mevcut Güvenlik Duvarı Kontrolü (UFW)
Ubuntu sunucularında genellikle varsayılan olarak UFW (Uncomplicated Firewall) yüklü gelir. CSF, kendi güvenlik duvarı kurallarını yönettiği için, UFW ile çakışmaları önlemek adına UFW’yi devre dışı bırakmanız veya tamamen kaldırmanız önerilir.
UFW’nin durumunu kontrol etmek için:
sudo ufw status
Eğer UFW aktifse, devre dışı bırakmak için:
sudo ufw disable
UFW’yi tamamen kaldırmak isterseniz (isteğe bağlı):
sudo apt purge ufw
Bu adımı atlamanız durumunda, CSF’nin kuralları UFW tarafından engellenebilir veya beklenmedik davranışlar sergilenebilir.
İnternet Bağlantısı
CSF paketlerini indirmek için sunucunuzun aktif bir internet bağlantısına sahip olması gerekmektedir.
Bu ön koşulları sağladıktan sonra, CSF kurulumuna güvenle geçebilirsiniz.
CSF Kurulumu: Adım Adım Rehber
CSF’nin Ubuntu sunucunuza kurulumu oldukça basittir ve birkaç komutla tamamlanabilir. İşte adım adım kurulum süreci:
Sistem Güncellemesi ve Gerekli Bağımlılıkların Kurulumu
Kuruluma başlamadan önce, sisteminizin güncel olduğundan ve CSF’nin ihtiyaç duyduğu temel bağımlılıkların yüklü olduğundan emin olalım.
1. Sistemi Güncelleme:
sudo apt update && sudo apt upgrade -y
Bu komut, paket listelerini günceller ve mevcut tüm paketleri en son sürümlerine yükseltir.
2. Gerekli Bağımlılıkları Kurma:
CSF, Perl tabanlı bir uygulama olduğu için bazı Perl modüllerine ve diğer yardımcı programlara ihtiyaç duyar.
sudo apt install -y wget perl libwww-perl liblwp-protocol-https-perl unzip
* wget: Dosyaları internetten indirmek için kullanılır.
* perl: CSF’nin çalıştığı betik dilidir.
* libwww-perl ve liblwp-protocol-https-perl: Perl’in web istekleri yapmasını sağlayan kütüphanelerdir.
* unzip: Sıkıştırılmış dosyaları açmak için kullanılır (tar.gz için tar yeterli olsa da, genel bir bağımlılık olarak eklemek faydalıdır).
CSF’nin e-posta bildirimleri gönderebilmesi için bir posta aktarım aracısı (MTA) yüklü olması gerekir. Genellikle sendmail veya postfix kullanılır.
sudo apt install -y sendmail
# veya
# sudo apt install -y postfix
Eğer sunucunuz bir mail sunucusu değilse, sendmail kurulumu genellikle daha basittir ve sadece CSF’nin bildirimleri için yeterlidir. Kurulum sırasında bazı yapılandırma seçenekleri sorulabilir; varsayılanları kabul edebilirsiniz.
CSF Paketini İndirme ve Kurma
Şimdi CSF’nin kendisini indirip kurma zamanı.
1. Geçici Dizin Oluşturma ve CSF’yi İndirme:
Genellikle /usr/local/src dizini, kaynak koddan kurulan yazılımlar için kullanılır.
cd /usr/local/src/
sudo wget https://download.configserver.com/csf.tgz
Bu komut, CSF’nin en son sürümünü belirtilen adresten indirir.
2. CSF Paketini Çıkartma:
İndirdiğiniz csf.tgz dosyasını açın.
sudo tar -xzf csf.tgz
Bu, csf adında yeni bir dizin oluşturacaktır.
3. CSF Dizinine Girme:
cd csf
4. Kurulum Betiğini Çalıştırma:
Şimdi CSF’yi sisteminize kuracak olan betiği çalıştırın.
sudo sh install.sh
Bu betik, CSF dosyalarını uygun yerlere kopyalayacak, gerekli izinleri ayarlayacak ve CSF ile LFD servislerini başlatacaktır. Kurulum tamamlandığında, size bazı bilgiler verecektir, örneğin yapılandırma dosyasının konumu (/etc/csf/csf.conf).
Kurulumu Doğrulama ve Test Etme
Kurulumun başarılı olup olmadığını kontrol etmek için CSF’nin kendi test betiğini kullanabilirsiniz.
sudo perl /usr/local/csf/bin/csftest.pl
Bu komut, sunucunuzun CSF’nin tüm gereksinimlerini karşılayıp karşılamadığını kontrol eder. Eğer “RESULT: csf and lfd have been installed and configured.” gibi bir çıktı alırsanız ve herhangi bir büyük hata görmezseniz, kurulum başarılı demektir. Özellikle “TESTING” modunun açık olduğuna dair bir uyarı alabilirsiniz, bu normaldir ve bir sonraki adımda kapatılacaktır.
Kurulumdan sonra, CSF ve LFD servislerinin çalıştığından emin olmak için durumlarını kontrol edebilirsiniz:
sudo systemctl status csf
sudo systemctl status lfd
Her ikisi de active (exited) veya active (running) olarak görünmelidir. exited olması normaldir çünkü CSF, kuralları uyguladıktan sonra çıkış yapar ve LFD ise sürekli çalışır.
Bu adımlarla CSF’yi Ubuntu sunucunuza başarıyla kurmuş olursunuz. Şimdi sıra, onu sunucunuzun ihtiyaçlarına göre yapılandırmaya geldi.
Temel Yapılandırma: Güvenlik Duvarınızı Kişiselleştirme
CSF kurulduktan sonra, varsayılan ayarları genellikle çok kısıtlayıcıdır veya sunucunuzun özel ihtiyaçlarını karşılamayabilir. Bu nedenle, csf.conf dosyasını düzenleyerek güvenlik duvarınızı yapılandırmanız gerekmektedir.
csf.conf Dosyasına Erişim
CSF’nin ana yapılandırma dosyası /etc/csf/csf.conf konumundadır. Bu dosyayı bir metin düzenleyici ile açarak düzenleyebilirsiniz. nano kullanmak genellikle en kolay yoldur:
sudo nano /etc/csf/csf.conf
Bu dosya içinde birçok ayar bulunmaktadır. Önemli olanları adım adım gözden geçirelim.
TESTING Modunu Kapatma
Kurulumdan sonra CSF varsayılan olarak “TESTING” modunda çalışır. Bu mod, yanlış yapılandırma sonucu kendinizi sunucudan kilitlemenizi önlemek için tasarlanmıştır. Tüm ayarlarınızı yaptıktan sonra bu modu kapatmanız gerekir.
Dosya içinde aşağıdaki satırı bulun:
TESTING = "1"
Ve “0” olarak değiştirin:
TESTING = "0"
Bu değişikliği yapmadan önce, SSH bağlantınızın kesilmesi durumunda sunucuya erişim sağlayabileceğiniz başka bir yöntem (örneğin konsol erişimi veya farklı bir IP’den SSH) olduğundan emin olun.
Gelen (Inbound) ve Giden (Outbound) Portları Yapılandırma
Bu, CSF yapılandırmasının en kritik bölümüdür. Sunucunuzun hangi servislere erişime izin vereceğini ve hangi portlar üzerinden iletişim kuracağını belirlersiniz. Yalnızca kesinlikle gerekli olan portları açmaya özen gösterin.
* TCP Gelen Portlar (TCP_IN): İnternet’ten sunucunuza gelen bağlantılar için izin verilen TCP portları.
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,3306"
Yaygın kullanılan portlar ve anlamları:
* 20, 21: FTP (Dosya Aktarım Protokolü)
* 22: SSH (Güvenli Kabuk – Sunucuya uzaktan erişim)
* 25: SMTP (Basit Posta Aktarım Protokolü – E-posta gönderme)
* 53: DNS (Alan Adı Sistemi – Alan adı çözümlemesi)
* 80: HTTP (Web sunucusu – Şifresiz web trafiği)
* 110: POP3 (Postane Protokolü sürüm 3 – E-posta alma)
* 143: IMAP (İnternet Mesaj Erişim Protokolü – E-posta alma)
* 443: HTTPS (Güvenli HTTP – Şifreli web trafiği)
* 465: SMTPS (Güvenli SMTP)
* 587: Submission (SMTP mesaj gönderme)
* 993: IMAPS (Güvenli IMAP)
* 995: POP3S (Güvenli POP3)
* 3306: MySQL/MariaDB (Veritabanı sunucusu)
* 5432: PostgreSQL (Veritabanı sunucusu)
* 8080: Alternatif HTTP portu (genellikle Tomcat, Jenkins vb.)
Önemli: Eğer sunucunuzda sadece bir web sitesi barındırıyorsanız ve e-posta sunucusu olarak kullanmıyorsanız, e-posta ile ilgili portları (25, 110, 143, 465, 587, 993, 995) açmanıza gerek yoktur. SSH için varsayılan port olan 22’yi değiştirmeyi düşünün, bu yaygın bir güvenlik uygulamasıdır. Eğer değiştirirseniz, TCP_IN listesinde de yeni port numarasını belirtmeyi unutmayın.
* TCP Giden Portlar (TCP_OUT): Sunucunuzdan internete giden bağlantılar için izin verilen TCP portları.
TCP_OUT = "20,21,22,25,53,80,110,113,443,465,587,993,995,3306"
Bu ayarlar genellikle TCP_IN ile benzer olabilir, ancak sunucunuzun dışarıya hangi servislere bağlanması gerektiğini düşünmelisiniz. Örneğin, bir veritabanı sunucusuna veya bir API’ye bağlanması gerekiyorsa o portları açmalısınız.
* UDP Gelen Portlar (UDP_IN): UDP trafiği için gelen portlar.
UDP_IN = "20,21,53"
* 53: DNS (Alan Adı Sistemi) – Hem TCP hem de UDP kullanır.
* 20, 21: FTP (Pasif mod için bazen UDP kullanılır)
* UDP Giden Portlar (UDP_OUT): UDP trafiği için giden portlar.
UDP_OUT = "20,21,53,113,123"
* 123: NTP (Ağ Zaman Protokolü – Zaman senkronizasyonu)
LFD (Login Failure Daemon) Yapılandırması
LFD, CSF’nin en güçlü özelliklerinden biridir ve başarısız oturum açma denemelerini izleyerek brute-force saldırılarını engeller.
* SSH Brute-Force Koruması:
LF_SSHD = "5"
LF_SSHD_PERM = "1"
LF_SSHD: Belirli bir süre içinde (varsayılan olarak 1 saat) kaç başarısız SSH denemesinden sonra IP’nin engelleneceğini belirler. 5 genellikle iyi bir başlangıç değeridir.
LF_SSHD_PERM: Eğer 1 olarak ayarlanırsa, LFD tarafından engellenen IP’ler kalıcı olarak kara listeye alınır. 0 ise geçici engelleme yapar. Kalıcı engelleme genellikle daha güvenlidir.
* FTP Brute-Force Koruması:
LF_FTPD = "5"
LF_FTPD_PERM = "1"
Benzer şekilde FTP için başarısız deneme sayısı ve kalıcı engelleme ayarı.
* E-posta Protokolleri (POP3, IMAP, SMTP AUTH) Koruması:
LF_POP3D = "5"
LF_IMAPD = "5"
LF_SMTPAUTH = "5"
Bu ayarlar, ilgili e-posta servisleri için başarısız oturum açma denemelerini izler.
* Genel LFD Ayarları:
LF_TRIGGER = "10"
LF_INTERVAL = "3600"
LF_TRIGGER: Belirli bir süre içinde (LF_INTERVAL) toplamda kaç başarısız oturum açma denemesinden sonra IP’nin engelleneceğini belirler.
LF_INTERVAL: LFD’nin başarısız denemeleri ne kadar süreyle izleyeceğini saniye cinsinden belirtir (3600 saniye = 1 saat).
* E-posta Uyarıları:
LFD, bir IP engellediğinde size e-posta ile bildirim gönderebilir.
LF_ALERT_TO = "senin@emailadresin.com"
LF_ALERT_FROM = "csf@sunucuadiniz.com"
LF_ALERT_TO: Uyarıların gönderileceği e-posta adresi.
LF_ALERT_FROM: Uyarıların gönderileceği e-posta adresi (sunucu adı veya başka bir adres olabilir).
Diğer Önemli Ayarlar
* RESTRICT_SYSLOG: Syslog erişimini kısıtlar. Güvenlik için 1 olarak ayarlanması önerilir.
RESTRICT_SYSLOG = "1"
* PS_LIMIT: Sunucunuzda çalışan kullanıcı süreçlerini izler ve belirli bir limitin üzerinde kaynak tüketen süreçleri sonlandırabilir. Bu, kötü amaçlı yazılımların veya hatalı uygulamaların sunucuyu yavaşlatmasını önleyebilir.
PS_LIMIT = "20"
Bu değeri sunucunuzun kullanımına göre ayarlayın.
* PORTFLOOD: Belirli bir IP’den belirli bir porta gelen bağlantı sayısını sınırlar. Bu, port taraması veya DoS saldırılarına karşı koruma sağlar.
PORTFLOOD = "22;5;300,80;20;5"
Format: PORT;BAĞLANTI_SAYISI;SÜRE_SANİYE. Örneğin, 22;5;300 SSH portuna 300 saniye içinde 5’ten fazla bağlantı denemesi yapan IP’leri engeller.
* SYNFLOOD: SYN flood saldırılarına karşı koruma sağlar.
SYNFLOOD = "1"
SYNFLOOD_RATE = "100/s"
SYNFLOOD_BURST = "20"
Bu değerler, saldırının şiddetine göre ayarlanmalıdır.
* CC_DENY (Ülke Engelleme): Belirli ülke IP’lerinden gelen tüm bağlantıları engeller.
CC_DENY = ""
Örneğin, CC_DENY = "CN,RU,KP" Çin, Rusya ve Kuzey Kore’den gelen tüm bağlantıları engeller. Ülke kodlarını ISO 3166-1 alpha-2 formatında bulabilirsiniz. Bu, hedefli saldırıları azaltmak için etkili olabilir, ancak yasal kullanıcıları da engelleyebilir.
* SMTP_BLOCK: Sunucunuz bir mail sunucusu değilse, dışarıya giden SMTP trafiğini engellemek, sunucunuzun spam göndermek için kullanılmasını önleyebilir.
SMTP_BLOCK = "1"
Eğer mail sunucusuysanız, bu ayarı 0 olarak bırakın.
Değişiklikleri Kaydetme ve CSF’yi Yeniden Başlatma
csf.conf dosyasında yaptığınız tüm değişiklikleri kaydettikten sonra (nano için CTRL+O, Enter, sonra CTRL+X), CSF ve LFD servislerini yeniden başlatmanız gerekir ki yeni kurallar uygulansın.
sudo csf -r
Bu komut, hem CSF hem de LFD’yi yeniden başlatır ve yeni yapılandırmayı devreye sokar. Eğer TESTING = "1" durumundayken csf -r komutunu çalıştırırsanız, CSF otomatik olarak kendini devre dışı bırakır ve 5 dakika sonra yeniden aktif hale gelir. Bu, yanlışlıkla kendinizi kilitlemenize karşı bir önlemdir. TESTING = "0" olarak ayarladıktan sonra bu özellik devre dışı kalır.
Gelişmiş Yapılandırma ve Kullanım: CSF’nin Gücünü Keşfedin
CSF, temel port ve LFD ayarlarının ötesinde, sunucunuzun güvenliğini daha da artırmak için birçok gelişmiş özellik sunar. Bu bölümde, bu özelliklerin bazılarına ve CSF’yi günlük olarak nasıl yöneteceğinize odaklanacağız.
IP Adresi Yönetimi: İzin Verme ve Engelleme
CSF, belirli IP adreslerini manuel olarak izin verilenler veya engellenenler listesine eklemenizi sağlar. Bu, belirli bir IP’den gelen saldırıları durdurmak veya belirli bir kullanıcının her zaman erişimini sağlamak için kullanışlıdır.
* Bir IP Adresine İzin Verme (Whitelist):
sudo csf -a 192.168.1.100 "Kullanıcı Adı"
Bu komut, 192.168.1.100 IP adresini izin verilenler listesine ekler. Açıklama ("Kullanıcı Adı") isteğe bağlıdır ancak yönetimi kolaylaştırır. İzin verilen IP’ler /etc/csf/csf.allow dosyasında saklanır.
* Bir IP Adresini Engelleme (Blacklist):
sudo csf -d 192.168.1.101 "Saldırgan IP"
Bu komut, 192.168.1.101 IP adresini engellenenler listesine ekler. Engellenen IP’ler /etc/csf/csf.deny dosyasında saklanır.
* İzin Verilen IP’yi Kaldırma:
sudo csf -ar 192.168.1.100
* Engellenen IP’yi Kaldırma:
sudo csf -dr 192.168.1.101
* Bir IP Adresinin Durumunu Kontrol Etme:
sudo csf -g 192.168.1.101
Bu komut, belirtilen IP adresinin CSF kuralları tarafından nasıl ele alındığını (izinli mi, engellenmiş mi, geçici olarak engellenmiş mi) gösterir.
* Geçici Engelleme:
Belirli bir IP adresini belirli bir süre için engellemek isteyebilirsiniz.
sudo csf -t 192.168.1.102 3600 "Geçici Engelleme"
Bu komut, 192.168.1.102 IP adresini 3600 saniye (1 saat) boyunca engeller. Süre dolduğunda engelleme otomatik olarak kalkar.
* Tüm Geçici Engellemeleri Kaldırma:
sudo csf -tf
İşlem Takibi (Process Tracking)
CSF, sunucunuzda çalışan süreçleri izleyebilir ve belirli kullanıcıların veya belirli kaynakları aşan süreçleri sonlandırabilir. Bu, kötü amaçlı yazılımların veya hatalı yapılandırılmış uygulamaların sunucuyu ele geçirmesini veya kaynakları sömürmesini önler.
* csf.conf dosyasında PT_USER ve PT_LIMIT ayarlarını kullanın:
PT_USER = "www-data,nobody"
PT_LIMIT = "20"
PT_USER: İzlenecek kullanıcı adlarını belirtir.
PT_LIMIT: Bu kullanıcıların çalıştırabileceği maksimum süreç sayısını veya kaynak kullanımını belirler. Ayrıntılı yapılandırma için csf.conf dosyasındaki ilgili yorumları inceleyin.
Dizin İzleme (DIRWATCH)
DIRWATCH özelliği, belirli dizinlerdeki değişiklikleri izler ve şüpheli bir değişiklik algılandığında uyarı gönderir. Bu, web sitenizin veya kritik sistem dosyalarınızın yetkisiz değişikliklere karşı korunmasına yardımcı olur.
* csf.conf dosyasında DIRWATCH ayarını etkinleştirin ve izlenecek dizinleri belirtin:
DIRWATCH = "1"
DIRWATCH_INTERVAL = "300"
DIRWATCH_DELAY = "10"
DIRWATCH_OPTS = "3"
DIRWATCH_EXCLUDE = "/tmp,/var/tmp"
DIRWATCH_DIR = "/var/www/html,/etc/passwd" gibi satırlar ekleyerek izlenecek dizinleri belirleyebilirsiniz.
Port Knocking
Port knocking, sunucunuza güvenli bir şekilde erişmek için ek bir güvenlik katmanı sağlar. Belirli bir sırayla belirli portlara yapılan bağlantı denemeleri, gizli bir portun (örneğin SSH portu) geçici olarak açılmasını tetikler.
* csf.conf dosyasında PORTKNOCKING bölümünü bulun.
PORTKNOCKING = "22;TCP;1000,2000,3000"
Bu örnekte, önce 1000, sonra 2000, sonra 3000 numaralı TCP portlarına bağlanıldığında (belirli bir süre içinde), 22 numaralı SSH portu açılacaktır.
Country Code Blocking (Ülke Kodu Engelleme)
csf.conf dosyasındaki CC_DENY ayarı ile belirli ülkelerden gelen tüm bağlantıları engelleyebilirsiniz. Bu, özellikle belirli coğrafi bölgelerden gelen yoğun saldırılarla karşılaşıldığında faydalıdır.
CC_DENY = "CN,RU,IR"
Bu ayar, Çin, Rusya ve İran’dan gelen tüm bağlantıları engeller. Ülke kodlarını virgülle ayırarak ekleyebilirsiniz.
CSF’yi Yönetme Komutları
CSF’yi etkin bir şekilde yönetmek için kullanabileceğiniz temel komutlar:
* CSF ve LFD’yi Yeniden Başlatma (Kuralları Uygulama):
sudo csf -r
Bu komut, csf.conf ve diğer yapılandırma dosyalarındaki tüm değişiklikleri uygular.
* CSF’nin Durumunu Gösterme:
sudo csf -s
CSF’nin aktif olup olmadığını, IPtables kurallarını ve diğer bilgileri gösterir.
* IPtables Kurallarını Temizleme (Flush):
sudo csf -f
Tüm CSF ve LFD kurallarını sıfırlar. Bu genellikle sorun giderme veya yeni bir başlangıç yapmak için kullanılır.
* CSF’yi Devre Dışı Bırakma:
sudo csf -x
CSF’yi ve LFD’yi durdurur ve tüm güvenlik duvarı kurallarını devre dışı bırakır. Bu, özellikle kendinizi kilitlediğinizde veya sunucunuzda ağ sorunları yaşadığınızda faydalıdır.
* CSF’yi Etkinleştirme:
sudo csf -e
Daha önce devre dışı bırakılan CSF’yi yeniden başlatır.
* CSF’yi Güncelleme:
sudo csf -u
CSF yazılımını en son sürüme günceller. Güvenlik yamaları ve yeni özellikler için düzenli olarak yapılması önerilir.
* Logları Görüntüleme:
CSF ve LFD’nin faaliyetlerini /var/log/csf.log ve /var/log/lfd.log dosyalarında bulabilirsiniz.
sudo tail -f /var/log/lfd.log
sudo tail -f /var/log/csf.log
Bu komutlar, log dosyalarının gerçek zamanlı olarak güncellenmesini izlemenizi sağlar.
* CSF Yardım Menüsü:
sudo csf --help
Tüm mevcut komutları ve seçenekleri gösterir.
Bu gelişmiş özellikler ve yönetim komutları, CSF’yi sunucunuzun özel güvenlik ihtiyaçlarına göre uyarlamanıza ve onu etkin bir şekilde yönetmenize olanak tanır.
Sorun Giderme ve En İyi Uygulamalar
CSF güçlü bir araç olsa da, yanlış yapılandırma veya beklenmedik durumlar sorunlara yol açabilir. İşte karşılaşabileceğiniz bazı yaygın sorunlar ve en iyi uygulamalar:
Kendinizi Sunucudan Kilitleme
Bu, güvenlik duvarı yapılandırmasında yapılan en yaygın hatadır. Özellikle TESTING = "0" olarak ayarladıktan sonra yanlış bir TCP_IN ayarı sizi SSH üzerinden sunucuya erişmekten alıkoyabilir.
* Çözüm:
* Konsol Erişimi: Eğer bir bulut sunucu kullanıyorsanız, sağlayıcınızın paneli üzerinden konsol erişimi (VNC veya Web Konsolu) kullanarak sunucuya doğrudan bağlanabilirsiniz. Bu, ağ ayarlarından bağımsız olarak sunucuya erişim sağlar.
* CSF’yi Devre Dışı Bırakma: Konsol üzerinden bağlanarak sudo csf -x komutunu çalıştırın. Bu, CSF’yi devre dışı bırakır ve tüm kuralları kaldırır. Ardından csf.conf dosyasını düzeltip tekrar etkinleştirebilirsiniz.
* Whitelisted IP Kullanma: Eğer beyaz listeye eklenmiş (whitelist) farklı bir IP adresiniz varsa, o IP’den bağlanmayı deneyebilirsiniz.
* TESTING Modunun Önemi: Bu yüzden TESTING = "1" modunu kapatmadan önce tüm ayarlarınızı dikkatlice kontrol etmeli ve kendinizi kilitlemeyecek bir yönteminiz olduğundan emin olmalısınız.
Bağlantı Sorunları
Belirli bir servise (örneğin web sitesi veya veritabanı) erişemiyorsanız, CSF’nin o portu engelliyor olması muhtemeldir.
* Çözüm:
* csf.conf dosyasındaki TCP_IN ve UDP_IN ayarlarını kontrol edin. İlgili portun açık olduğundan emin olun.
* sudo csf -g komutuyla kendi IP adresinizin CSF tarafından engellenip engellenmediğini kontrol edin.
* Sunucu üzerindeki uygulama loglarını kontrol edin. Uygulama, bağlantı sorunları hakkında bilgi verebilir.
* sudo csf -f komutuyla kuralları sıfırlayıp tekrar sudo csf -r ile başlatarak geçici bir çözüm deneyebilirsiniz.
Performans Sorunları
Aşırı kural sayısı veya çok sıkı LFD ayarları, sunucunuzun performansını etkileyebilir.
* Çözüm:
* csf.deny dosyasındaki IP sayısını düzenli olarak kontrol edin. Çok fazla engellenen IP, IPtables üzerinde yük oluşturabilir. Gereksiz veya eski engellemeleri kaldırın.
* PS_LIMIT gibi süreç izleme ayarlarını dikkatli yapın. Çok düşük limitler, meşru süreçlerin sonlandırılmasına yol açabilir.
* PORTFLOOD ve SYNFLOOD ayarlarını sunucunuzun trafiğine göre optimize edin. Agresif ayarlar, meşru trafiği de engelleyebilir.
En İyi Uygulamalar
1. Yalnızca Gerekli Portları Açın: “Minimum ayrıcalık” ilkesini uygulayın. Sunucunuzda çalışmayan servislerin portlarını açmayın.
2. SSH Portunu Değiştirin: Varsayılan SSH portu olan 22’yi bilinen bir başka porta (örneğin 2222) değiştirmek, otomatik brute-force saldırılarını azaltır. Bu değişikliği hem SSH yapılandırma dosyasında (/etc/ssh/sshd_config) hem de csf.conf dosyasındaki TCP_IN listesinde yapmayı unutmayın.
3. Güçlü Parolalar Kullanın: CSF sizi brute-force saldırılarından korur, ancak güçlü ve benzersiz parolalar kullanmak her zaman ilk savunma hattınız olmalıdır.
4. Düzenli Güncellemeler: CSF’yi ve Ubuntu sisteminizi düzenli olarak güncelleyin.
sudo csf -u
sudo apt update && sudo apt upgrade -y
5. Logları İzleyin: /var/log/lfd.log ve /var/log/csf.log dosyalarını düzenli olarak kontrol ederek şüpheli etkinlikleri veya engellemeleri takip edin.
6. Yedekleme: /etc/csf dizinindeki yapılandırma dosyalarınızı düzenli olarak yedekleyin. Bir sorun durumunda kolayca geri dönebilirsiniz.
sudo cp -r /etc/csf /root/csf_backup_$(date +%Y%m%d)
7. Beyaz Liste (Whitelist) Kullanımı: Güvenilir IP adreslerini (örneğin kendi ofis IP’niz) beyaz listeye ekleyerek, LFD’nin sizi yanlışlıkla engellemesini önleyebilirsiniz. Ancak, yalnızca kesinlikle güvendiğiniz IP’leri ekleyin.
8. E-posta Uyarılarını Yapılandırın: LF_ALERT_TO ayarını doğru bir e-posta adresiyle yapılandırarak güvenlik olaylarından anında haberdar olun.
CSF’yi Kaldırma
Eğer CSF’yi sunucunuzdan kaldırmak isterseniz, aşağıdaki adımları izleyebilirsiniz.
1. CSF Dizinine Gitme:
cd /etc/csf
2. Kaldırma Betiğini Çalıştırma:
sudo sh uninstall.sh
Bu betik, CSF ve LFD servislerini durduracak, tüm dosyalarını kaldıracak ve IPtables kurallarını temizleyecektir.
3. Kalan Bağımlılıkları Kaldırma (İsteğe Bağlı):
CSF ile birlikte kurduğunuz sendmail, perl modülleri gibi bağımlılıkları kaldırmak isteyebilirsiniz.
sudo apt purge sendmail libwww-perl liblwp-protocol-https-perl -y
sudo apt autoremove -y
4. UFW’yi Yeniden Etkinleştirme (İsteğe Bağlı):
Eğer CSF’yi kaldırdıktan sonra başka bir güvenlik duvarı kullanmak isterseniz (örneğin UFW), onu yeniden etkinleştirebilirsiniz.
sudo ufw enable
UFW’yi etkinleştirmeden önce kurallarını yapılandırmayı unutmayın.
Sonuç
Config Server Firewall (CSF), Ubuntu sunucularınız için kapsamlı ve güçlü bir güvenlik duvarı çözümüdür. Bu makalede, CSF’nin kurulumundan başlayarak, temel ve gelişmiş yapılandırma seçeneklerine, IP yönetimi, işlem takibi, dizin izleme gibi özelliklerine ve son olarak sorun giderme ipuçları ile en iyi uygulamalara kadar geniş bir yelpazeyi ele aldık.
CSF’nin sunduğu LFD (Login Failure Daemon) gibi özellikler, sunucunuzu brute-force saldırılarından ve diğer yaygın tehditlerden korumak için hayati öneme sahiptir. Doğru yapılandırıldığında, CSF sunucunuzun güvenliğini önemli ölçüde artırabilir. Ancak, unutulmamalıdır ki hiçbir güvenlik çözümü tek başına yeterli değildir. CSF’yi güçlü parolalar, düzenli sistem güncellemeleri, güvenli uygulama yapılandırmaları ve sürekli izleme gibi diğer güvenlik önlemleriyle birleştirmek, sunucunuz için en sağlam savunmayı oluşturacaktır.
Güvenlik duvarı yapılandırması hassas bir konudur ve yanlış ayarlar sunucuya erişimi tamamen engelleyebilir. Bu nedenle, her zaman dikkatli olun, değişiklikleri test edin ve kendinizi kilitlemeye karşı önlemlerinizi (örneğin konsol erişimi) alın. Bu rehberin, Ubuntu sunucularınızda CSF’yi etkin bir şekilde kurmanıza ve yapılandırmanıza yardımcı olacağını umuyoruz. Güvenli sunucular dileriz!