15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij
23.10.2024

Co to jest CSF (ConfigServer Security and Firewall)? Kompletny przewodnik techniczny

CSF, czyli ConfigServer Security & Firewall, to zapora sieciowa z inspekcją stanową pakietów (SPI), demon wykrywania błędów logowania oraz pakiet zabezpieczeń dla serwerów Linux. Działa jako rozbudowany frontend dla iptables (i nftables w nowszych jądrach), przekształcając złożone zarządzanie regułami w ustrukturyzowaną warstwę konfiguracyjną, jednocześnie dodając aktywne wykrywanie zagrożeń poprzez towarzyszący demon LFD (Login Failure Daemon).

Dla każdego produkcyjnego serwera Linux — niezależnie od tego, czy działa na hostingu współdzielonym, VPS, czy w środowisku dedykowanym bare-metal — CSF zapewnia wielowarstwową ochronę perymetryczną: filtrowanie ruchu przychodzącego/wychodzącego, analizę logów w czasie rzeczywistym, ochronę przed atakami brute-force, wykrywanie skanowania portów oraz kontrolę dostępu na poziomie kraju, zarządzaną przez CLI lub interfejs webowy zintegrowany z cPanel, DirectAdmin lub Webmin.

Jak działa CSF od środka

CSF nie zastępuje iptables ani nftables — zarządza nimi. Gdy definiujesz reguły w /etc/csf/csf.conf lub manipulujesz listami IP, CSF tłumaczy te dyrektywy na reguły netfilter na poziomie jądra i stosuje je atomowo.

Architektura składa się z dwóch głównych komponentów działających równolegle:

  • csf — silnik reguł zapory, który odczytuje pliki konfiguracyjne i wypełnia łańcuchy iptables/ip6tables.
  • lfd — trwały demon, który na bieżąco śledzi systemowe pliki logów, ocenia zdarzenia uwierzytelniania względem konfigurowalnych progów i instruuje csf, aby dynamicznie blokował lub odblokowywał adresy IP.

Podczas uruchamiania CSF usuwa istniejące łańcuchy i odbudowuje je od podstaw na podstawie swojej konfiguracji. To podejście „czystej tablicy” zapobiega gromadzeniu reguł i zapewnia, że stan zapory jest zawsze deterministyczny i możliwy do audytu.

Tryby działania CSF

CSF działa w jednym z dwóch podstawowych trybów ruchu:

Tryb zezwolenia (domyślny dla większości wdrożeń): Cały ruch przychodzący i wychodzący jest domyślnie blokowany. Dozwolone są tylko porty jawnie wymienione w dyrektywach TCP_IN, TCP_OUT, UDP_IN i UDP_OUT. Jest to zalecana konfiguracja produkcyjna.

Tryb testowy (TESTING = "1"): CSF ładuje reguły, ale LFD nie egzekwuje blokad. Zapobiega to zablokowaniu dostępu podczas wstępnej konfiguracji. Zawsze wyłącz tryb testowy przed uruchomieniem produkcyjnym:

# In /etc/csf/csf.conf, set:
TESTING = "0"
# Then restart CSF:
csf -r

Omówienie kluczowych funkcji CSF

Silnik reguł zapory

