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

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
Автор
Редакция

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

Исправить ошибку Origin 65546:0 — пошагово
Техподдержка

Исправить ошибку Origin 65546:0 — пошагово

Исправить Feedburner: 0 подписчиков — быстро
Веб-разработка

Исправить Feedburner: 0 подписчиков — быстро

Как передавать файлы между iPad и Android
Мобильные устройства

Как передавать файлы между iPad и Android

Как строить винтовые лестницы в Conan Exiles
Игры

Как строить винтовые лестницы в Conan Exiles

Как анонимно смотреть Instagram
Социальные сети

Как анонимно смотреть Instagram

CSF на CentOS 7: установка и настройка
Серверы

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