Какво е CSF (ConfigServer Security and Firewall)? Пълно техническо ръководство
CSF, или ConfigServer Security & Firewall, е защитна стена с проверка на пакети по състояние (SPI), демон за откриване на неуспешни влизания и пакет за укрепване на сигурността за Linux сървъри. Той функционира като богат на функции интерфейс за iptables (и nftables при по-нови ядра), абстрахирайки сложното управление на правила в структуриран конфигурационен слой, като същевременно добавя активно откриване на заплахи чрез своя съпътстващ демон, LFD (Login Failure Daemon).
За всеки производствен Linux сървър — независимо дали работи със споделен хостинг, VPS или физическа dedicated среда — CSF осигурява многопластова защита на периметъра: филтриране на входящ/изходящ трафик, анализ на логове в реално време, смекчаване на brute-force атаки, откриване на сканиране на портове и контрол на достъпа на ниво държава, всичко управляемо чрез CLI или уеб интерфейс, интегриран с cPanel, DirectAdmin или Webmin.
Как работи CSF под капака
CSF не замества iptables или nftables — той ги управлява. Когато дефинирате правила в /etc/csf/csf.conf или манипулирате IP списъци, CSF превежда тези директиви в правила на netfilter на ниво ядро и ги прилага атомарно.
Архитектурата има два основни компонента, работещи едновременно:
- csf — механизмът за правила на защитната стена, който чете конфигурационни файлове и попълва вериги
iptables/ip6tables. - lfd — постоянен демон, който следи системните лог файлове в реално време, оценява събитията за удостоверяване спрямо конфигурируеми прагове и инструктира
csfда блокира или деблокира IP адреси динамично.
При стартиране CSF изчиства съществуващите вериги и ги изгражда отново от нулата въз основа на своята конфигурация. Този подход „чист лист” предотвратява натрупването на правила и гарантира, че състоянието на защитната стена винаги е детерминирано и одитируемо.
Режими на работа на CSF
CSF работи в един от два основни режима на трафик:
Режим на разрешаване (по подразбиране за повечето внедрявания): Целият входящ и изходящ трафик е забранен по подразбиране. Разрешени са само портовете, изрично изброени в директивите TCP_IN, TCP_OUT, UDP_IN и UDP_OUT. Това е препоръчителната производствена позиция.
Режим на тестване (TESTING = "1"): CSF зарежда правила, но LFD не прилага блокирания. Това ви предпазва от блокиране на собствения ви достъп по време на първоначалната конфигурация. Винаги деактивирайте режима на тестване преди да преминете към работна среда:
# In /etc/csf/csf.conf, set:
TESTING = "0"
# Then restart CSF:
csf -rОбяснение на ключовите функции на CSF
Механизъм за правила на защитната стена
CSF управлява четири основни списъка с портове в csf.conf:
TCP_IN / UDP_IN — портове, отворени за входящи връзки
TCP_OUT / UDP_OUT — портове, разрешени за изходящи връзки
Минималната конфигурация на уеб сървър може да изглежда така:
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"
Освен управлението на портове, CSF поддържа правила, базирани на CIDR, позволявайки ви да разрешавате или забранявате цели мрежови диапазони. Правилата се съхраняват в обикновени файлове за лесен контрол на версиите:
Файл
Предназначение
/etc/csf/csf.allow
Постоянно разрешени в белия списък IP адреси или CIDR
/etc/csf/csf.deny
Постоянно блокирани IP адреси или CIDR
/etc/csf/csf.ignore
IP адреси, които LFD никога няма да блокира автоматично
/etc/csf/csf.dyndns
Динамични DNS имена на хостове за автоматично разрешаване и разрешаване на достъп
Демон за неуспешни влизания (LFD)
LFD е активният интелигентен слой на CSF. Той следи лог файлове — включително /var/log/secure, /var/log/maillog, /var/log/exim_mainlog и други — и брои неуспешните удостоверявания на изходящ IP адрес в рамките на конфигурируем времеви прозорец.
Ключови конфигурационни директиви на LFD:
LF_TRIGGER — брой неуспехи преди издаване на блокиране
LF_INTERVAL — плъзгащият се времеви прозорец (в секунди) за броене на неуспехи
LF_DURATION — колко дълго трае временното блокиране (0 = постоянно)
LF_SSH, LF_FTPD, LF_SMTPAUTH, LF_POP3D, LF_IMAPD — прагове за неуспехи за отделни услуги
Практически пример за укрепване: задайте LF_SSH = "5" с LF_INTERVAL = "300", за да блокирате всеки IP адрес, който не успее да се удостовери чрез SSH 5 пъти в рамките на 5 минути. Тази единична директива елиминира огромното мнозинство от автоматизирани атаки за пълнене с идентификационни данни, насочени към порт 22.
Критичен граничен случай: Ако вашата система за мониторинг или агент за архивиране се удостоверява от динамичен IP адрес, в крайна сметка ще задейства LFD. Винаги добавяйте тези изходни IP адреси към /etc/csf/csf.ignore преди да затегнете праговете.
Откриване на прониквания и проследяване на процеси
Освен мониторинга на влизания, LFD изпълнява няколко функции за откриване на прониквания, базирани на хоста:
PT_LOAD — следи натоварването на CPU и предупреждава или блокира, ако даден процес надхвърли определени прагове, полезно за откриване на криптомайнинг или неконтролирани процеси в споделена инфраструктура.
PT_USERMEM и PT_USERTIME — ограничения на паметта и CPU времето за отделни потребители, критични за среди на споделен уеб хостинг, където изолацията на ресурсите е от съществено значение.
LF_DIRWATCH — наблюдава посочени директории за промени в файлове, осигурявайки рудиментарен мониторинг на целостта на файловете.
LF_SCRIPT_ALERT — открива скриптове, изпращащи прекомерно количество имейли, което е честа индикация за компрометирано PHP приложение.
Откриване на сканиране на портове
CSF използва проследяване на модула iptables recent, за да идентифицира хостове, сондиращи множество портове в бърза последователност. Директивите PS_INTERVAL, PS_LIMIT и PS_PORTS контролират чувствителността. Когато бъде открито сканиране на портове, изходният IP адрес незабавно се добавя към списъка за забрана и се изпраща предупреждение.
Нюанс, който си струва да знаете: агресивното откриване на сканиране на портове може да генерира фалшиви положителни резултати от легитимни мрежови скенери, използвани от екипи по сигурността или услуги за мониторинг на наличността. Добавете тези IP адреси на скенери към csf.ignore превантивно.
DDoS и ограничаване на скоростта на връзките
CSF предоставя няколко механизма за поглъщане или отклоняване на обемни атаки:
CT_LIMIT — максимален брой едновременни връзки на IP адрес. Задаването на 100–300 за уеб сървъри предотвратява монополизирането на слотовете за връзки от един хост.
CT_INTERVAL — колко често се изпълнява проследяването на връзките.
SYNFLOOD и SYNFLOOD_RATE — активира защита от SYN flood на iptables с конфигурируем лимит на скоростта на пакетите.
UDPFLOOD — ограничава скоростта на UDP пакетите на IP адрес, смекчавайки UDP атаки с усилване.
Важно е да разберете обхвата на смекчаване на DDoS от CSF: той е ефективен срещу атаки на приложния слой и атаки на мрежовия слой с малък обем, произхождащи от ограничен брой източници. Срещу мащабна обемна DDoS атака (десетки Gbps) е необходимо null-routing нагоре по веригата или специализирана услуга за почистване от DDoS. CSF допълва, но не замества защитата на мрежово ниво нагоре по веригата.
Контрол на достъпа на ниво държава (CC_DENY / CC_ALLOW)
CSF се интегрира с бази данни MaxMind GeoIP за прилагане на географски политики за достъп. Директивата CC_DENY приема двубуквени кодове на държави по ISO 3166-1:
CC_DENY = "CN,RU,KP,IR"
Алтернативно, CC_ALLOW_FILTER в комбинация с CC_DENY = "ALL" създава географска политика само с разрешен списък — полезна за услуги, които законово или оперативно обслужват само определени юрисдикции.
Оперативен капан: Базите данни GeoIP не са напълно точни. Легитимни потребители зад корпоративни VPN мрежи или CDN edge възли може да изглеждат като произхождащи от блокирана държава. Комбинирайте блокирането по държава с добавяне в белия списък на IP адреси за известни партньори.
Временни блокирания и деблокиране
CSF поддържа блокирания с ограничено време, които са за предпочитане пред постоянните забрани при неясни случаи:
# 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
Имейл предупреждения и отчети
CSF изпраща имейл известия за широк спектър от събития. Директивата LF_ALERT_TO задава адреса на получателя. Категориите предупреждения включват:
Нарушения на прага за неуспешни влизания
Успешни влизания като root
Открити сканирания на портове
Нарушения на ограниченията за ресурси на процеси
Промени в правилата на защитната стена
Подозрителни модификации на файлове (ако е активирано LF_DIRWATCH)
За сървъри с голям трафик умората от предупреждения е реален оперативен риск. Използвайте прагове LF_EMAIL_ALERT и помислете за насочване на предупрежденията от CSF към специална пощенска кутия или интеграция със SIEM, а не към обща входяща поща. Надеждното доставяне на предупреждения зависи от правилно конфигуриран пощенски стек — ако управлявате собствена пощенска инфраструктура, имейл хостинг с правилно съответствие на SPF/DKIM гарантира, че предупрежденията от CSF няма да бъдат тихо отхвърлени като спам.
Инсталиране на CSF на Linux сървър
CSF не е наличен в стандартните хранилища на дистрибуциите. Инсталацията е лесна:
# 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
След инсталацията проверете дали всички необходими модули iptables са налични:
perl /usr/local/csf/bin/csftest.pl
Всякакви резултати FATAL показват липсващи модули на ядрото, които трябва да бъдат разрешени преди CSF да функционира правилно. Резултатите WARN са информативни и обикновено не блокират работата.
Първоначалната конфигурация се намира в /etc/csf/csf.conf. Най-критичната първа стъпка е деактивирането на режима на тестване и дефинирането на разрешените портове преди рестартиране на демона.
Интеграция на CSF с контролни панели
CSF се доставя с вградени UI плъгини за трите доминиращи контролни панела за Linux хостинг:
Контролен панел
Метод на интеграция
Местоположение в UI
cPanel / WHM
CSF плъгин за WHM
WHM > Plugins > ConfigServer Security & Firewall
DirectAdmin
CSF плъгин
Административен панел > Extra Features
Webmin
CSF Webmin модул
Webmin > Networking > ConfigServer Security & Firewall
Интеграцията с WHM е най-пълнофункционалната, излагайки пълния редактор на конфигурационни файлове, търсене на IP адреси, управление на временни блокирания и преглед на логове в рамките на интерфейса на WHM. За администратори, управляващи VPS с cPanel, CSF е на практика стандартното решение за защитна стена — той е предварително инсталиран или тривиално инсталируем на практически всеки образ на cPanel VPS.
За среди без контролен панел, CLI е напълно способен. Основни команди:
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 срещу алтернативни решения за защитна стена за Linux
Разбирането на мястото на CSF в по-широката екосистема ви помага да вземете информирано архитектурно решение.
Функция
CSF + LFD
UFW
firewalld
Fail2ban + iptables
Основен абстракционен слой
iptables / nftables
iptables / nftables
nftables / iptables
iptables / nftables
Активно смекчаване на brute-force
Вградено (LFD)
Няма (изисква сдвояване)
Няма (изисква сдвояване)
Основна функция
Интеграция с контролен панел
Вградена (cPanel, DA, Webmin)
Няма
Няма
Ограничена
GeoIP / блокиране по държава
Вградено
Няма
Няма
Чрез плъгин
Откриване на сканиране на портове
Вградено
Няма
Няма
Чрез филтър
Мониторинг на процеси/ресурси
Вградено (PT_*)
Няма
Няма
Няма
Сложност на конфигурацията
Средна-Висока
Ниска
Средна
Средна
Подходящ за споделен хостинг
Да
Не
Не
Частично
Поддръжка на IPv6
Да (ip6tables)
Да
Да
Да
Кога да изберете CSF: Управлявате cPanel/DirectAdmin/Webmin сървър, VPS или dedicated сървър в многонаемателски или хостинг контекст, или имате нужда от единен инструмент, който консолидира управлението на защитната стена, откриването на brute-force и мониторинга, базиран на хоста, без да сглобявате множество отделни инструменти.
Кога да обмислите алтернативи: Управлявате контейнеризирана среда с микроуслуги, където мрежовата политика се управлява на ниво оркестрация (Kubernetes NetworkPolicy, Calico), или имате нужда от nftables-нативно управление на модерна дистрибуция без наследени прокси слоеве за съвместимост с iptables.
Общи случаи на употреба и сценарии за внедряване
Защита на сървър за уеб хостинг
На типичен cPanel сървър CSF трябва да бъде конфигуриран да:
Отваря само портовете, изисквани от активните услуги (HTTP, HTTPS, SMTP, IMAP, POP3, FTP, SSH, DNS)
Активира LF_SCRIPT_ALERT за улавяне на компрометирани PHP мейлъри
Задава CT_LIMIT за предотвратяване на изчерпване на връзките от един източник
Активира интеграция с MODSEC, ако е инсталиран ModSecurity, корелирайки блокиранията на WAF с блокирания на ниво защитна стена
Укрепване на SSH достъпа
Комбинирането на CSF с удостоверяване чрез SSH ключ и нестандартен SSH порт създава стабилна позиция за контрол на достъпа:
# 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
Задайте LF_SSH = "3", за да блокирате всеки IP адрес след три неуспешни опита, и добавете вашия управленски IP адрес към csf.ignore, за да предотвратите случайно блокиране на собствения ви достъп.
Защита на имейл инфраструктура
Пощенските сървъри са ценни цели за brute-force атаки. Праговете на LFD за отделни услуги на CSF (LF_SMTPAUTH, LF_POP3D, LF_IMAPD) трябва да бъдат зададени агресивно (3–5 неуспеха) на всеки сървър, обработващ удостоверен SMTP. Комбинирайте това с правилно конфигурирани SSL сертификати на всички пощенски портове, за да предотвратите прихващане на идентификационни данни, което би направило защитата от brute-force безсмислена.
GPU и високопроизводителни натоварвания
За среди на GPU хостинг, изпълняващи ML inference API или услуги за рендиране, защитата CT_LIMIT и SYNFLOOD на CSF е особено ценна — тези услуги често излагат API крайни точки с висока стойност, привличащи автоматизирано сондиране. Ограничете API портовете до известни клиентски CIDR чрез csf.allow и използвайте CC_DENY за филтриране на географии без легитимна потребителска база.
Контролен списък за укрепване на конфигурацията на CSF
Преди да считате внедряването на CSF за готово за производство, проверете следното:
TESTING = "0" е зададено и CSF е рестартиран
TCP_IN и TCP_OUT съдържат само портове, изисквани от активните услуги — премахнете стойностите по подразбиране, които не се прилагат
Праговете LF_SSH, LF_FTPD, LF_SMTPAUTH са зададени на 3–5 неуспеха
Вашите управленски IP адреси са в /etc/csf/csf.ignore и /etc/csf/csf.allowCT_LIMIT е активирано и зададено на разумна стойност (100–300 за уеб сървъри)SYNFLOOD = "1" е активирано на сървъри, изложени към интернетLF_SCRIPT_ALERT = "1" е активирано на сървъри, изпълняващи PHP приложенияLF_ALERT_TO е зададено на наблюдавана пощенска кутияcsf -u се изпълнява периодично или е автоматизирано чрез cron за поддържане на CSF актуаленperl /usr/local/csf/bin/csftest.pl не връща грешки FATAL след всяка актуализация на ядротоМатрица за решения: Подходящ ли е CSF за вашата среда?
| Среда | Препоръчва ли се CSF? | Бележки |
|---|---|---|
| cPanel / WHM VPS или dedicated сървър | Да, силно | Вградена интеграция, индустриален стандарт |
| DirectAdmin сървър | Да | Пълна поддръжка на плъгини |
| Обикновен Linux VPS без контролен панел | Да | CLI управление, пълен набор от функции |
| Споделен хостинг (краен потребител) | Не е приложимо | Управлява се от хостинг доставчика, не от крайния потребител |
| Docker / Kubernetes клъстер | Не | Използвайте мрежови политики и инструменти, базирани на eBPF |
| Windows Server | Не | CSF е само за Linux |
| CDN origin с голям трафик | Частично | Комбинирайте с DDoS защита нагоре по веригата |
ЧЗВ
Каква е разликата между CSF и Fail2ban?
И двата инструмента извършват блокиране на IP адреси при brute-force чрез анализ на лог файлове, но CSF е пълен пакет за сигурност, който също управлява основните правила на защитната стена, достъпа до портове, ограничаването на скоростта на връзките, мониторинга на процесите и GeoIP филтрирането. Fail2ban е фокусиран инструмент за предотвратяване на прониквания, който разчита на външна защитна стена (iptables, nftables или firewalld) за прилагане. На хостинг сървъри с контролни панели CSF е по-оперативно пълното решение. На минимални Linux системи или контейнери Fail2ban в комбинация с firewalld може да е по-лек и по-подходящ.
Може ли CSF да блокира IPv6 трафик?
Да. CSF управлява наборите от правила iptables (IPv4) и ip6tables (IPv6). Поддръжката на IPv6 е активирана по подразбиране, когато ядрото я поддържа. Уверете се, че IPV6 = "1" е зададено в csf.conf и че вашите списъци с портове TCP6_IN / TCP6_OUT са конфигурирани, тъй като по подразбиране те отразяват настройките за IPv4, но могат да бъдат персонализирани независимо.
Как да предотвратя случайното блокиране на собствения си достъп при конфигуриране на CSF?
Добавете вашия управленски IP адрес към /etc/csf/csf.allow и /etc/csf/csf.ignore преди да правите каквито и да е ограничителни промени. Поддържайте TESTING = "1" по време на първоначалната конфигурация — в режим на тестване CSF зарежда правила, но LFD не прилага блокирания, а правилата се изчистват автоматично след 5 минути, ако не бъдат потвърдени. Задайте TESTING = "0" само след като сте проверили свързаността.
Работи ли CSF на сървъри без контролен панел?
Да, напълно. CSF се инсталира и управлява изцяло чрез командния ред. Уеб UI е незадължителен удобен слой за среди с контролен панел. Цялата конфигурация се извършва чрез обикновени файлове в /etc/csf/ и CLI бинарния файл csf. Много администратори предпочитат управление само чрез CLI за одитируемост и автоматизация чрез инструменти за управление на конфигурации като Ansible или Puppet.
Колко често трябва да се актуализира CSF и как се прави?
CSF трябва да се актуализира при всяко издаване на нова версия, особено за промени, свързани със сигурността. Проверете за актуализации с csf -u, което сравнява инсталираната версия с най-новото издание на сървъра за изтегляне на ConfigServer. Актуализациите могат да бъдат приложени директно от UI на WHM плъгина или чрез CLI. Автоматизирайте проверката с седмично cron задание, но прилагайте актуализациите ръчно след преглед на списъка с промени — актуализациите на CSF понякога променят стойностите на конфигурацията по подразбиране, които изискват преглед преди внедряване.
