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

Установка и настройка ConfigServer Firewall (CSF) на Debian 11

• 8 min read • Безопасность • Обновлено 25 Nov 2025
Установка CSF на Debian 11
Установка CSF на Debian 11

Иллюстрация брандмауэра и безопасности сервера

Что вы получите в этом руководстве

  • Быстрая установка CSF на Debian 11 и проверка работоспособности.
  • Практические примеры правил (PORTFLOOD, CONNLIMIT) и работы с белыми/чёрными списками.
  • Контрольные списки, план отката, тесты приёмки, советы по отладке и варианты альтернатив.

Почему CSF

CSF — это популярный open‑source брандмауэр, упрощающий управление iptables/nftables через конфигурационный файл и набор утилит. Он предоставляет удобные механизмы:

  • белый/чёрный список IP (csf.allow / csf.deny),
  • лимиты соединений (CONNLIMIT),
  • защита от «потока» соединений (PORTFLOOD),
  • поддержка IPv6.

Короткое определение: брандмауэр — сетевой фильтр, который применяет набор правил для входящего и исходящего трафика, решая, разрешить или заблокировать соединение.

Важно: CSF — это интерфейс управления правилами. За фактическую фильтрацию отвечает подсистема (iptables/nftables). Убедитесь, что на сервере нет конфликтующих управляющих скриптов (например, UFW), прежде чем продолжать.

Требования (предварительные условия)

  • Сервер с Debian 11 и доступом в интернет.
  • root‑доступ или sudo‑права.
  • Рекомендуется иметь доступ к консоли/SSH и бэкап конфигурационных файлов перед изменениями.

Обновление системы и установка зависимостей

Перед установкой CSF рекомендуется обновить пакеты и установить необходимые модули Perl и утилиты.

sudo apt update

Установите зависимости (команды приведены по шагам — объединять их можно по желанию):

sudo apt install libio-socket-inet6-perl libsocket6-perl -y
sudo apt install sendmail dnsutils unzip libio-socket-ssl-perl -y
sudo apt install libcrypt-ssleay-perl git perl iptables libnet-libidn-perl -y

Если на сервере уже была установлена предыдущая версия CSF, сначала удалите её:

cd /etc/csf && sh uninstall.sh

Если вы используете другой скрипт управления брандмауэром (например, UFW), временно отключите его, чтобы избежать конфликтов:

sudo ufw disable

Скачивание и установка CSF

Репозиторий Debian не содержит CSF, поэтому загрузим официальный архив и установим вручную.

wget http://download.configserver.com/csf.tgz

Распакуйте архив:

sudo tar -xvzf csf.tgz

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

cd csf && sh install.sh

После завершения установки запустите сервис и проверьте работу тестовой утилитой:

sudo systemctl start csf
perl /usr/local/csf/bin/csftest.pl

Результат запуска теста csf тест в терминале

Чтобы CSF запускался при старте системы:

sudo systemctl enable csf

Проверить статус сервиса:

sudo systemctl status csf

Примечание: Если csftest.pl показывает ошибки, внимательно прочитайте сообщения — они укажут на отсутствующие зависимости или конфликтующие правила.

Базовая настройка: csf.conf и открытые порты

Файл конфигурации CSF находится по пути /etc/csf/csf.conf. В нём задаются все основные параметры: открытые порты, политики по умолчанию, лимиты соединений и т.д.

Откройте файл в редакторе:

sudo nano /etc/csf/csf.conf

Основные параметры, на которые стоит обратить внимание:

  • TCP_IN / TCP_OUT — список открытых TCP‑портов для входящего/исходящего трафика.
  • UDP_IN / UDP_OUT — для UDP.
  • TCP6_IN / TCP6_OUT — то же для IPv6.
  • RESTRICT_SYSLOG / RESTRICT_SYSLOG_USER — ограничения для syslog.

Чем меньше открытых портов — тем меньше поверхность атаки. Оставьте открытыми только необходимые сервисы: SSH (22), HTTPS (443), и т.д.

Если нужно закрыть порт 80 (HTTP): удалите «80» из TCP_IN.

Важно: Изменения в csf.conf не вступают в силу пока вы не обновите правила (см. раздел «Применение изменений»).

Настройки CONNLIMIT (лимит одновременных соединений)

CONNLIMIT позволяет ограничивать количество одновременных соединений с одного IP к конкретному порту. Это помогает снизить риск DoS/DDoS.

