Гид по технологиям

CSF на CentOS 7: установка и настройка ConfigServer Firewall

6 min read Серверы Обновлено 07 Oct 2025
CSF на CentOS 7: установка и настройка
CSF на CentOS 7: установка и настройка

Важно: перед установкой убедитесь, что у вас есть root-доступ и резервная консоль (например, доступ через контрольную панель или KVM), чтобы восстановить доступ в случае ошибки в правилах файрвола.

Что такое CSF

ConfigServer Firewall (CSF) — набор утилит для управления iptables и обнаружения вторжений (LFD — Login/Failure Daemon). Коротко: CSF реализует правила файрвола, LFD следит за попытками входа и выполняет автоматическую блокировку, рассылку уведомлений и интеграцию с панелями управления (cPanel/WHM, DirectAdmin, Webmin).

Определение в одну строку: CSF — приложение для управления правилами iptables с функциями обнаружения нештатных попыток входа и автоматической реакции.

Основные сценарии использования

  • Хостинг-серверы и панели управления.
  • Серверы SSH/FTP/почты, где важно автоматическое выявление брутфорс-атак.
  • Среды, где нужно заменить или дополнить fail2ban универсальным инструментом.

Требования

  • CentOS 7 (в примере сервер с IP 192.168.1.101).
  • Права root или эквивалентные sudo.

Быстрый план установки

  1. Установить зависимости.
  2. Скачать и установить CSF.
  3. Прогнать тест работоспособности.
  4. Отключить firewalld и включить csf/lfd.
  5. Настроить csf.conf и применить правила.

Шаг 1 — Установка зависимостей

CSF основан на Perl. Установите Perl, wget и редактор (vim или любой другой). На CentOS установите пакетами yum:

yum install wget vim perl-libwww-perl.noarch perl-Time-HiRes

Если ваш сервер использует dnf вместо yum (новые релизы), замените команду соответственно.

Шаг 2 — Скачивание и установка CSF

Перейдите в каталог /usr/src/ и скачайте архив:

cd /usr/src/  
wget https://download.configserver.com/csf.tgz

Распакуйте и установите:

tar -xzf csf.tgz  
cd csf  
sh install.sh

В конце установки вы должны увидеть сообщение, что установка завершена.

Установка CSF завершена — вывод установщика

Теперь проверьте, что CSF совместим с вашей системой. Запустите тест в каталоге /usr/local/csf/bin/:

cd /usr/local/csf/bin/  
perl csftest.pl

Ожидаемый результат:

RESULT: csf should function on this server

Проверка CSF: csftest.pl сообщает, что CSF функционирует

Если тест прошёл успешно, можно продолжать.

Важная заметка по firewalld

CentOS 7 по умолчанию использует firewalld. Перед запуском CSF остановите и отключите firewalld, чтобы избежать конфликтов с iptables:

systemctl stop firewalld
systemctl disable firewalld

Если вы планируете использовать firewalld и CSF одновременно, сначала изучите совместимость и режимы работы — в большинстве случаев рекомендуется использовать либо iptables/CSF, либо firewalld, но не оба одновременно.

Шаг 3 — Базовая конфигурация CSF

Откройте файл конфигурации:

cd /etc/csf/  
vim csf.conf

Основные параметры для быстрой настройки:

  • Отключите режим тестирования (обязательно при боевой настройке):
TESTING = "0"
  • Если SSH работает на нестандартном порту, добавьте его в TCP_IN (строка примерно 139):
TCP_IN = "22,XXXXX"

После правок запустите службы:

systemctl start csf
systemctl start lfd
systemctl enable csf
systemctl enable lfd

Просмотреть текущие правила:

csf -l

Шаг 4 — Базовые команды CSF (команды управления)

  1. Включить правила (старт файрвола):
csf -s
  1. Очистить/выключить правила:
csf -f
  1. Перезагрузить правила:
csf -r
  1. Разрешить IP и добавить в csf.allow:
csf -a 192.168.1.109

Пример вывода показывает добавление правил ACCEPT для указанного IP.

  1. Удалить IP из csf.allow:
csf -ar 192.168.1.109
  1. Забанить IP и добавить в csf.deny:
csf -d 192.168.1.109
  1. Убрать IP из csf.deny:
csf -dr 192.168.1.109
  1. Очистить все записи из csf.deny:
csf -df
  1. Поиск по правилам (IP/CIDR/порт):
csf -g 192.168.1.110

Список команд CSF гораздо шире; вызовите man csf или csf –help для полного списка.

Шаг 5 — Расширенная конфигурация и полезные опции

Откройте /etc/csf/csf.conf для тонкой настройки.

  1. Не блокировать IP из csf.allow

По умолчанию LFD может блокировать IP, даже если они в csf.allow. Чтобы запретить LFD блокировать разрешённые адреса, установите:

IGNORE_ALLOW = "1"

Это полезно для статических IP администратора.

  1. Разрешить ICMP (ping)
ICMP_IN = "1"
ICMP_OUT = "1"
  1. Блокировка/разрешение по странам (через CC-коды)
CC_DENY = "CN,UK,US"
CC_ALLOW = "ID,MY,DE"

Используйте это с осторожностью: геоблокировка опирается на базы CIDR и может иметь ложно-положительные/отрицательные срабатывания.

  1. Уведомления по email о входах SSH и командах su

Включите отправку писем об SSH-login и запуске su:

LF_SSH_EMAIL_ALERT = "1"
LF_SU_EMAIL_ALERT = "1"
LF_ALERT_TO = "[email protected]"

Убедитесь, что почтовая система сервера способна отправлять письма (sendmail/postfix или внешний SMTP).

