SCROLL
Среднее время на прочтение: 1 мин.

Настройка брандмауэра с помощью UFW

Uncomplicated Firewall (UFW) — это упрощенный интерфейс управления брандмауэром, который скрывает сложность технологий фильтрации пакетов нижнего уровня, таких как iptables и uftables. Разберем, как настроить брандмауэр с помощью UFW на сервере Linux.

Перед включением UFW нужно убедиться, что брандмауэр настроен на разрешение подключения через SSH. Начнем с установки политик по умолчанию.

Политики по умолчанию

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

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

ufw default deny incoming
ufw default allow outgoing

Политики по умолчанию — это базовый уровень контроля, который действует на весь трафик, не подпадающий под пользовательские правила.

Разрешение SSH-соединений

Чтобы настроить сервер на разрешение входящих SSH-соединений, используем команду:

ufw allow ssh
UFW знает, какой порт разрешить ssh, потому что он указан как служба в файле /etc/services.

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

ufw allow 22

Если служба SSH настроена на использование другого порта, то необходимо указать соответствующий порт. Например, SSH-сервер прослушивает порт 2222, используем следующую команду, чтобы разрешить соединения на этом порту:

ufw allow 2222

Когда брандмауэр настроен на разрешение входящих SSH-соединений, можем включить его.

Включение UFW

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

ufw enable

При включении получим предупреждение о том, что эта команда может нарушить существующие SSH-соединения. Но так как мы уже настроили правило брандмауэра, разрешающее SSH-соединения, поэтому можно продолжить, нажимаем ENTER.

После активации брандмауэра, чтобы увидеть установленные правила, выполните команду ufw status verbose.

Разрешение других соединений

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

Диапазоны портов

С помощью UFW можно задавать диапазоны портов. Например, чтобы разрешить соединения X11, которые используют порты 6000-6007, выполните команду:

ufw allow 6000:6007/tcp
ufw allow 6000:6007/udp

При указании диапазонов портов с помощью UFW необходимо указать протокол (tcp или udp), к которому должны применяться правила.

Конкретные IP-адреса

Например, если хотим разрешить подключения с определенного IP-адреса, например с IP-адреса 201.202.203.204, нужно указать from, а затем IP-адрес:

ufw allow from 201.202.203.204

Так же можем указать конкретный порт, к которому разрешено подключаться IP-адресу, добавив to any port, за которым следует номер порта. Например, если мы хотим разрешить 201.202.203.204 подключаться к порту 22, используем эту команду:

ufw allow from 201.202.203.204 to any port 22

Подсети

Если хотим разрешить подсеть IP-адресов, можем сделать это, используя обозначение CIDR для указания маски сети. Например, мы хотим разрешить все IP-адреса в диапазоне от 201.202.203.1 до 201.202.203.254, используем эту команду:

ufw allow 201.202.203.0/24

Аналогичным образом вы можете указать порт назначения, к которому разрешено подключаться подсети 201.202.203.0/24 подключаться к порту 22.

ufw allow from 201.202.203.0/24 to any port 22

Подключение к определенному сетевому интерфейсу

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

Например, мы хотим разрешить HTTP-трафик (порт 443) на сетевой интерфейс ens192, используем следующую команду:

ufw allow in on ens192 to any port 443

Отказ в соединениях

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

Например, чтобы запретить HTTP-соединения, используем эту команду:

ufw deny http

Если нужно запретить все соединения с 201.202.203.204, используем эту команду:

ufw deny from 201.202.203.204

Изменить порядок правил

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

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

Вариант #1

С использованием параметра insert. Например, чтобы переместить правило, разрешающее порт 443 (HTTPS), перед портом 80, можно сначала удалить его:

ufw delete allow 443

Затем добавить снова с нужным порядком:

ufw insert 1 allow 443

Вариант #2

Можно также использовать параметр after или before для указания позиции правила относительно другого правила. Если нужно поместить правило разрешения порта 80 непосредственно после правила с номером 1, используем команду:

ufw insert after 1 allow 80

Если нужно поместит правило разрешения порта 443 непосредственно перед правилом с номером 2, используем команду:

ufw insert before 2 allow 443

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

Знание того, как удалять правила брандмауэра, так же важно, как и знание того, как их создавать. Есть два разных способа указать, какие правила удалять: по номеру правила или по самому правилу.

По номеру правила

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

ufw status numbered

Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22                         ALLOW IN    15.15.15.0/24
[ 2] 80                         ALLOW IN    Anywhere

К примеру мы хотим удалить правило 2, разрешающее соединения через порт 80, используем эту команду:

ufw delete 2
Обратите внимание, что если у вас включен IPv6, вам нужно будет удалить и соответствующее правило IPv6.

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

Проверить состояние UFW можно командой:

ufw status verbose

Если UFW отключен, что происходит по умолчанию, вы увидите что-то вроде этого:

Status: inactive

Если UFW активен, вывод может выглядеть примерно так:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere

Отключение или сброс UFW

Если необходимо отключить UFW, это можно сделать с помощью команды:

ufw disable

Все правила, которые были создали с помощью UFW, больше не будут активны. Для включения обратно, выполните команду ufw enable.

Если нужно сбросить все настроенные правила UFW и по новой настроить их, то сделать это можно командой reset:

ufw reset

Это приведет к отключению UFW и удалению всех ранее заданных правил. Имейте в виду, что политики по умолчанию не изменятся на свои первоначальные настройки, если вы изменили их в какой-то момент.

 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ

Обсуждение

0 комментариев

Нет комментариев.