Пример формата (примерная иллюстрация — проверьте синтаксис в вашей версии CSF):

CONNLIMIT = "22;3,443;3"

Такое правило позволит не более 3 соединений с одного IP на порты 22 и 443.

Советы по CONNLIMIT:

  • Для SSH (порт 22) аккуратно подбирайте значение — слишком строгие лимиты могут блокировать администраторов.
  • Для веб‑портов (80/443) можно использовать более агрессивные лимиты, если на сервере ожидаются только обычные клиентские сессии.

Настройки PORTFLOOD (порог «потока» соединений)

PORTFLOOD позволяет ограничивать количество запросов к порту за единицу времени. Формат похож на:

PORTFLOOD = "443;tcp;3;60"

Это правило заблокирует IP, который совершил более 3 TCP‑соединений к порту 443 за последние 60 секунд.

Советы:

  • Комбинируйте PORTFLOOD и CONNLIMIT для защиты от разных типов атак.
  • Тестируйте в рабочем окне: слишком жёсткие настройки могут привести к ложным срабатываниям.

Работа с csf.deny, csf.allow и csf.ignore

CSF использует отдельные файлы для управления белыми и чёрными списками.

  • /etc/csf/csf.deny — список IP/диапазонов, которым запрещён доступ.
  • /etc/csf/csf.allow — список IP/диапазонов, полностью разрешённых (превалирует над csf.deny).
  • /etc/csf/csf.ignore — IP, которые игнорируются фильтрами (не применяются фильтры вроде PORTFLOOD/CONNLIMIT). Если IP в csf.deny — оно не может быть проигнорировано.

Пример добавления IP в csf.deny:

sudo nano /etc/csf/csf.deny

Вставьте строки (по одной в строке):

192.168.2.0
192.168.1.0/24

Сохраните: CTRL+X, Y, Enter.

Добавление доверенных хостов:

sudo nano /etc/csf/csf.allow

Добавьте нужные IP или диапазоны.

Игнорирование (используется редко, обычно для локальной диагностики):

sudo nano /etc/csf/csf.ignore

Важно: csf.allow имеет приоритет над csf.deny. Если IP находится в обоих файлах, доступ будет разрешён.

Применение изменений

После правок в csf.conf, csf.allow, csf.deny или csf.ignore нужно перезагрузить правила:

sudo csf -r

Если команда выполнена без ошибок, правила успешно применены. Вы увидите соответствующие сообщения в консоли и/или в логах.

Подтверждение успешного применения правил CSF в терминале

Проверка и тестирование

Рекомендую следующие проверки после настройки:

  • Проверить статус сервиса: sudo systemctl status csf
  • Вывести текущие правила: sudo csf -l (или iptables -L -n / nft list ruleset)
  • Поиск по конкретному IP: sudo csf -g 1.2.3.4
  • Логи CSF и LFD: /var/log/lfd.log и /var/log/messages (или syslog)

Добавьте тестовый IP в csf.allow перед изменением правил доступа, чтобы минимизировать риск случайной блокировки собственного доступа.

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

  • Конфликт с UFW/Firewalld: отключите их или удалите правила, чтобы CSF мог управлять таблицами фильтра.
  • Проблемы с Perl: Debian 11 использует более новую версию Perl — при необходимости переустановите CSF после обновления Perl.
  • Заблокированный SSH: если блокировка закрыла SSH‑доступ, используйте консоль провайдера (VNC/serial) или заранее добавьте свой IP в csf.allow.
  • Ошибки при csf -r: внимательно прочитайте текст ошибки — часто это синтаксическая ошибка в csf.conf.

Простой план восстановления доступа (если SSH закрыт):

  1. Подключитесь через консоль провайдера или панель управления хоста.
  2. Откатите изменения: восстановите бэкап /etc/csf/csf.conf или удалите новые правила.
  3. Выполните sudo csf -r и проверьте доступ.

Когда CSF не подходит — альтернативы и их сильные стороны

  • UFW (Uncomplicated Firewall): проще для базовой настройки, интеграция с Ubuntu/Debian.
  • nftables/iptables напрямую: максимальная гибкость для сложных сценариев.
  • Облачные security groups (AWS/GCP/Azure): управляются на уровне облака и защищают до хоста.
  • Специальные решения WAF (Web Application Firewall): для глубокой защиты HTTP(S).

