Как работать с UFW в Ubuntu

Что такое UFW

UFW или Uncomplicated Firewall — это приложение для управления брандмауэром на основе iptables в Ubuntu. UFW — это инструмент настройки брандмауэра по умолчанию для Ubuntu Linux, который предоставляет удобный способ настройки брандмауэра. Команда UFW такая же, как и английская, поэтому команды легко запомнить. Брандмауэр UFW поддерживает IPv4 и IPv6.

Как установить UFW

По умолчанию UFW уже должен быть установлен на Ubuntu 20.04. Вы можете проверить это с помощью команды:

which ufw
Как работать с UFW в Ubuntu

Как видим, у нас уже установлен UFW. Но если у вас он каким то образом отсутствует, вы можете установить его командой ниже:

apt install ufw
Как работать с UFW в Ubuntu

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

ufw enable
Как работать с UFW в Ubuntu

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

Основные команды в UFW

Команда «ufw enable» включит UFW с правилами по умолчанию. Вы можете убедиться, что UFW работает, введя эту команду:

Как работать с UFW в Ubuntu

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

ufw disable

Получим такой ответ:

Как работать с UFW в Ubuntu

Видим что UFW остановлен и выключен.

Как добавить UFW правило

UFW будет запрещать все входящие соединения после того, как вы его включите. Итак, первое, что вам нужно сделать, это разрешить SSH-доступ к серверу, если вы хотите управлять системой удаленно. Команда «ufw allow sshport» разрешает доступ по SSH, замените SSHPORT на порт службы SSH, порт SSH по умолчанию — 22.

ufw allow 22

И получаем такой результат:

root@firstbyte:~# ufw allow 22
Rule added
Rule added (v6)

Если вы хотите разрешить входящие соединения через порт 22 только для TCP, добавьте в конце команды «/tcp», как показано в следующем примере:

ufw allow 22/tcp

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

Эта команда откроет порт SSH по умолчанию:

ufw allow ssh

Теперь проверьте правило с помощью:

ufw status
Как работать с UFW в Ubuntu

Мы получим такой результат как указано выше.

Запретное правило в UFW

Команда «deny» работает аналогично команде «allow» и используется для закрытия порта в брандмауэре:

Запретить порт можно так:

ufw deny 80

Получаем такое результат:

Как работать с UFW в Ubuntu

Пример для «deny» с именем службы. В этом примере мы заблокируем http порт/80:

ufw deny http
Как работать с UFW в Ubuntu

Важно:

Все порты и имена их служб перечислены в файле «/etc/services».

Расширенные команды UFW

Теперь мы углубимся в синтаксис команды UFW, узнаем, как разрешить часть диапазонов (например, для пассивных портов FTP) и доступ только с одного IP-адреса или подсети.

  1. Разрешить диапазон портов

Вы можете разрешить диапазон портов в UFW. Некоторые службы, такие как FTP или IRC, используют ряд портов для связи со своими клиентами.

В этом примере мы разрешим диапазон портов от 6660 до 6670:

ufw allow 6660:6670/tcp
ufw allow 6660:6670/udp

Команда разрешит подключения к портам 6660-6670 по протоколам TCP и UDP.

  1. Разрешить определенный IP-адрес

Вы можете добавить определенный IP-адрес, чтобы разрешить доступ ко всем службам, добавив опцию «from». Это например полезно, если у вас есть статический IP-адрес дома или в офисе и вы хотите разрешить оттуда доступ ко всем службам на вашем сервере. Команда ниже позволит IP 10.10.10.10 получить доступ ко всем портам на сервере:

ufw allow from 10.10.10.10
  1. Разрешить подсеть

Если вы хотите разрешить все IP-адреса в вашей подсети, вы можете добавить IP-подсеть (диапазон IP-адресов) в команду UFW следующим образом:

ufw allow from 10.10.10.0/24

Результат:

WARN: Rule changed after normalization
Rule added
  1. Разрешить доступ с определенного IP-адреса к одному порту

Если вы хотите разрешать доступ к одному порту только с определенного IP-адреса, вы можете комбинировать команды UFW, которые мы изучили выше.

Например, только IP-адрес 10.10.10.10 может получить доступ к SSH-порту 22 TCP, а другие IP-адреса будут отклонены с этого порта, вы можете использовать следующую команду:

ufw allow from 10.10.10.10 proto tcp to any port 22

Результат:

Rule added
  1. Разрешить весь входящий трафик на определенный порт

Если вы хотите разрешить весь трафик через порт 80, вы можете использовать эту команду:

ufw allow to any port 80

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

В этом разделе вы узнаете, как удалить правило, сохраненное в UFW. Вы можете использовать команду «delete», чтобы удалить правило ufw. Пожалуйста, введите команду «ufw delete», а затем выберите вариант, который вы хотите удалить, разрешить или запретить.

Вот некоторые примеры:

Удаление разрешающего SSH-правила с именем службы:

ufw delete allow ssh

Результат:

Rule deleted
Rule deleted (v6)

Эта команда удалит правило «allow ssh». Будьте осторожны, не блокируйте себя от сервера!

Удалите правило «deny» на порту 80:

ufw delete deny 80

Результат:

Rule deleted
Rule deleted (v6)

Если у вас есть сложное правило, есть простой способ идентифицировать и удалить правило по его идентификатору правила. Выполните следующую команду, чтобы получить список всех правил с их идентификаторами:

ufw status numbered
Как работать с UFW в Ubuntu

Теперь удалите правило SSH для IPv6 только по номеру правила:

ufw delete 9

Результат:

Deleting:
allow 22/tcp
Proceed with operation (y|n)? y
Rule deleted (v6)

Отключить и сбросить настройки UFW

Если вы хотите отключить UFW, не удаляя свои правила, вы можете использовать команду «disable»:

ufw disable

Результат:

Firewall stopped and disabled on system startup
Как работать с UFW в Ubuntu

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

ufw reset

Результат:

Resetting all rules to installed defaults. This may disrupt existing ssh
connections. Proceed with operation (y|n)? y
Backing up 'user.rules' to '/etc/ufw/user.rules.20230426_231930'
Backing up 'before.rules' to '/etc/ufw/before.rules.20230426_231930'
Backing up 'after.rules' to '/etc/ufw/after.rules.20230426_231930'
Backing up 'user6.rules' to '/etc/ufw/user6.rules.20230426_231930'
Backing up 'before6.rules' to '/etc/ufw/before6.rules.20230426_231930'
Backing up 'after6.rules' to '/etc/ufw/after6.rules.20230426_231930'

Заключение

UFW (Uncomplicated Firewall) — это инструмент настройки брандмауэра по умолчанию в Ubuntu. Этот учебник UFW представляет собой руководство по началу работы с этим прекрасным инструментом брандмауэра. Если вы хотите узнать больше о UFW, вы можете перейти на вики Ubuntu или на ufw-manpage.