Как установить и настроить брандмауэр (firewall) UFW на Debian
Раздел(ы): GNU Linux - CentOS / Debian, Вебмастеру, Программное обеспечение
Просмотры: 650
Комментарии: 0
Первое правило сетевой безопасности для параноиков — по-умолчанию закрыть всё и открывать избранное при необходимости. Это как с входной дверью в квартиру, даже если вы дома — закройте дверь на замок (засов).
В этой статье я расскажу, как установить и настроить брандмауэр (firewall) UFW в операционной системе Debian Linux.
Что такое UFW
UFW (Uncomplicated Firewall) является популярным и простым в использовании инструментом командной строки для настройки и управления брандмауэром в дистрибутивах Ubuntu и Debian.
Установка UFW Firewall в Debian
UFW (Uncomplicated Firewall) в Debian, как правило, установлен по умолчанию, но если его нет, то установите UFW с помощью следующей команды в консоли:
# apt install ufw
Проверка статуса UFW
Проверить работает UFW или нет можно следующей командой
# ufw status verbose
Сразу после установки UFW отключен, поэтому вы должны увидеть что-то подобное:
Status: inactive
Первичные минимальные настройки UFW
Если вы подключились к серверу по SSH, то первым делом создайте правило разрешающее такое подключение:
# ufw allow ssh
Если для SSH вы используете нестандартный порт, например 3322, то укажите его вместо названия сервиса:
# ufw allow 3322
Далее следует заблокировать входящий и маршрутизируемый трафик и разрешить исходящие запросы.
# ufw default deny incoming # ufw default allow outgoing
и включить UFW.
Запуск и остановка UFW
Для запуска UFW, используйте следующую команду:
# ufw enable
Чтобы выключить UFW введите команду:
# ufw disable
Это отключить фаервол и удалить его из автозапуска.
Настройка правил UFW
Для разрешения подключения по определенному порту:
# ufw allow 80
С указанием протокола:
Для DNS запросов.
# ufw allow 53/udp
Для FTP сервера.
# ufw allow 21/tcp
Добавление диапазонов портов
При необходимости можно добавит целый диапазон портов и протоколов для них:
# ufw allow 3000:3100 # ufw allow 3200:3300/tcp # ufw allow 3400:3500/udp
Работа с IP адресами
Вы можете разрешить доступ к серверу с определенного адреса по всем портам:
# ufw allow from 987.65.43.21
Либо (для безопасности) лишь к конкретному порту (например FTP):
# ufw allow from 987.65.43.21 to any port 21
Аналогичным образом вы можете работать с диапазонами IP-адресов используя префикс маски сети:
# ufw allow from 987.65.43.21/27 # ufw allow from 987.65.43.21/27 to any port 21
Определение сетевых интерфейсов
Правила можно написать для конкретных сетевых интерфейсов:
# ufw allow in on eth32 to any port 22
Это правило разрешит запросы с сетевого интерфейса eth32 по 22 порту.
Запреты
Для описания запретов используем аналогичный синтаксис, только вместо allow
используйте deny
, например запретить HTTP-соединения:
# ufw deny http
Ограничить доступ с определенного IP адреса:
# ufw deny from 987.65.43.21
и так далее с указанием протоколов, диапазонов портов и префиксов сетей.
Удаление правил
Правила можно не только добавлять, но и удалять :-). Есть два основных метода: первый — по номеру правила, второй — по указанию самого правила. Рассмотрим оба варианта.
Первый способ удаления правил UFW
Чтобы узнать под какими номерами находятся введенные вами правила UFW используйте следующую команду:
# ufw status numbered
Вы должны увидеть список правил с указанием их порядковых номеров, например:
Status: active To Action From -- ------ ---- [ 1] 22 ALLOW IN Anywhere [ 2] 80 ALLOW IN Anywhere [ 3] 22 (v6) ALLOW IN Anywhere (v6) [ 4] 80 (v6) ALLOW IN Anywhere (v6)
Чтобы удалить правило номер 3 (доступ к 22 порту с использованием протокола IPv6) выполните команду:
# ufw delete 3
Обратите внимание на то, что при удалении правила номер 3 правило номер 4 переместится на третью строчку (станет новым правилом номер 3) и команда ufw status numbered
выдаст уже такой результат:
Status: active To Action From -- ------ ---- [ 1] 22 ALLOW IN Anywhere [ 2] 80 ALLOW IN Anywhere [ 3] 80 (v6) ALLOW IN Anywhere (v6)
Второй способ удаления правил UFW
Второй способ заключается в том, что после команды ufw delete
нужно указать само правило, например:
# ufw delete allow 80
Сброс всех настроек UFW
Иногда проще (быстрее) сбросить настройки, удалить все правила и начать всё с нуля. В этом поможет следующая команда:
# ufw reset
В результате ее выполнения все правила будут отключены и удалены. И можно приступить к прочтению данной статьи с самого начала.
Постскриптум
При написании статьи я использовал виртуальный сервер от VDSINA. Все описанные в статье рекомендации, команды и настройки были проверены на дистрибутиве Debian 12.
Абсолютное большинство инструкций в интернете в той или иной степени являются вольным переводом и пересказом официальной документации, а так же полным или частичным копированием, нередко неправильной и с ошибками, информации с других ресурсов. Эта статья может вызвать у вас такое же впечатление.
Провожу эксперимент: человек (я) против искусственого интеллекта. С помощью нейросети GigaChat по запросу «Как установить и настроить брандмауэр (firewall) UFW на Debian» была подготовлена альтернативная статья — https://moonback.ru/page/gigachat-ufw-debian. Проверим какая из статей будет пользоваться большей популярностью у посетителей.
Благодарности
При написании статьи были использованы следующие источники: