Установка CSF на Linux с cPanel

Установка CSF на Linux с cPanel

Config Server Firewall — популярный Linux брандмауэр пакет безопасности.  Его легко установить и он гибкий в настройке и так же безопасный с дополнительными проверками.
Установка CSF включает в себя панель управления пользовательского интерфейса, доступного по WHM и процесс-демон, который работает периодически и сканирует все записи файлов журнала (логи) и ищет попытки входа в систему, которые постоянно терпят неудачи в течение короткого периода времени. Такие попытки часто называют «нападения грубой силы » и демон реагирует очень быстро, он блокирует IP-адрес.

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

Это руководство «Установка CSF на Linux с cPanel» написано для ОС Linux, таких как Debian и Ubuntu или CentOS.

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

Если ваш VPS настроен на IPv6, пожалуйста, не забудьте обеспечить ваши сетевые интерфейсы IPv4 и IPv6 с помощью соответствующих утилит. Для получения дополнительной информации о средствах IPv6 обратитесь к этому руководству: Как настроить инструменты использовать IPv6 на VPS Linux

The following applications are supported by this feature:

  • Courier imap, Dovecot, uw-imap, Kerio.
  • openSSH.
  • cPanel, WHM, Webmail (только серверы с cPanel).
  • Pure-ftpd, vsftpd, Proftpd.
  • Password protected web pages (htpasswd).
  • Mod_security failures (v1 and v2).
  • Suhosin failures.
  • Exim SMTP AUTH.

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

Tracking process

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

Observation catalogs

Каталог просмотра для наблюдения в / Temp и другие соответствующие папки на наличие вредоносных скриптов, и отправляет по электронной почте системному администратору, если оно обнаружено.

Messaging Service

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

Port flood protection

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

Port knocking

Сервер позволяет клиентам подключаться к основным портам только после успешного «стука» в порт (его последовательного стука). Вы можете найти это полезным, если вы предлагаете услуги, которые доступны только ограниченной аудитории.

Connection limit protection

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

Port/IP address redirection

CSF может быть сконфигурирован для перенаправления соединений к IP /порту в другой IP / порт.

Примечание: После перенаправления, адрес источника клиента будет IP-адрес сервера. Это не соответствует трансляции сетевых адресов (NAT).

UI integration

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

IP block lists

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

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

# ufw disable

Так, войдите на сервер с помощью SSH и давайте начнем установку CSF, но для начала, скачаем данный архив:

# cd /usr/local/src/
# wget http://configserver.com/free/csf.tgz

Распакуем данный архив и перейдем в папку, после чего запустим скрипт установки:

# tar xfz csf.tgz && cd csf && sh install.sh

Брандмауэр теперь установлен, но вы должны проверить, какие требуемые IPtables модули доступны:

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

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

Примечание: Ваш IP-адрес был добавлен в белый список. Кроме того, SSH порт был открыт автоматически, даже если он использует пользовательский порт. Межсетевой экран был также выполнен с возможностью testing mode enabled, это означает, что IPTables правила будут автоматически удалены пять минут после старта CSF. Это должно быть отключено, когда вы знаете, что ваша конфигурация работает, и вы не будете заблокированы.

Это создаст конфигурационный файл и добавит все необходимые услуги на хостинг. Давайте отключить режим тестирования, для этого нужно редактировать конфигурационный файл CSF. Откройте файл используя любой редактор (VI, nano, vim т.д.):

# vim /etc/csf/csf.conf

Изменяем параметр:
TESTING = "1"
на 
TESTING = "0"

Настройка портов

Меньший доступ к вашим 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: Post office protocol v3 (POP3)
  • Порт 113: Authentication service/identification protocol
  • Порт 123: Протокол сетевого времени (NTP)
  • Порт 143: Протокол доступа к сообщениям (IMAP)
  • Порт 443: Протокол передачи гипертекста по SSL/TLS (HTTPS)
  • Порт 465: URL Rendesvous Directory for SSM (Cisco)
  • Порт 587: E-mail message submission (SMTP)
  • Порт 993: Internet message access protocol over SSL (IMAPS)
  • Порт 995: Post office protocol 3 over TLS/SSL (POP3S)

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

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

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

Apache:

TCP_IN: 80,443

FTP сервер:

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

Mail сервер:

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 в Википедии. Вы должны открыть порты всех служб, которые вы используете.

Дополнительные настройки

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

ICMP_IN Установка ICMP_IN 1 позволяет включить пинг на сервер и 0 заблокировать такие запросы. Если Вы принимаете какие-либо хостинг услуги, рекомендуется разрешить  запросы ICMP, так как они могут быть использованы для определения доступности сервера.