Выбор зависит от окружения: для управляемых виртуальных серверов CSF удобен; в облаке часто достаточно security groups плюс WAF.

Модель зрелости и рекомендации по внедрению

Уровни зрелости защиты с CSF:

  • Уровень 1 — базовая установка, открыты только нужные порты, csf.allow содержит администраторов.
  • Уровень 2 — правила CONNLIMIT и PORTFLOOD, мониторинг логов, ежедневные ревью правил.
  • Уровень 3 — интеграция с SIEM, автоматический блок по подозрительным паттернам, стресс‑тесты и регламенты отката.

Рекомендации: начните с уровня 1, постепенно усложняйте правила и добавляйте мониторинг.

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

Системный администратор:

  • Установить зависимости и CSF
  • Проверить csftest.pl
  • Добавить IP админов в csf.allow
  • Настроить базовые порты в csf.conf

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

  • Настроить CONNLIMIT и PORTFLOOD
  • Настроить мониторинг и оповещения (lfd, syslog)
  • Запланировать регламенты ревью правил

DevOps:

  • Автоматизировать развёртывание конфигурации (Ansible/Chef)
  • Версионировать конфиги (git) и иметь pipeline для тестирования

План отката (rollback)

  1. Сохраните текущие файлы: sudo cp /etc/csf/csf.conf /root/csf.conf.bak
  2. Если применили неверные изменения — восстановите бэкап: sudo cp /root/csf.conf.bak /etc/csf/csf.conf
  3. Перезагрузите правила: sudo csf -r
  4. Если доступ всё ещё отсутствует — переключитесь на консоль провайдера и откатите изменения вручную.

Критерии приёмки (тесты и проверки)

  • csftest.pl возвращает «TESTING OK» без ошибок.
  • SSH, HTTP/HTTPS и другие требуемые сервисы доступны для доверенных IP.
  • Логи LFD не содержат постоянных ошибок после 24 часов работы.
  • Автоматические тесты (smoke tests) проходят без задержек, имитируя нормальный трафик.

Малые практики безопасности и hardening

  • Отключите неиспользуемые службы и закройте соответствующие порты.
  • Включите двухфакторную аутентификацию для административного доступа к панели управления хостингом.
  • Периодически проверяйте /var/log/lfd.log на повторяющиеся блокировки и причины.
  • Ограничьте доступ к интерфейсу управления сервером по IP (используйте csf.allow).

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

  • Перед переносом конфигурации между серверами проверяйте версии CSF и Perl.
  • При миграции в облако проверьте взаимодействие с сетевыми security groups — дублирование правил может вызвать конфликт.

Диаграмма выбора: CSF или альтернатива

flowchart TD
  A[Нужна базовая защита сервера?] -->|Да| B{Вы в облаке?}
  B -->|Да| C[Используйте cloud security groups + CSF 'локально']
  B -->|Нет| D{Нужен простой интерфейс?}
  D -->|Да| E[UFW]
  D -->|Нет| F[CSF или прямой nftables/iptables]
  A -->|Нет| G[Аппаратный или сетевой брандмауэр]

Примеры команд для повседневных задач (cheat sheet)

  • Перезапуск CSF: sudo csf -r
  • Отключить CSF: sudo systemctl stop csf
  • Включить CSF: sudo systemctl start csf
  • Показать список блокировок: sudo csf -l
  • Найти IP в правилах: sudo csf -g 1.2.3.4

Частые ошибки и их исправления (кратко)

  • Ошибка: «Perl version mismatch» — обновите или переустановите Perl, затем переустановите CSF.
  • Ошибка: «Port blocked — I locked myself out» — подключитесь через консоль провайдера и удалите свой IP из csf.deny или добавьте в csf.allow.
  • Конфликты с UFW/Firewalld — отключите их перед установкой CSF.

Краткая сводка

Вы установили CSF, проверили его работу, внесли базовые правила и научились управлять белыми и чёрными списками. Далее рекомендуется автоматизировать конфигурацию, включить мониторинг и постепенно вводить продвинутые правила (CONNLIMIT, PORTFLOOD) с тестированием.

Если нужна помощь в автоматизации конфигурации (Ansible playbook, шаблоны), могу подготовить примерный набор задач для CI/CD.


Краткие полезные ссылки:

Пример вывода состояния CSF и LFD в терминале

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро