ConfigServer Security and Firewall (CSF) — это свободное программное обеспечение с открытым кодом, являющееся файерволом и имеющее достаточно широкие функциональные возможности по сравнению с другими подобными решениями.

Также CSF интегрирован в такие панели управления VDS хостингом, как cPanel и DirectAdmin. Поэтому после установки настраивать CSF можно будет прямо из этих панелей управления.

Установка CSF выполняется в несколько шагов, описанных ниже:

Содержание

  1. Проверка совместимости с ОС
  2. Установка зависимостей
  3. Установка CSF
  4. Конфигурирование CSF
  5. Запуск CSF
  6. Дополнительное конфигурирование CSF
  7. Список базовых параметров запуска csf

Проверка совместимости с ОС

Убедитесь, что операционная система, установленная на VPS, поддерживается данным продуктом. ConfigServer Security and Firewall поддерживает работу в следующих ОС:

  • CentOS 3 и выше
  • Fedora 1 и выше
  • Debian 3.1 и выше
  • Ubuntu 6.06 LTS и выше

Полный список поддерживаемых ОС можно посмотреть на официальном сайте разработчика configserver.com.

Установка зависимостей

Подключитесь по SSH с правами суперпользователя (root). Для работы CSF необходим Perl, а также библиотека Time/HiRes. Если эти пакеты не установлены, установщик CSF выведет ошибку. Для установки этих пакетов введите следующие команды:

Perl:

Для Fedora/CentOS:

yum install perl-libwww-perl

Для Debian/Ubuntu:

apt-get install libwww-perl

Time/HiRes:

Для Fedora/CentOS:

yum install perl-Time-HiRes

Для Debian/Ubuntu:

perl -e "use Time::HiRes"

Установка CSF

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

  • Удаляем файл с именем csf.tgz, если такой есть
rm -fv csf.tgz 
  • Загружаем архив
wget https://download.configserver.com/csf.tgz
  • Распаковываем архив
tar -xzf csf.tgz
  • Заходим в распакованную директорию
cd csf
  • Запускаем установочный скрипт
sh install.sh

Установка происходит в автоматическим режиме. После её завершения необходимо проверить, имеются ли на VPS требуемые модули IPTables. Для этого введите:

perl /etc/csf/csftest.pl

Если указанная команда не даст результатов, то вместо неё введите указанную ниже:

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

Результат выполнения команды должен быть примерно следующим:

Testing ip_tables/iptable_filter...OK
Testing ipt_LOG...OK
Testing ipt_multiport/xt_multiport...OK
Testing ipt_REJECT...OK
Testing ipt_state/xt_state...OK
Testing ipt_limit/xt_limit...OK
Testing ipt_recent...OK
Testing ipt_owner/xt_owner...OK
Testing iptable_nat/ipt_REDIRECT...OK
RESULT: csf should function on this server

Обычно, указанные в выводе модули установлены на VPS по умолчанию. Если какой-либо из нужных модулей отсутствует, результаты теста об этом сообщат, после чего необходимо будет произвести установку указанных модулей, чтобы функциональность CSF не была ограничена.

Также обратите внимание, что если до установки ConfigServer Security and Firewall вы использовали другие скрипты IPtables (например, AFD или BFD), вам необходимо будет удалить их, так как они будут конфликтовать с CSF, что приведет к сбоям в работе программы. Это можно сделать с помощью команды:

sh /usr/local/csf/bin/remove_apf_bfd.sh

или:

sh /tmp/csf/bin/remove_apf_bfd.sh

или:

sh disable_apf_bfd.sh

Если при выполнении этих утилит будет выводиться ошибка о том, что указанный файл не был найден, значит описанные выше скрипты не были ранее установлены.

На этом установка завершена.

Конфигурирование CSF

После установки ConfigServer Security and Firewall работает в тестовом режиме, который рекомендуется отключать только после того как будет отредактирован конфигурационный файл /etc/csf/csf.conf согласно вашим требованиям.

Открыть конфигурационный файл можно любым установленным на сервере текстовым редактором, например, nano:

nano /etc/csf/csf.conf

В конфигурационном файле необходимо как минимум убедиться в том, что все необходимые для работы TCP и UDP порты открыты. Пример таких параметров в конфигурационном файле может быть следующим:

# Allow incoming TCP ports
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"

# Allow outgoing TCP ports
TCP_OUT = "20,21,22,25,53,80,110,113,443"

# Allow incoming UDP ports
UDP_IN = "20,21,53"

# Allow outgoing UDP ports
# To allow outgoing traceroute add 33434:33523 to this list
UDP_OUT = "20,21,53,113,123"

Все остальные параметры конфигурационного файла вы можете изменить на своё усмотрение. По завершении настройки необходимо выключить тестовый режим и сохранить изменения.

Отключение тестового режима выполняется путем изменения значения параметра TESTING в конфигурационном файле, а именно необходимо значение 1 изменить на 0. После этого можно сохранить изменения. В случае с редактором nano сохранение выполняется сочетанием клавиш Ctrl + O и затем Enter.

Запуск CSF

Запустить CSF можно следующими командами:

csf –s

Если же Вы проводили настройки после запуска CSF, перезагрузите его, чтобы изменения вступили в силу командой:

csf –r

Для того, чтобы CSF работал и после перезагрузки системы, нужно добавить его в автозагрузку. Это можно сделать следующими командами:

CentOS 6.*:

chkconfig --level 235 csf on

CentOS 7 / Fedora:

systemctl enable csf.service

Debian / Ubuntu:

update-rc.d csf defaults

На этом установка CSF завершена.

Дополнительное конфигурирование CSF

Помимо основного конфигурационного файла csf.conf есть возможность добавить в черный, белый списки или список игнорирования. Имена файлов следующие:

csf.allow – «белый» список IP и CIDR (подсетей) адресов.

csf.deny – «черный» список IP и CIDR адресов.

csf.ignore – список IP и CIDR адресов, которые не подлежат проверке и не будут блокироваться файерволом.

csf.*ignore – различные списки игнорирования файлов, пользователей, IP адресов, которые файервол не будет блокировать и проверять.

Каждый из указанных файлов содержит в себе доступное описание того, какие возможности в нем предоставлены и как с ними работать.

Список базовых параметров запуска csf

Ниже описанные параметры используются в командной строке следующим образом:

csf –параметр

Полную справку по CSF можно получить командой csf -h или man csf

ПараметрОписание
-hПоказать справочную информацию
-lПоказать список правил для IPv4 адресов
-l6Показать список правил для IPv6 адресов
-sАктивация правил файервола
-fПрекращение действий правил файервола
-rПерезапуск правил
-aДобавить IP адрес в белый список /etc/csf/csf.allow
-arУбрать IP из белого списка /etc/csf/csf.allow и удалить правило
-dДобавить IP адрес в черный список /etc/csf/csf.deny
-drУбрать IP из черного списка /etc/csf/csf.deny и удалить правило
-dfУдалить и разблокировать все записи из файла /etc/csf/csf.deny
-gПоиск существующих IPv4 и IPv6 правил по IP, CIDR или номеру порта
-cПроверить наличие обновлений для csf, но не устанавливать их
-uПроверить наличие обновлений и если есть – установить
-xДеактивировать csf и lfd
-eАктивировать csf и lfd
-vПоказать версию CSF