Рекомендации по безопасности и хардениг

  • Всегда держите TESTING = “1” только на тестовых стендах. В проде — “0”.
  • Добавьте ваши административные IP в csf.allow и включите IGNORE_ALLOW = “1”.
  • Настройте LF* параметры (LF_SSH , LFSU) для чувствительных сервисов.
  • Установите строгие правила для TCP_IN/TCP_OUT и минимизируйте открытые порты.
  • Включите SYNFLOOD protection и CONNECTION tracking (параметры в csf.conf).
  • Логи LFD анализируйте регулярно и настраивайте оповещения в централизованную систему мониторинга.

Когда CSF не подходит или где он слаб

  • На микросервисной инфраструктуре с динамическими адресами и Kubernetes удобнее использовать сетевые политики CNI/Calico или облачные NSG.
  • При сложных требованиях к stateful фильтрации на уровне L7 может потребоваться специализированный WAF.
  • Если у вас уже активен firewalld и вы не готовы мигрировать — возможны конфликты.

Альтернативы и сочетания

  • fail2ban — легче и проще для одиночных сервисов, но CSF предоставляет более полный набор возможностей и интеграций.
  • nftables/firewalld — современная альтернатива iptables на уровне ядра.
  • В облаке: security groups / network ACLs (AWS, GCP, Azure) решают сетевые ограничения вне ОС.

Чек-лист для быстрой проверки перед переходом в прод

  • TESTING = “0”
  • SSH-порт включён в TCP_IN
  • Ваш административный IP в csf.allow
  • IGNORE_ALLOW = “1” если нужна защита от блокировок
  • Обновлены пакеты Perl и зависимости
  • Логи LFD отправляются на reachable адрес
  • Резервный доступ на случай блокировки SSH (KVM/console)

Руководство оператора — SOP развертывания (коротко)

  1. Создать снапшот/резерв сервера.
  2. Установить зависимости и CSF на тестовом стенде.
  3. Проверить csftest.pl и базовые команды.
  4. Перенести конфигурацию в прод, добавить админ-IP в csf.allow.
  5. Переключить TESTING = “0” и запустить csf/lfd.
  6. Наблюдать логи 24–48 часов, корректировать правило по необходимости.

Роль-ориентированные чек-листы

Администратор:

  • Установить/обновить CSF.
  • Настроить TCP_IN/TCP_OUT.
  • Проверить уведомления по email.

Инженер безопасности:

  • Проверить геоблокировку и правила SYNFLOOD.
  • Интегрировать логи в SIEM.

Менеджер хостинга:

  • Убедиться в интеграции с панелью управления.
  • Настроить процедуры восстановления доступа.

Примеры тестов и критерии приёмки

  • csftest.pl выводит рабочее состояние.
  • SSH-подключение сохраняется после включения TESTING = “0”.
  • IP из csf.allow не блокируется LFD (если IGNORE_ALLOW = “1”).
  • Оповещения о проблемах приходят на указанный email.

Модель принятия решений (Mermaid)

flowchart TD
  A[Нужен файрвол на сервере?] -->|Да| B{Используется firewalld?}
  B -->|Да| C[Рассмотреть совместимость или миграцию в CSF]
  B -->|Нет| D[Установить CSF + LFD]
  D --> E{Паспорт доступа есть?}
  E -->|Да| F[Добавить admin-IP в csf.allow и IGNORE_ALLOW]
  E -->|Нет| G[Организовать резервный доступ 'KVM']

Отказ и откат (runbook)

Сценарий: после включения CSF вы потеряли SSH доступ.

  1. Сохраняйте доступ через консоль провайдера (KVM/IPMI).
  2. Откатите TESTING = “1” в /etc/csf/csf.conf или выполните csf -f для очистки правил.
  3. Перезапустите csf/lfd: systemctl restart csf lfd.
  4. Проверьте /var/log/lfd.log и /var/log/messages для диагностики.

Совместимость и миграция

  • CSF работает с iptables; при переходе с firewalld — сначала отключите firewalld.
  • При использовании cPanel/WHM интеграция происходит через модуль управления CSF.
  • Для облачных инстансов проверьте взаимодействие с сетевыми группами в облаке.

Короткая памятка команд (cheat sheet)

  • csf -s — старт
  • csf -f — стоп/флаш
  • csf -r — перезагрузка
  • csf -a IP — разрешить IP
  • csf -d IP — забанить IP

Заключение

CSF — практичное и мощное решение для управления iptables и обнаружения нештатных попыток входа на серверах Linux. Для хостинг-площадок и VPS с классическими сервисами (SSH, FTP, почта) CSF часто удобнее fail2ban за счёт интеграции и расширенных возможностей. Внимательно тестируйте правила и держите резервный доступ на случай ошибок при вводе правил.

Итого:

  • Установите зависимости и CSF, прогоните csftest.pl.
  • Отключите firewalld перед активацией CSF.
  • Добавьте административные IP в csf.allow и включите IGNORE_ALLOW при необходимости.
  • Настройте уведомления и мониторьте логи.

Примечание: никогда не экспериментируйте с правилами на проде без резервной консоли доступа.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Отключить рекламу на экране блокировки Windows 10
Windows

Отключить рекламу на экране блокировки Windows 10

Исправление ошибок Microsoft Store
Windows

Исправление ошибок Microsoft Store

Удаление старых точек восстановления Windows
Windows

Удаление старых точек восстановления Windows

Расширенный поиск Google: практическое руководство
Поиск

Расширенный поиск Google: практическое руководство

Изменять размер изображений из контекстного меню
Windows

Изменять размер изображений из контекстного меню

Изменить частоту резервных копий Time Machine
Резервное копирование

Изменить частоту резервных копий Time Machine