Настройка UFW на Linux (Ubuntu)
В Linux используется межсетевой экран под названием iptables. Для удобства конфигурирования используют различные графические оболочки. Рассмотрим одну из них — Uncomplicated Firewall (UFW).
Краткое описание
С английского языка название дословно переводится как несложный (упрощенный) брандмауэр. Особенность продукта — минимализм с графической оболочкой на основе командной строки. Если кратко, то UFW используют для базовых настроек межсетевого экрана. Он содержит необходимый минимум функций для стандартной защиты корпоративных ресурсов. Создание более сложных правил и тонкая настройка доступны в iptables.
Изначально решение разрабатывалось для операционных систем семейства Debian и Ubuntu. Дальнейшие действия выполняются под управлением Ubuntu.
Предварительная подготовка
Если UFW не установлен на серверной платформе, используем стандартную утилиту:
sudo apt-get install ufwВторой вариант – утилита установлена, но неактивна, тогда прописываем:
sudo ufw enableВажно! Любые действия, связанные с конфигурированием продукта, выполняются с правами суперпользователя.
После инсталляции проверим состояние программы:
sudo ufw status verbose
Стандартная конфигурация программы блокирует входящий трафик, но разрешает исходящий. Чтобы изменить параметры, открываем системный файл:
sudo nano /etc/default/ufwsudo ufw default deny incoming
sudo ufw default allow outgoingПервая строка отвечает за блокировку, а вторая за исходящие подключения.
Настройка
UFW распределяет правила согласно профилям программ. Они хранятся по следующему пути:
/etc/ufw/applications.dСоздание нового или редактирование текущего профиля проводится администратором в ручном режиме. Для начала ознакомимся с текущими профилями:
sudo ufw app listПросмотр подробной информации по любой записи осуществляется при помощи следующей команды:
sudo ufw app info 'name'Где name — наименование профиля, которое заключается в одинарные кавычки.
Например, просмотрим сервис OpenSSH:

Первая строка — имя новой записи в UFW. Вторая описывает заголовок, по которому профиль будет идентифицироваться. Третья содержит краткое описание сервиса (рекомендуется использовать 1-2 предложения). Последняя строка указывает порты, которые необходимо открыть для работы приложения.
Сохраняем файл и перезагружаем межсетевой экран:
ufw reloadСледующий шаг — прописываем политику для новой записи. Доступно два режима: разрешить (Allow) и запретить (Deny). Синтаксис выглядит следующим образом:
ufw <action> <name_profile>Где action – одно из двух значений Allow или Deny, а name_profile — наименование профиля.
Операции с портами
Для открытия/закрытия портов также используется команды Allow/Deny, в зависимости от требований администратора. Синтаксис выглядит следующим образом:
sudo ufw <action> <port>/<name_protocol>Расшифровка:
1. action — одно из двух действий: разрешить (Allow) или запретить (Deny);
2. port — цифровое имя порта, для которого применяется правило;
3. name_protocol — наименование протокола.
Если требуется указать перечень портов, используем двоеточие между начальной и конечной точкой. Альтернативный вариант — использовать имя службы, для которой создается запись. Например, откроем порт для сервиса HTTP:
sudo ufw allow httpВажно! UFW разрешает стандартный порт, который закреплен за службой. Если значение отличается от общепринятых, то создавать правило по имени сервиса нельзя — оно не активируется.
Операции с IP-адресами
Аналогично портам правила создаются правила и для IP-адресов. Синтаксис идентичен предыдущему пункту:
sudo ufw <action> from <IP-адрес>Action – принимает значение Allow или Deny, IP-адрес – адрес оборудования, которому предоставляется/запрещается доступ к серверу.
Например, команду разрешить устройству с IP-адресом 10.68.23.15 доступ к всем портам сервера можно записать так:
sudo ufw allow from 10.68.23.15Также доступна опция идентификации порта, например:
sudo ufw allow from 10.68.23.15 to any port 22Добавление словосочетания to any port (name) задает конкретное значение порта, для которого доступ будет открыт. Вместо name указываем номер порта.
Если требуется создать правило для нескольких IP-адресов, используем видоизмененный синтаксис:
sudo ufw allow from 10.68.23.0/24Операции с сетевым интерфейсом
При создании профилей также применяют имена сетевых интерфейсов. Синтаксис представлен ниже:
sudo ufw in on <имя интерфейса> to any port <порт>sudo ufw <action> in on <name_interface>Поле action, как и в предыдущих разделах, принимает состояние Allow и Deny, а опция name_interface отвечает за наименование сетевого интерфейса, для которого создается правило.
Для просмотра списка активных интерфейсов вводим в терминале команду:
ifconfig -aТакже доступна дополнительная опция to any port — для однозначной идентификации порта.
Удаление записей
Чтобы удалить созданное ранее правило, используем ключ delete. В общем виде команда выглядит так:
sudo ufw delete <number>Где number — порядковый номер записи в таблице конфигурации UFW. Чтобы проставить цифровые значения для каждой строки, укажем в терминале:
sudo ufw status numberedПосле этого просто указываем номер записи в таблице. Допустим:
sudo ufw delete 7Перезагрузка не требуется.
700
300
700
300
700
300