CSF zarządza czterema głównymi listami portów w csf.conf:

    TCP_IN / UDP_IN — porty otwarte dla połączeń przychodzących
    TCP_OUT / UDP_OUT — porty dozwolone dla połączeń wychodzących
    
    Minimalna konfiguracja serwera webowego może wyglądać następująco:
    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 = "20,21,22,25,53,80,110,113,443,587,993,995"
    UDP_IN = "20,21,53"
    UDP_OUT = "20,21,53,113,123"
    Poza zarządzaniem portami CSF obsługuje reguły oparte na CIDR, umożliwiając zezwalanie lub blokowanie całych zakresów sieciowych. Reguły są przechowywane w płaskich plikach dla łatwej kontroli wersji:
    
    
    
    
    Plik
    Przeznaczenie
    
    
    
    
    /etc/csf/csf.allow
    Trwale umieszczone na białej liście adresy IP lub CIDR
    
    
    /etc/csf/csf.deny
    Trwale zablokowane adresy IP lub CIDR
    
    
    /etc/csf/csf.ignore
    Adresy IP, których LFD nigdy nie zablokuje automatycznie
    
    
    /etc/csf/csf.dyndns
    Dynamiczne nazwy hostów DNS do automatycznego rozwiązywania i zezwalania
    
    
    
    
    Demon wykrywania błędów logowania (LFD)
    LFD jest aktywną warstwą inteligencji CSF. Monitoruje pliki logów — w tym /var/log/secure, /var/log/maillog, /var/log/exim_mainlog i inne — oraz zlicza błędy uwierzytelniania na źródłowy adres IP w konfigurowalnym oknie czasowym.
    Kluczowe dyrektywy konfiguracyjne LFD:
    
    LF_TRIGGER — liczba błędów przed wydaniem blokady
    LF_INTERVAL — kroczące okno czasowe (w sekundach) do zliczania błędów
    LF_DURATION — jak długo trwa tymczasowa blokada (0 = trwała)
    LF_SSH, LF_FTPD, LF_SMTPAUTH, LF_POP3D, LF_IMAPD — progi błędów dla poszczególnych usług
    
    Praktyczny przykład zabezpieczenia: ustaw LF_SSH = "5" z LF_INTERVAL = "300", aby zablokować każdy adres IP, który 5 razy nie powiedzie się przy uwierzytelnianiu SSH w ciągu 5 minut. Ta jedna dyrektywa eliminuje zdecydowaną większość zautomatyzowanych ataków credential-stuffing wymierzonych w port 22.
    Ważny przypadek brzegowy: Jeśli Twój system monitorowania lub agent kopii zapasowych uwierzytelnia się z dynamicznego adresu IP, w końcu wyzwoli LFD. Zawsze dodaj te źródłowe adresy IP do /etc/csf/csf.ignore przed zaostrzeniem progów.
    Wykrywanie włamań i śledzenie procesów
    Poza monitorowaniem logowań LFD wykonuje kilka funkcji wykrywania włamań opartych na hoście:
    
    PT_LOAD — monitoruje obciążenie CPU i wysyła alerty lub blokuje, jeśli proces przekroczy zdefiniowane progi; przydatne do wykrywania cryptominingu lub niekontrolowanych procesów we współdzielonej infrastrukturze.
    PT_USERMEM i PT_USERTIME — limity pamięci i czasu CPU na użytkownika, kluczowe dla środowisk hostingu współdzielonego, gdzie izolacja zasobów jest niezbędna.
    LF_DIRWATCH — obserwuje określone katalogi pod kątem zmian plików, zapewniając podstawowe monitorowanie integralności plików.
    LF_SCRIPT_ALERT — wykrywa skrypty wysyłające nadmierną ilość wiadomości e-mail, co jest częstym wskaźnikiem skompromitowanej aplikacji PHP.
    
    Wykrywanie skanowania portów
    CSF używa śledzenia modułu iptables recent do identyfikowania hostów sondujących wiele portów w szybkiej kolejności. Dyrektywy PS_INTERVAL, PS_LIMIT i PS_PORTS kontrolują czułość. Po wykryciu skanowania portów źródłowy adres IP jest natychmiast dodawany do listy blokad i wysyłany jest alert.
    Warto wiedzieć: agresywne wykrywanie skanowania portów może generować fałszywe alarmy ze strony legalnych skanerów sieciowych używanych przez zespoły bezpieczeństwa lub usługi monitorowania dostępności. Proaktywnie dodaj adresy IP tych skanerów do csf.ignore.
    DDoS i ograniczanie szybkości połączeń
    CSF zapewnia kilka mechanizmów pochłaniania lub odpierania ataków wolumetrycznych:
    
    CT_LIMIT — maksymalna liczba jednoczesnych połączeń na adres IP. Ustawienie tej wartości na 100–300 dla serwerów webowych zapobiega monopolizowaniu slotów połączeń przez pojedynczego hosta.
    CT_INTERVAL — jak często działa moduł śledzenia połączeń.
    SYNFLOOD i SYNFLOOD_RATE — włącza ochronę przed zalewem SYN iptables z konfigurowalnym limitem szybkości pakietów.
    UDPFLOOD — ogranicza szybkość pakietów UDP na adres IP, łagodząc ataki amplifikacji UDP.
    
    Ważne jest, aby zrozumieć zakres łagodzenia DDoS przez CSF: jest on skuteczny przeciwko atakom na warstwę aplikacji i niskowolumetrycznym atakom na warstwę sieciową pochodzącym z ograniczonej liczby źródeł. Przeciwko wielkoskalowemu wolumetrycznemu DDoS (dziesiątki Gbps) wymagane jest null-routing po stronie operatora lub dedykowana usługa scrubbing DDoS. CSF uzupełnia, ale nie zastępuje ochrony sieciowej po stronie operatora.
    Kontrola dostępu na poziomie kraju (CC_DENY / CC_ALLOW)
    CSF integruje się z bazami danych MaxMind GeoIP w celu egzekwowania polityk dostępu geograficznego. Dyrektywa CC_DENY akceptuje dwuliterowe kody krajów ISO 3166-1:
    CC_DENY = "CN,RU,KP,IR"
    Alternatywnie, CC_ALLOW_FILTER w połączeniu z CC_DENY = "ALL" tworzy politykę geograficzną opartą wyłącznie na białej liście — przydatną dla usług, które prawnie lub operacyjnie obsługują tylko określone jurysdykcje.
    Pułapka operacyjna: Bazy danych GeoIP nie są w pełni dokładne. Legalni użytkownicy korzystający z firmowych VPN lub węzłów brzegowych CDN mogą wydawać się pochodzić z zablokowanego kraju. Połącz blokowanie krajów z umieszczaniem na białej liście IP dla znanych partnerów.
    Tymczasowe blokady i odblokowywanie
    CSF obsługuje blokady czasowe, które są preferowane od trwałych zakazów w niejednoznacznych przypadkach:
    # Block an IP for 3600 seconds (1 hour)
    csf -td 192.168.1.100 3600 "Suspicious scan activity"
    
    # Remove a temporary block manually
    csf -tr 192.168.1.100
    
    # Check if an IP is currently blocked
    csf -g 192.168.1.100
    Alerty e-mail i raportowanie
    CSF wysyła powiadomienia e-mail dla szerokiego zakresu zdarzeń. Dyrektywa LF_ALERT_TO ustawia adres odbiorcy. Kategorie alertów obejmują:
    
    Przekroczenia progów nieudanych logowań
    Udane logowania root
    Wykrycia skanowania portów
    Naruszenia limitów zasobów procesów
    Zmiany reguł zapory
    Podejrzane modyfikacje plików (jeśli LF_DIRWATCH jest włączone)
    
    W przypadku serwerów o dużym ruchu zmęczenie alertami jest realnym ryzykiem operacyjnym. Używaj progów LF_EMAIL_ALERT i rozważ kierowanie alertów CSF do dedykowanej skrzynki pocztowej lub integracji SIEM zamiast ogólnej skrzynki odbiorczej. Niezawodne dostarczanie alertów zależy od prawidłowo skonfigurowanego stosu pocztowego — jeśli prowadzisz własną infrastrukturę pocztową, hosting poczty e-mail z właściwym wyrównaniem SPF/DKIM zapewnia, że alerty CSF nie są po cichu odrzucane jako spam.
    Instalacja CSF na serwerze Linux
    CSF nie jest dostępny w standardowych repozytoriach dystrybucji. Instalacja jest prosta:
    # Download the latest release
    cd /usr/src
    wget https://download.configserver.com/csf.tgz
    
    # Extract and install
    tar -xzf csf.tgz
    cd csf
    sh install.sh
    Po instalacji sprawdź, czy wszystkie wymagane moduły iptables są dostępne:
    perl /usr/local/csf/bin/csftest.pl
    Wyniki FATAL wskazują na brakujące moduły jądra, które muszą zostać rozwiązane przed prawidłowym działaniem CSF. Wyniki WARN mają charakter informacyjny i zazwyczaj nie blokują działania.
    Wstępna konfiguracja znajduje się w /etc/csf/csf.conf. Najważniejszym pierwszym krokiem jest wyłączenie trybu testowego i zdefiniowanie dozwolonych portów przed ponownym uruchomieniem demona.
    Integracja CSF z panelami sterowania
    CSF jest dostarczany z natywnymi wtyczkami UI dla trzech dominujących paneli sterowania hostingiem Linux:
    
    
    
    
    Panel sterowania
    Metoda integracji
    Lokalizacja w UI
    
    
    
    
    cPanel / WHM
    Wtyczka CSF dla WHM
    WHM > Plugins > ConfigServer Security & Firewall
    
    
    DirectAdmin
    Wtyczka CSF
    Panel administratora > Extra Features
    
    
    Webmin
    Moduł CSF dla Webmin
    Webmin > Networking > ConfigServer Security & Firewall
    
    
    
    
    Integracja z WHM jest najbardziej kompletna funkcjonalnie, udostępniając pełny edytor pliku konfiguracyjnego, wyszukiwanie IP, zarządzanie tymczasowymi blokadami i przeglądarkę logów w interfejsie WHM. Dla administratorów korzystających z VPS z cPanel, CSF jest de facto standardowym rozwiązaniem zapory sieciowej — jest preinstalowany lub trywialnie instalowalny praktycznie na każdym obrazie VPS z cPanel.
    W środowiskach bez panelu sterowania CLI jest w pełni funkcjonalne. Podstawowe polecenia:
    csf -s    # Start firewall
    csf -f    # Stop (flush) firewall
    csf -r    # Restart firewall
    csf -l    # List current iptables rules
    csf -a 203.0.113.5   # Allow an IP permanently
    csf -d 203.0.113.5   # Deny an IP permanently
    csf -g 203.0.113.5   # Check block status of an IP
    csf -u    # Check for CSF updates
    CSF a alternatywne rozwiązania zapory sieciowej dla Linux
    Zrozumienie miejsca CSF w szerszym ekosystemie pomaga podjąć świadomą decyzję architektoniczną.
    
    
    
    
    Funkcja
    CSF + LFD
    UFW
    firewalld
    Fail2ban + iptables
    
    
    
    
    Główna warstwa abstrakcji
    iptables / nftables
    iptables / nftables
    nftables / iptables
    iptables / nftables
    
    
    Aktywne łagodzenie ataków brute-force
    Wbudowane (LFD)
    Brak (wymaga parowania)
    Brak (wymaga parowania)
    Podstawowa funkcja
    
    
    Integracja z panelem sterowania
    Natywna (cPanel, DA, Webmin)
    Brak
    Brak
    Ograniczona
    
    
    GeoIP / blokowanie krajów
    Wbudowane
    Brak
    Brak
    Przez wtyczkę
    
    
    Wykrywanie skanowania portów
    Wbudowane
    Brak
    Brak
    Przez filtr
    
    
    Monitorowanie procesów/zasobów
    Wbudowane (PT_*)
    Brak
    Brak
    Brak
    
    
    Złożoność konfiguracji
    Średnia-Wysoka
    Niska
    Średnia
    Średnia
    
    
    Odpowiedni dla hostingu współdzielonego
    Tak
    Nie
    Nie
    Częściowo
    
    
    Obsługa IPv6
    Tak (ip6tables)
    Tak
    Tak
    Tak
    
    
    
    
    Kiedy wybrać CSF: Gdy prowadzisz serwer cPanel/DirectAdmin/Webmin, VPS lub serwer dedykowany w kontekście wielodostępnym lub hostingowym, albo potrzebujesz jednego narzędzia, które konsoliduje zarządzanie zaporą, wykrywanie ataków brute-force i monitorowanie hosta bez łączenia wielu oddzielnych narzędzi.
    Kiedy rozważyć alternatywy: Gdy prowadzisz skonteneryzowane środowisko mikroserwisów, w którym polityka sieciowa jest zarządzana na poziomie orkiestracji (Kubernetes NetworkPolicy, Calico), lub potrzebujesz natywnego zarządzania nftables w nowoczesnej dystrybucji bez warstw zgodności z iptables.
    Typowe przypadki użycia i scenariusze wdrożenia
    Zabezpieczanie serwera hostingu webowego
    Na typowym serwerze cPanel CSF powinien być skonfigurowany tak, aby:
    
    Otwierać tylko porty wymagane przez aktywne usługi (HTTP, HTTPS, SMTP, IMAP, POP3, FTP, SSH, DNS)
    Włączyć LF_SCRIPT_ALERT do wykrywania skompromitowanych mailerów PHP
    Ustawić CT_LIMIT w celu zapobiegania wyczerpaniu połączeń z jednego źródła
    Włączyć integrację MODSEC, jeśli zainstalowany jest ModSecurity, korelując blokady WAF z odrzuceniami na poziomie zapory
    
    Zabezpieczanie dostępu SSH
    Połączenie CSF z uwierzytelnianiem SSH opartym na kluczach i niestandardowym portem SSH tworzy solidną postawę kontroli dostępu:
    # Allow only your management IP on the SSH port
    # In /etc/csf/csf.allow:
    tcp|in|d=2222|s=203.0.113.10  # Replace with your actual management IP and SSH port
    Ustaw LF_SSH = "3", aby zablokować każdy adres IP po trzech nieudanych próbach, i dodaj swój adres IP zarządzania do csf.ignore, aby zapobiec przypadkowemu zablokowaniu własnego dostępu.
    Ochrona infrastruktury pocztowej
    Serwery pocztowe są wartościowymi celami ataków brute-force. Progi LFD dla poszczególnych usług CSF (LF_SMTPAUTH, LF_POP3D, LF_IMAPD) powinny być ustawione agresywnie (3–5 błędów) na każdym serwerze obsługującym uwierzytelniony SMTP. Połącz to z prawidłowo skonfigurowanymi certyfikatami SSL na wszystkich portach pocztowych, aby zapobiec przechwytywaniu danych uwierzytelniających, które uczyniłoby ochronę przed brute-force bezcelową.
    Obciążenia GPU i wysokowydajne
    W środowiskach hostingu GPU obsługujących API wnioskowania ML lub usługi renderowania, ochrona CT_LIMIT i SYNFLOOD CSF jest szczególnie cenna — usługi te często udostępniają wartościowe punkty końcowe API, które przyciągają automatyczne sondowanie. Ogranicz porty API do znanych CIDR klientów za pomocą csf.allow i użyj CC_DENY do filtrowania obszarów geograficznych bez legalnej bazy użytkowników.
    Lista kontrolna hartowania konfiguracji CSF
    Przed uznaniem wdrożenia CSF za gotowe do produkcji sprawdź następujące elementy:
    
    TESTING = "0" jest ustawione i CSF zostało ponownie uruchomione
    TCP_IN i TCP_OUT zawierają tylko porty wymagane przez aktywne usługi — usuń wartości domyślne, które nie mają zastosowania
    Progi LF_SSH, LF_FTPD, LF_SMTPAUTH są ustawione na 3–5 błędów
    Twoje adresy IP zarządzania są w /etc/csf/csf.ignore i /etc/csf/csf.allow
  • CT_LIMIT jest włączone i ustawione na rozsądną wartość (100–300 dla serwerów webowych)
  • SYNFLOOD = "1" jest włączone na serwerach dostępnych z Internetu
  • LF_SCRIPT_ALERT = "1" jest włączone na serwerach z aplikacjami PHP
  • LF_ALERT_TO jest ustawione na monitorowaną skrzynkę pocztową
  • csf -u jest uruchamiane okresowo lub zautomatyzowane przez cron, aby CSF było aktualne
  • perl /usr/local/csf/bin/csftest.pl nie zwraca błędów FATAL po żadnej aktualizacji jądra
  • Macierz decyzyjna: czy CSF jest odpowiednim narzędziem dla Twojego środowiska?

    ŚrodowiskoCSF zalecane?Uwagi
    VPS lub serwer dedykowany cPanel / WHMTak, zdecydowanieNatywna integracja, standard branżowy
    Serwer DirectAdminTakPełna obsługa wtyczek
    Bare Linux VPS bez panelu sterowaniaTakZarządzanie przez CLI, pełny zestaw funkcji
    Hosting współdzielony (użytkownik końcowy)Nie dotyczyZarządzany przez hosta, nie przez użytkownika końcowego
    Klaster Docker / KubernetesNieUżywaj polityk sieciowych i narzędzi opartych na eBPF
    Windows ServerNieCSF działa tylko na Linux
    Źródło CDN o dużym ruchuCzęściowoPołącz z ochroną DDoS po stronie operatora

    FAQ

    Jaka jest różnica między CSF a Fail2ban?

    Oba narzędzia wykonują blokowanie IP metodą brute-force poprzez analizę plików logów, ale CSF jest kompletnym pakietem bezpieczeństwa, który zarządza również podstawowymi regułami zapory, dostępem do portów, ograniczaniem szybkości połączeń, monitorowaniem procesów i filtrowaniem GeoIP. Fail2ban jest ukierunkowanym narzędziem zapobiegania włamaniom, które opiera się na zewnętrznej zaporze (iptables, nftables lub firewalld) do egzekwowania. Na serwerach hostingowych z panelami sterowania CSF jest bardziej kompletnym operacyjnie rozwiązaniem. W minimalnych systemach Linux lub kontenerach Fail2ban sparowany z firewalld może być lżejszy i bardziej odpowiedni.

    Czy CSF może blokować ruch IPv6?

    Tak. CSF zarządza zarówno zestawami reguł iptables (IPv4), jak i ip6tables (IPv6). Obsługa IPv6 jest domyślnie włączona, gdy jądro ją obsługuje. Upewnij się, że IPV6 = "1" jest ustawione w csf.conf i że Twoje listy portów TCP6_IN / TCP6_OUT są skonfigurowane, ponieważ domyślnie odzwierciedlają ustawienia IPv4, ale mogą być dostosowywane niezależnie.

    Jak zapobiec przypadkowemu zablokowaniu własnego dostępu podczas konfigurowania CSF?

    Dodaj swój adres IP zarządzania zarówno do /etc/csf/csf.allow, jak i /etc/csf/csf.ignore przed wprowadzeniem jakichkolwiek restrykcyjnych zmian. Zachowaj TESTING = "1" podczas wstępnej konfiguracji — w trybie testowym CSF ładuje reguły, ale LFD nie egzekwuje blokad, a reguły są automatycznie usuwane po 5 minutach, jeśli nie zostaną potwierdzone. Ustaw TESTING = "0" dopiero po zweryfikowaniu łączności.

    Czy CSF działa na serwerach bez panelu sterowania?

    Tak, w pełni. CSF jest instalowany i zarządzany wyłącznie przez wiersz poleceń. Interfejs webowy jest opcjonalną warstwą wygody dla środowisk z panelami sterowania. Cała konfiguracja odbywa się przez pliki płaskie w /etc/csf/ i binarny plik CLI csf. Wielu administratorów preferuje zarządzanie wyłącznie przez CLI ze względu na możliwość audytu i automatyzacji za pomocą narzędzi do zarządzania konfiguracją, takich jak Ansible lub Puppet.

    Jak często CSF powinien być aktualizowany i jak to się robi?

    CSF powinien być aktualizowany za każdym razem, gdy zostanie wydana nowa wersja, szczególnie w przypadku zmian związanych z bezpieczeństwem. Sprawdź dostępność aktualizacji za pomocą csf -u, który porównuje zainstalowaną wersję z najnowszą wersją na serwerze pobierania ConfigServer. Aktualizacje można stosować bezpośrednio z interfejsu wtyczki WHM lub przez CLI. Zautomatyzuj sprawdzanie za pomocą cotygodniowego zadania cron, ale stosuj aktualizacje ręcznie po przejrzeniu dziennika zmian — aktualizacje CSF czasami zmieniają domyślne wartości konfiguracji, które wymagają przeglądu przed wdrożeniem.

    15%

    Zaoszczędź 15% na wszystkich usługach hostingowych

    Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

    Użyj kodu:

    Skills
    Rozpocznij