[ConfigServer Security & Firewall (CSF) это инструмент брандмауэра, который обеспечивает простой способ настройки параметров безопасности вашего сервера. В этом руководстве вы узнаете, как установить и настроить брандмауэр CSF на Ubuntu.
CSF предлагает различные функции для защиты вашего VPS. К ним относятся:
- Демон отказа аутентификации при входе в систему: CSF проверяет попытки несанкционированного доступа к вашему облачному серверу и позволяет определить желаемое действие, которое должно быть предпринято после указанного количества попыток. Эта функция поддерживает различные приложения и позволяет определять собственные файлы входа.
- Отслеживание процессов: CSF может отслеживать процессы, чтобы обнаружить подозрительные процессы или открытые сетевые порты и уведомить об этом системного администратора.
- Наблюдение за каталогами: CSF отслеживает соответствующие папки на предмет вредоносных скриптов и при их обнаружении уведомляет системного администратора.
- Служба сообщений: Включение этой функции предоставляет клиенту больше информации и может предотвратить разочарование в случае неудачного входа в систему. Однако это также облегчает злоумышленникам атаку на ваш VPS.
- Защита от переполнения портов: Эта настройка обеспечивает защиту от атак типа «переполнение порта», таких как атаки типа «отказ в обслуживании» (DoS), и позволяет указать количество разрешенных соединений на каждом порту в течение удобного для вас периода времени.
- Стук по порту: Эта функция позволяет клиентам устанавливать соединения без открытых портов и разрешает соединения с основными портами только после успешного выполнения последовательности port knocking.
- Защита лимита соединений: Эта функция ограничивает количество одновременных активных соединений с IP-адреса на каждый порт и может предотвратить злоупотребления на сервере.
- Перенаправление портов/IP-адресов: CSF может перенаправлять соединения с IP/портом на другой IP/порт.
- Интеграция пользовательского интерфейса: CSF предлагает интеграцию пользовательского интерфейса для cPanel и Webmin в дополнение к интерфейсу командной строки.
- Списки блокировки IP-адресов: Эта функция позволяет CSF автоматически загружать списки заблокированных IP-адресов из определенных вами источников.
Шаг 1: Обновление системы
Перед установкой любого нового программного обеспечения всегда полезно обновить системные пакеты. Выполните следующую команду, чтобы обновить систему Ubuntu:
$ sudo apt update
$ sudo apt upgrade
Шаг 2: Установите брандмауэр CSF
Когда система обновлена, можно приступать к установке CSF Firewall. Следующие шаги помогут вам справиться с этим процессом:
- Загрузите последнюю версию CSF Firewall с официального сайта, используя следующую команду:
$ wget https://download.configserver.com/csf.tgz
Чтобы загрузить последнюю версию CSF Firewall
- Распакуйте загруженный файл с помощью следующей команды:
$ tar -xzf csf.tgz
- Перейдите в каталог с извлеченным файлом:
$ cd csf
- Запустите сценарий установки:
$ sudo sh install.sh
- Проверьте установку, выполнив следующую команду:
$ sudo csf -v
Выполнив эти действия, вы успешно установили CSF Firewall на систему Ubuntu.
Шаг 3: Настройка дополнительных параметров
CSF предоставляет широкий спектр опций конфигурации, которые можно использовать для точной настройки брандмауэра в соответствии с вашими специфическими требованиями. Вот некоторые из наиболее часто используемых параметров, которые вы можете настроить.
ICMP_IN
Установка ICMP_IN в 1 разрешает входящие ICMP-запросы, такие как ping, на ваш сервер. Если вы предоставляете публичные услуги, рекомендуется разрешить ICMP-запросы, поскольку они могут быть использованы для проверки доступности ваших услуг. Установка ICMP_IN в 0 блокирует все входящие ICMP-запросы.
ICMP_IN_LIMIT
ICMP_IN_LIMIT задает количество входящих ICMP-запросов, разрешенных с одного IP-адреса за определенный промежуток времени. Обычно достаточно значения по умолчанию 1/с, но при необходимости его можно настроить.
DENY_IP_LIMIT
DENY_IP_LIMIT устанавливает максимальное количество заблокированных IP-адресов, которые CSF отслеживает. Рекомендуется ограничить количество заблокированных IP-адресов, так как слишком большое количество блоков может повлиять на производительность сервера.
DENY_TEMP_IP_LIMIT
DENY_TEMP_IP_LIMIT аналогичен DENY_IP_LIMIT, но применяется к временным блокам IP-адресов. Рекомендуется держать это значение ниже, чем DENY_IP_LIMIT.
ПАКЕТ_ФИЛЬТР
PACKET_FILTER — это мощная функция, которая отфильтровывает недействительные, нежелательные и незаконные пакеты до того, как они попадут на ваш сервер. Включение этой функции может повысить безопасность сервера, уменьшив количество потенциальных атак.
SYNFLOOD, SYN_FLOOD_RATE и SYN_FLOOD_BURST
Эти настройки обеспечивают защиту от атак типа SYN flood, которые могут замедлить работу или даже привести к краху вашего сервера. Включение этих параметров замедлит инициализацию каждого соединения, поэтому их следует включать только в том случае, если вы знаете, что ваш сервер подвергается атакам.
CONNLIMIT
CONNLIMIT устанавливает ограничения на количество одновременных активных соединений на определенных портах. Например, значение:
22;5;443;20
разрешает до 5 одновременных соединений на порту 22 и до 20 одновременных соединений на порту 443. Вы можете добавить больше портов, разделяя их запятыми.
PORTFLOOD
PORTFLOOD ограничивает количество соединений за временной интервал, в течение которого могут быть установлены новые соединения с определенными портами. Например, значение:
22;tcp;5;250
Заблокирует IP-адрес, если в течение 250 секунд будет установлено более 5 соединений на порт 22 по протоколу TCP. Блокировка будет снята по истечении 250 секунд после последнего пакета, отправленного клиентом на этот порт. Вы можете добавить больше портов, разделяя их запятыми, например, так:
port1;protocol1;connection_count1;time1,port2;protocol2;connection_count2;time2
Шаг 4: Настройка портов
Чтобы повысить безопасность вашего 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"
Эти порты используются различными службами, такими как FTP, SSH, SMTP, DNS, HTTP и другими. Возможно, вы используете не все эти службы, поэтому рекомендуется закрыть все неиспользуемые порты. Лучше всего удалить все номера портов из списка, а затем добавить только те, которые вам нужны.
Ниже приведены рекомендуемые наборы портов, которые следует открыть для определенных служб:
Для любого сервера:
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
Почтовый сервер:
TCP_IN: 25,110,143,587,993,995
TCP_OUT: 25,110
Для сервера MySQL (если требуется удаленный доступ):
TCP_IN: 3306
TCP_OUT: 3306
Шаг 5: Блокирование и разрешение IP-адресов
Блокирование и разрешение IP-адресов — одна из самых основных функций брандмауэра. Чтобы заблокировать или разрешить IP-адреса в брандмауэре CSF, вы можете отредактировать конфигурационные файлы csf.deny
и csf.allow
соответственно. Кроме того, вы можете исключить IP-адреса из фильтров брандмауэра, отредактировав csf.ignore
файл.
Блокирование IP-адресов
Чтобы заблокировать IP-адрес или диапазон, откройте окно csf.deny
файл с помощью текстового редактора, например nano:
$ sudo nano /etc/csf/csf.deny
Каждый IP-адрес или диапазон, который вы хотите заблокировать, должен быть добавлен в новую строку файла. Например, чтобы заблокировать IP-адрес 1.2.3.4 и диапазон IP-адресов 2.3.0.0/16, нужно добавить следующие строки:
1.2.3.4
2.3.0.0/16
IP-диапазоны представляются с помощью символа нотации CIDR.
Разрешение IP-адресов
Чтобы разрешить IP-адресу или диапазону обходить все блоки и фильтры, вы можете добавить его в список csf.allow
файл. Обратите внимание, что разрешенные IP-адреса будут разрешены, даже если они явно заблокированы в файле csf.deny
файле.
Чтобы разрешить IP-адрес или диапазон, откройте файл csf.allow
файл с помощью текстового редактора:
$ sudo nano /etc/csf/csf.allow
Каждый IP-адрес или диапазон, который вы хотите разрешить, должен быть добавлен в новую строку файла. Например, чтобы разрешить IP-адрес 1.2.3.4 и диапазон IP-адресов 2.3.0.0/16, нужно добавить следующие строки:
1.2.3.4
2.3.0.0/16
Игнорирование IP-адресов
Вы можете исключить IP-адреса из фильтров брандмауэра, добавив их в файл csf.ignore. IP-адреса, перечисленные в csf.ignore
будут обходить фильтры брандмауэра и могут быть заблокированы только в том случае, если они перечислены в csf.deny
файле.
Чтобы игнорировать IP-адрес или диапазон, откройте файл csf.ignore с помощью текстового редактора:
$ sudo nano /etc/csf/csf.ignore
Каждый IP-адрес или диапазон, который вы хотите игнорировать, должен быть добавлен в новую строку файла. Например, чтобы игнорировать IP-адрес 1.2.3.4 и диапазон IP-адресов 2.3.0.0/16, необходимо добавить следующие строки:
1.2.3.4
2.3.0.0/16
Перезапуск CSF
После редактирования любого из вышеперечисленных файлов необходимо перезапустить CSF, чтобы изменения вступили в силу. Перезапустить CSF можно с помощью следующей команды:
$ sudo csf -r
Это перезагрузит правила брандмауэра и применит все изменения, внесенные в файлы конфигурации.
Режим тестирования
По умолчанию CSF находится в тестовом режиме, что означает, что он не будет блокировать IP-адреса на постоянной основе. После того как вы убедитесь в правильности настроек, вам следует изменить параметр TESTING
на 0
:
TESTING = "0"
Тестирование конфигурации
После внесения изменений в csf.conf
файл, вы можете проверить конфигурацию, выполнив следующую команду:
$ sudo csf --check
Если в конфигурации будут обнаружены ошибки, CSF сообщит о них и предложит, как их исправить.
Перезапуск брандмауэра CSF
После внесения изменений в конфигурацию вы можете перезапустить брандмауэр CSF, выполнив следующую команду:
$ sudo csf -r
Заключение
В этом руководстве мы рассмотрели установку и настройку брандмауэра CSF на Ubuntu. Настроив брандмауэр CSF, вы сможете защитить свою систему Ubuntu и обеспечить пропуск только авторизованного трафика.