Использование утилиты UFW на Linux

В инструкции описаны основы работы с утилитой ufw на виртуальных серверах под управлением Linux.

Что это такое?

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

Первоначальные требования

Для того чтобы выполнить настройку firewall с помощью ufw необходимо подключиться к серверу с правами суперпользователя, о том как разрешить команду sudo для пользователей читайте в нашей инструкции.

На наших VPS по умолчанию включен iptables, крайне не рекомендуется использовать одновременно два инструмента для настройки firewall во избежание конфликта правил. В случае, если у вас одновременно работает и iptables, и ufw, то будет применено последнее созданное правило.

Установка и проверка статуса

По умолчанию, на наших виртуальных серверах ufw уже установлена, если по каким-то причинам требуется установка, то сделать это можно с помощью вашего пакетного менеджера:

Проверить текущий статус и вывести все текущие правила можно с помощью следующей команды:

Например, в выключенном состоянии вы увидите следующее сообщение:

Включить firewall можно с помощью следующей команды:

В диалоговом окне необходимо ответить на вопрос, при использовании нашей инфраструктуры соединение не пропадет, если вы ранее не отключили iptables:

Примечание: если при настройке Firewall у вас все-таки пропало соединение с сервером, то подключитесь к нему через web-консоль в панели управления.

В результате ufw будет активен:

Если Вам потребуется отключить утилиту, то используйте команду:

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

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

Политики безопасности по умолчанию находятся в файле /etc/default/ufw и могут быть изменены с помощью следующей команды:

Первое правило запрещает все входящие подключения, второе разрешает исходящие.

Профили приложений

При установке программного пакета ufw с использованием диспетчера пакетов он будет включать в себя профили приложений, находящиеся в каталоге /etc/ufw/applications.d, который определяет приложение или службу и соответствующие им настройки безопасности, например открытые или закрытые порты.

Все профили создаются вручную. Посмотреть созданные профили можно следующим образом:

На только, что созданном виртуальном сервере вы скорее всего увидите только профиль для OpenSSH:

Для просмотра детальной информации можно использовать следующую команду:

Например:

Результат:

Для создания профиля приложения перейдите в директорию:

Создайте текстовый файл с любым названием и вставьте в него строки следующего формата:

[<название_профиля>]
title=<заголовок>
description=<краткое описание>
ports=<список портов>/<протокол>

Например:

[App1]
title=Text editor
description=Most popular open source application for editing text.
ports=53,80,5223,16393:16472/udp

Для того, чтобы файл был виден брандмауэру, перезагрузите его:

ufw reload

Далее разрешите или запретите доступ профилю:

ufw <allow/deny> <название_профиля>

Например:

ufw allow App1

Работа с портами

Для открытия портов используется ключевое слово allow.

С помощью следующей команды можно открыть порт для входящих подключений:

sudo ufw allow <порт>/<протокол>

Например:

sudo ufw allow 1234/tcp

Также можно открывать порты по именам конкретных сервисов, например:

sudo ufw allow http

Примечание: если сервер использует порт не по умолчанию, то данное правило использовать нельзя.

ufw позволяет открывать или закрывать промежуток портов:

sudo ufw allow <портN>:<портM>/<протокол>

Например:

sudo ufw allow 5000:5003/udp

Для закрытия портов используйте ключевое слово deny. Синтаксис ufw остается прежним, только allow заменяется на deny. Например, чтобы закрыть порт используется следующая команда:

Например:

sudo ufw deny 1234/tcp

Работа с IP-адресами

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

sudo ufw allow from <IP-адрес>

К примеру:

sudo ufw allow from 111.111.111.111

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

sudo ufw allow from <IP-адрес> to any port <порт>

Пример:

sudo ufw allow from 111.111.111.111 to any port 22

Для запрета подключения используйте ключевое слово deny:

sudo ufw deny from <IP-адрес>

Пример:

sudo ufw deny from 111.111.111.111

Работа с подсетью

С помощью утилиты ufw можно разрешить получение трафика со всей подсети с помощью нотации CIDR:

Например:

Также можно направить трафик с подсети на конкретный порт:

Например:

Примечание: для запрета данных правил используйте ключевое слово deny.

Работа с сетевым интерфейсом

С помощью ufw можно настроить подключение к конкретному порту определенного интерфейса:

sudo ufw allow in on <имя интерфейса> to any port <порт>

Например:

Примечание: имена всех интерфейсов сервера можно просмотреть с помощью команды ifconfig -a.

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

Для удаления правил выведете нумерованный список текущих правил:

Удалите правила под нужным номером:

Пример:

sudo ufw delete 1

Также можно удалить правило с помощью ключевого слова delete, например:

sudo ufw delete allow 443

P. S. Другие инструкции:


Ознакомиться с другими инструкциями вы можете на нашем сайте. А чтобы попробовать услугу — кликните на кнопку ниже.

Последнее обновление: 14.05.2023