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