ICMP_IN_LIMIT Устанавливает количество ICMP (ping) запросов, разрешенных с одного IP-адреса в течение определенного периода времени. Там обычно нет необходимости изменять значение по умолчанию (1 / с)

DENY_IP_LIMIT Устанавливает количество заблокированных IP-адресов которые CSF отслеживает. Рекомендуется ограничить число запрещенных IP-адресов, как имеющие слишком много блоков может замедлить производительность сервера.

DENY_TEMP_IP_LIMIT То же самое, но для временных IP-адресов блоков.

PACKET_FILTER Фильтр недействительных, нежелательных и нелегальных пакетов.

SYNFLOOD, SUNFLOOD_RATE and SYNFLOOD_BURST  Это обеспечивает защиту от атак переполнения SYN. Это замедляет инициализацию каждого соединения, поэтому можно включить только это, если вы знаете, что ваш сервер находится под атакой.

CONNLIMIT  Ограничивает число одновременных активных соединений на порт.

Значение:

22;5;443;20

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

PORTFLOOD Ограничивает количество соединений в интервале времени, новые соединения могут быть внесены в определенных портах.

Значение:

22;tcp;5;250

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

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

Дополнительные настройки

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

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

По завершению, перезапускаем CSF:

# csf -r

Теперь CSF установлен и готов к использованию. Вы можете просто управлять им с помощью интерфейса WHM/CPanel:

WHM > Config Security & Firewall.

Вы можете перейти на  «Check server security»- чтобы проверить безопасность сервера, страница следующая, «allow/block IP addresses» — чтобы заблокировать/заблокировать ИП, flush blocks — перезапустить блоки и многое другое.

Примеры.

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

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

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

# vim /etc/csf/csf.deny

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

154.23.31.44
22.123.0.0/16

Диапазоны IP представлены с использованием обозначений CIDR

Блокировка трафика на порту 80 от конкретного диапазона:

tcp|out|d=80|d=12.34.56.78/24 #csf.deny

Синтаксис для продвинутых правил:

tcp/udp|in/out|s/d=port|s/d=ip|u=uid

tcp/udp : EITHER tcp OR udp OR icmp protocol
in/out : EITHER incoming OR outgoing connections
s/d=port : EITHER source OR destination port number (or ICMP type)
(use a _ for a port range, e.g. 2000_3000)
s/d=ip : EITHER source OR destination IP address
u/g=UID : EITHER UID or GID of source packet, implies outgoing connections,
s/d=IP value is ignored

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

Если вы хотите добавить IP-адрес или диапазон в разрешенный диапазон, то вы должны добавить их в csf.allow файл. Разрешение IP-адресов работает аналогично примеру что выше:

# vim /etc/csf/csf.allow

Разрешить соединения через порт 443 для диапазона IP-адресов:

tcp|out|d=443|d=12.34.56.78/27 # csf.allow

Разрешить подключение по SSH для IP:

tcp|in|d=22|s=23.45.67.88 # csf.allow

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

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

# vim /etc/csf/csf.ignore

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

csf -r

Команды для csf

Основные команды CSF в брандмауэре из поз командной строки, в качестве альтернативы вы можете просмотреть параметры командной CSF строки с помощью:

# man CSF

или

# CSF -h

Для того чтобы добавить ваш IP адрес в «белый список» или список разрешенных хостов (allow list):

# csf -a 123.45.67.89

Для того чтобы заблокировать IP, используйте:

# csf -d 123.45.67.89

Для того чтобы разблокировать IP и удалить  его из /etc/csf/csf.deny используйте:

# csf -dr IP_address

Для того чтобы удалить и разблокировать все записи в /etc/csf/csf.deny

# csf -df

Чтобы удалить IP-адрес из временного IP бан-лист:

# csf -tr IP address

Чтобы очистить все IP-адреса из временных записей:

# csf -tf

Отображает текущего списока allow и deny с IP с их TTL и комментариями:

# csf -t

Отключить CSF и lfd:

# csf -x

Розрешить (включить) csf and lfd:

# csf -e

Запустить firewall правила:

# csf -s

Рестарт правил фаервола

# csf -r

Сброс/остановка  правил в firewall:

# csf -f

Поиск IP в списках:

# csf -g IP_address

Посмотреть прослушивающие порты для внешних подключений и кто работает на этих портах:

# csf -p

Отправить себе общую проверку безопасности сервера

# csf -m email_adress

На этом моя статья «Установка CSF на Linux с cPanel» подошла к завершению.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.