metalnikovg.ru
MetalnikovG.ru

UFW - настройка брандмауэра в Ubuntu и Debian

Опубликовано
Опубликовано
//
4 мин. чтения

Введение

UFW (Uncomplicated Firewall) — удобный инструмент для управления политиками безопасности межсетевого экран на Ubuntu и Debian. Он позволяет настраивать и контролировать доступ к вашему серверу, обеспечивая защиту от несанкционированного доступа и атак. Вот основные команды и их объяснения для работы с UFW.

Установка UFW

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

sudo apt install ufw

Включение и отключение UFW

Перед активацией UFW важно настроить правила для доступа, особенно если сервер подключен через SSH. Включить UFW можно следующей командой:

sudo ufw enable

WARNING

Проведите начальную настройку перед включением UFW. В частности, должен быть доступен SSH(22 порт). В ином случае вы рискуете потерять доступ к серверу.

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

sudo ufw disable

CAUTION

Отключение UFW временно убирает все ограничения, поэтому убедитесь, что вы знаете, зачем это делаете.

Проверка текущего состояния и правил UFW

Для проверки статуса UFW и всех активных правил используйте команду:

sudo ufw status verbose

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

По умолчанию UFW отключен, так что вы должны увидеть Status: inactive

Когда UFW включен, то в консоли будут перечисляться заданные правила.

Настройка базовых правил

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

sudo ufw default deny incoming
sudo ufw default allow outgoing

Открытие портов

Чтобы открыть порт для определенного сервиса, например, для SSH или HTTP, можно использовать cледующие команды.

Открываем TCP порт 2222 для SSH:

sudo ufw allow 2222/tcp

Открываем 80 порт для HTTP подключений:

sudo ufw allow http

Открытие диапазонов портов

sudo ufw allow 3000:3100

Также вы можете указывать конкретный протокол:

sudo ufw allow 3000:3100/tcp sudo ufw allow 3000:3100/udp

Разрешение доступа по IP-адресу

Иногда требуется разрешить доступ к серверу только с определенного IP-адреса. Для этого можно использовать следующую команду:

sudo ufw allow from 192.168.78.100

Это разрешит подключение с IP 192.168.78.100 ко всем портам. Вы также можете указать конкретный порт, добавив to any port 22 в команду:

sudo ufw allow from 192.168.78.100 to any port 22

Аналогичным образом вы можете работать с диапазонами IP-адресов:

sudo ufw allow from 192.168.78.100/24
sudo ufw allow from 192.168.78.100/24 to any port 22

Блокировка портов

Закрываем порт стандартный порт 22 для SSH:

sudo ufw deny 22/tcp

Если вы хотите запретить все соединения с 192.168.78.100, воспользуйтесь следующей командой:

sudo ufw deny from 192.168.78.100

Удаление правил

Существует два способа удаления правил. Первый — по номеру правила. Выполните команду:

sudo ufw status numbered

После этого выполните команду ufw delete и укажите номер правила, которое следует удалить:

sudo ufw delete 2

Второй способ заключается в том, что после команды ufw delete используется фактическое правило, например:

sudo ufw delete allow http

или:

sudo ufw delete allow 80

Лимитирование подключений

Для предотвращения атак brute-force на определенные сервисы, UFW позволяет ограничить количество подключений. Например, для ограничения подключений к SSH можно использовать следующую команду:

sudo ufw limit 22/tcp

Эта команда разрешает до 6 попыток подключения за 30 секунд с одного IP-адреса. Если лимит превышен, IP временно блокируется.

Перезапуск UFW

Если вы хотите перезапустить UFW и применить все новые правила, используйте:

sudo ufw reload

Сброс настроек UFW

Если вам нужно сбросить все настройки UFW и начать настройку заново, выполните:

sudo ufw reset

WARNING

Эта команда удаляет все текущие правила, поэтому используйте ее осторожно.

Логи

В UFW есть опция сохранения логов — журнал событий. Для запуска, используйте команду:

sudo ufw logging on

UFW поддерживает несколько уровней логгирования:

  • off — отключен.
  • low — регистрирует все заблокированные пакеты, не соответствующие заданной политике (с ограничением скорости), а также пакеты, соответствующие зарегистрированным правилам.
  • medium — все то, что при значении low. Плюс все разрешенные пакеты, не соответствующие заданной политике, все недопустимые пакеты, и все новые соединения. Все записи ведутся с ограничением скорости.
  • high — работает также как и medium. Плюс все пакеты с ограничением скорости.
  • full — также как и high, но без ограниения скорости.

Чтобы задать уровень, укажите его как параметр:

sudo ufw logging high

По умолчанию используется уровень low.

Для просмотра файлов относящихся с логам ufw используйте команду:

ls /var/log/ufw*

Заключение

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