Настройка брандмауэра с помощью 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
разрешить 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
Проверка состояния и правил 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 и удалению всех ранее заданных правил. Имейте в виду, что политики по умолчанию не изменятся на свои первоначальные настройки, если вы изменили их в какой-то момент.
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Обсуждение
Нет комментариев.