Поиск по сайту:

Как установить и настроить брандмауэр сервера конфигурации (CSF) в Ubuntu


Введение

Config Server Firewall (или CSF) — это бесплатный расширенный брандмауэр для большинства дистрибутивов Linux и VPS на базе Linux. В дополнение к основной функциональности брандмауэра — фильтрации пакетов — CSF включает в себя другие функции безопасности, такие как вход в систему/вторжение/обнаружение флуда. CSF включает интеграцию пользовательского интерфейса для cPanel, DirectAdmin и Webmin, но в этом руководстве рассматривается только использование командной строки. CSF способен распознавать многие атаки, такие как сканирование портов, SYN-флуд и атаки методом подбора входа на многие службы. Он настроен на временную блокировку клиентов, которые обнаруживают, что они атакуют облачный сервер.

Полный список поддерживаемых операционных систем и функций можно найти на веб-сайте ConfigServer.

Это руководство написано для VPS на основе Debian, таких как Debian и Ubuntu. Команды следует выполнять с правами root, войдя в систему как root или инициировав корневую оболочку с помощью следующей команды, если установлен sudo:

sudo su

Примечание. В этом руководстве рассматривается безопасность IPv4. В Linux безопасность IPv6 поддерживается отдельно от IPv4. Например, \iptables\ поддерживает правила брандмауэра только для адресов IPv4, но у него есть аналог IPv6, называемый ip6tables\, который можно использовать для поддержки правил брандмауэра для сетевых адресов IPv6.

Если ваш VPS настроен для IPv6, не забудьте защитить сетевые интерфейсы IPv4 и IPv6 с помощью соответствующих инструментов. Дополнительные сведения об инструментах IPv6 см. в этом руководстве: How To Configure Tools for Use IPv6 on the Linux VPS

Функции

Config Server Firewall предлагает широкий спектр средств защиты для вашего VPS.

Демон отказа аутентификации при входе:

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

Эта функция поддерживает следующие приложения:

  • Курьер imap, Dovecot, uw-imap, Kerio
  • открытьSSH
  • cPanel, WHM, веб-почта (только для серверов cPanel)
  • Pure-ftpd, vsftpd, Proftpd
  • Веб-страницы, защищенные паролем (htpasswd)
  • Ошибки Mod_security (v1 и v2)
  • Ошибки Сухосин
  • АУТЕНТИФИКАЦИЯ SMTP Exim

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

Отслеживание процессов

CSF можно настроить на отслеживание процессов, чтобы обнаруживать подозрительные процессы или открытые сетевые порты и отправлять электронное письмо системному администратору, если таковые обнаружены. Это может помочь вам определить и остановить возможный эксплойт на вашем VPS.

Просмотр каталога

Наблюдение за каталогом отслеживает /temp и другие соответствующие папки на наличие вредоносных сценариев и отправляет электронное письмо системному администратору при их обнаружении.

Служба обмена сообщениями

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

Защита порта от наводнений

Этот параметр обеспечивает защиту от атак переполнения портов, таких как атаки типа «отказ в обслуживании» (DoS). Вы можете указать количество разрешенных соединений на каждом порту в течение периода времени по вашему вкусу. Рекомендуется включить эту функцию, поскольку она может помешать злоумышленнику принудительно отключить ваши службы. Вам следует обратить внимание на то, какие ограничения вы устанавливаете, так как слишком строгие настройки будут препятствовать соединениям с обычными клиентами. С другой стороны, слишком либеральные настройки могут позволить злоумышленнику добиться успеха в флуд-атаке.

Порт стучит

Стук портов позволяет клиентам устанавливать соединения с сервером без открытых портов. Сервер разрешает клиентам подключаться к основным портам только после успешной последовательности срабатывания порта. Это может оказаться полезным, если вы предлагаете услуги, доступные только ограниченной аудитории.

Защита лимита подключения

Эту функцию можно использовать для ограничения количества одновременных активных подключений с IP-адреса к каждому порту. При правильной настройке это может предотвратить злоупотребления на сервере, такие как DoS-атаки.

Перенаправление порта/IP-адреса

CSF можно настроить для перенаправления подключений к IP/порту на другой IP/порт. Примечание. После перенаправления исходным адресом клиента будет IP-адрес сервера. Это не эквивалент преобразования сетевых адресов (NAT).

Интеграция пользовательского интерфейса

В дополнение к интерфейсу командной строки CSF также предлагает интеграцию пользовательского интерфейса для cPanel и Webmin. Если вы не знакомы с командной строкой Linux, эта функция может оказаться вам полезной.

Списки заблокированных IP-адресов

Установка брандмауэра ConfigServer

Шаг 1: Загрузка

Брандмауэр Config Server в настоящее время недоступен в репозиториях Debian или Ubuntu, и его необходимо загрузить с веб-сайта ConfigServer.

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

Это загрузит CSF в ваш текущий рабочий каталог.

Шаг 2: Распаковка

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

tar -xzf csf.tgz

Шаг 3: Установка

Если вы используете другие сценарии настройки брандмауэра, такие как UFW, вам следует отключить его, прежде чем продолжить. Правила Iptables удаляются автоматически.

UFW можно отключить, выполнив следующую команду:

ufw disable

Теперь пришло время выполнить сценарий установки CSF.

cd csf
sh install.sh

Теперь брандмауэр установлен, но вы должны проверить, доступны ли необходимые модули iptables.

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

Брандмауэр будет работать, если не будет сообщено о фатальных ошибках.

Примечание. Если возможно, ваш IP-адрес был добавлен в белый список. Кроме того, порт SSH был открыт автоматически, даже если он использует пользовательский порт. Брандмауэр также был настроен на включение режима тестирования, что означает, что правила iptables будут автоматически удалены через пять минут после запуска CSF. Это следует отключить, если вы знаете, что ваша конфигурация работает, и вы не будете заблокированы.

Базовая конфигурация

CSF можно настроить, отредактировав его файл конфигурации csf.conf в /etc/csf:

nano /etc/csf/csf.conf

Изменения можно применить командой:

csf -r

Шаг 1: Настройка портов

Чем меньше доступ к вашему VPS, тем безопаснее ваш сервер. Однако не все порты могут быть закрыты, так как клиенты должны иметь возможность пользоваться вашими услугами.

По умолчанию открыты следующие порты:

TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"

TCP_OUT = "20,21,22,25,53,80,110,113,443"

UDP_IN = "20,21,53"

UDP_OUT = "20,21,53,113,123"

Сервисы, использующие открытые порты:

  • Порт 20: передача данных по FTP
  • Порт 21: управление FTP
  • Порт 22: безопасная оболочка (SSH)
  • Порт 25: простой протокол передачи почты (SMTP)
  • Порт 53: система доменных имен (DNS)
  • Порт 80: протокол передачи гипертекста (HTTP).
  • Порт 110: почтовый протокол v3 (POP3)
  • Порт 113: служба аутентификации/протокол идентификации
  • Порт 123: сетевой протокол времени (NTP)
  • Порт 143: протокол доступа к сообщениям в Интернете (IMAP)
  • Порт 443: протокол передачи гипертекста через SSL/TLS (HTTPS)
  • Порт 465: URL-адрес Rendesvous Directory для SSM (Cisco)
  • Порт 587: отправка сообщений электронной почты (SMTP)
  • Порт 993: протокол доступа к интернет-сообщениям через SSL (IMAPS)
  • Порт 995: почтовый протокол 3 через TLS/SSL (POP3S)

Возможно, вы не используете все эти службы, поэтому вы можете закрыть неиспользуемые порты. Я бы рекомендовал закрыть все порты (удалив номер порта из списка), а затем добавить нужные порты.

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

На любом сервере:

TCP_IN: 22,53
TCP_OUT: 22,53,80,113,443
UPD_IN: 53
UPD_OUT: 53,113,123

Апач:

TCP_IN: 80,443

FTP-сервер:

TCP_IN: 20,21
TCP_OUT: 20,21
UPD_IN: 20,21
UPD_OUT:20,21

Почтовый сервер:

TCP_IN: 25,110,143,587,993,995
TCP_OUT: 25,110

Сервер MySQL (если требуется удаленный доступ)

TCP_IN: 3306
TCP_OUT: 3306

Примечание. Если вы используете IPv6 для своих служб, вам также следует настроить TCP6_IN, TCP6_OUT, UPD6_IN и UPD6_OUT аналогично настройке портов IPv4 ранее.

Полный список портов TCP и UDP можно найти в Википедии. Вы должны открыть порты всех используемых вами сервисов.

Шаг 2: Дополнительные настройки

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

ICMP_IN

ICMP_IN_LIMIT

DENY_IP_LIMIT

DENY_TEMP_IP_LIMIT

ПАКЕТ_ФИЛЬТР

SYNFLOOD, SUNFLOOD_RATE и SYNFLOOD_BURST

КОННЛИМИТ

Ценить:

22;5;443;20

разрешит 5 одновременных подключений к порту 22 и 20 одновременных подключений к порту 443.

ПОРТФЛУД

Ценить:

22;tcp;5;250

ограничит блокировку IP-адреса, если на порту 22 будет установлено более 5 подключений с использованием протокола TCP в течение 250 секунд. Блокировка снимается по истечении 250 секунд после отправки последнего пакета клиентом на этот порт. Вы можете добавить больше портов, разделив их запятыми, как описано ниже.

port1;protocol1;connection_count1;time1,port2;protocol2;connection_count2;time2

Больше настроек

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

Однако если вы хотите настроить конфигурацию более подробно, прочтите комментарии в файле /etc/csf/csf.conf и отредактируйте их по своему усмотрению.

Шаг 3: Применение изменений

Всякий раз, когда вы изменяете настройки в csf.conf, вы должны сохранить файлы и перезапустить CSF, чтобы изменения вступили в силу.

Когда вы будете готовы с конфигурацией, закройте файл, нажав Ctrl + X. Когда вас спросят, сохранять изменения или нет, нажмите Y, чтобы сохранить изменения.

После этого следует применить изменения, перезапустив CSF командой:

csf -r

Если все прошло по плану, и вы все еще можете получить доступ к серверу, откройте файл конфигурации еще раз:

nano /etc/csf/csf.conf

и измените параметр TESTING в начале файла конфигурации на 0, как показано ниже:

TESTING = "0"

Сохраните файл и примените изменения с помощью команды:

csf -r

Блокировка и разрешение IP-адресов

Одной из самых основных функций брандмауэра является возможность блокировать определенные IP-адреса. Вы можете запретить (черный список), разрешить (белый список) или игнорировать IP-адреса, отредактировав файлы конфигурации csf.deny, csf.allow и csf.ignore.

Блокировка IP-адресов

Если вы хотите заблокировать IP-адрес или диапазон, откройте файл csf.deny.

nano /etc/csf/csf.deny

Все заблокированные IP-адреса или диапазоны резервируются одной строкой в файле csf.deny. Если вы хотите заблокировать IP-адрес 1.2.3.4, а также диапазон IP-адресов 2.3.*.*, вы должны добавить в файл следующие строки:

1.2.3.4 2.3.0.0/16

Диапазоны IP-адресов представлены с использованием нотации CIDR.

Разрешение IP-адресов

Если вы хотите, чтобы IP-адрес или диапазон были исключены из всех блоков и фильтров, вы можете добавить их в файл csf.allow. Обратите внимание, что разрешенные IP-адреса разрешены, даже если они явно заблокированы в файле csf.deny.

Разрешение IP-адресов работает аналогично их блокировке. Единственное отличие состоит в том, что вы должны редактировать /etc/csf/csf.allow вместо csf.deny.

nano /etc/csf/csf.allow

Игнорирование IP-адресов

CSF также предлагает возможность исключать IP-адреса из фильтров брандмауэра. IP-адреса в csf.ignore будут обходить фильтры брандмауэра и могут быть заблокированы только в том случае, если они указаны в файле csf.deny.

nano /etc/csf/csf.ignore

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

csf -r