Обновлено
•
8 минут чтения

Брандмауэр — это инструмент для мониторинга и фильтрации входящего и исходящего сетевого трафика. Он работает, определяя набор правил безопасности, которые определяют, разрешить или заблокировать определенный трафик.
Ubuntu поставляется с инструментом настройки межсетевого экрана под названием UFW (Несложный межсетевой экран). Это удобный интерфейс для управления правилами брандмауэра iptables. Его основная цель — упростить или, как следует из названия, упростить управление брандмауэром.
В этой статье описывается, как использовать инструмент UFW для настройки и управления брандмауэром в Ubuntu 20.04. Правильно настроенный брандмауэр — один из наиболее важных аспектов общей безопасности системы.
- Предварительные требования #
- Установить UFW #
- Проверить статус UFW #
- Политики UFW по умолчанию #
- Профили приложений #
- Включение UFW #
- Открытие портов #
- Диапазоны портов #
- Определенный IP-адрес и номер порта
- Subnets #
- Определенный сетевой интерфейс #
- Запрещение подключений #
- Удаление правил UFW #
- Отключение UFW #
- Сброс UFW #
- IP Masquerading #
- Заключение #
Предварительные требования #
Только root или пользователи с привилегиями sudo могут управлять системным брандмауэром. Лучше всего запускать административные задачи от имени пользователя sudo.
Установить UFW #
UFW является частью стандартной установки Ubuntu 20.04 и должен присутствовать в вашей системе . Если по какой-то причине он не установлен, вы можете установить пакет, набрав:
sudo apt update
sudo apt install ufw
Проверить статус UFW #
По умолчанию UFW отключен. Вы можете проверить статус службы UFW с помощью следующей команды:
sudo ufw status verbose
В выводе будет показано, что статус брандмауэра неактивен:
Статус: неактивен
Если UFW активирован, вывод будет выглядеть примерно так:

Политики UFW по умолчанию #
По умолчанию межсетевой экран UFW блокирует все входящие и пересылка трафика и разрешение всего исходящего трафика. Это означает, что любой, кто пытается получить доступ к вашему серверу, не сможет подключиться, если вы специально не откроете порт. Приложения и службы, запущенные на вашем сервере, будут иметь доступ к внешнему миру.
Политики по умолчанию определены в файле /etc/default/ufw
и могут можно изменить либо вручную, изменив файл, либо с помощью команды sudo ufw default
.
Политики межсетевого экрана являются основой для создания более сложных и определяемые пользователем правила. Как правило, исходные политики UFW по умолчанию являются хорошей отправной точкой.
Профили приложений #
Профиль приложения — это текстовый файл в формате INI, который описывает службу и содержит правила брандмауэра для службы. Профили приложений создаются в каталоге /etc/ufw/applications.d
во время установки пакета..
Вы можете вывести список всех профилей приложений, доступных на вашем сервере, набрав:
sudo ufw app list
В зависимости от пакетов, установленных в вашей системе, результат будет выглядеть следующим образом:
Доступные приложения: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH
Чтобы найти дополнительную информацию об определенном профиле и включенных правилах, используйте следующую команду:
sudo ufw app info 'Nginx Full'
Выходные данные показывают, что профиль «Nginx Full» открывает порты 80
и 443
.
Профиль: Nginx FullTitle: Веб-сервер (Nginx, HTTP + HTTPS) Описание: Маленький, но очень мощный и эффективный веб-сервер Порты: 80 443/tcp
Вы также можете создавать собственные профили для своих приложений.
Включение UFW #
Если вы подключаетесь к Ubuntu из удаленного места, перед включением брандмауэра UFW, вы должны явно разрешить входящее соединение SSH соединения. В противном случае вы больше не сможете подключиться к машине.
Чтобы настроить брандмауэр UFW на разрешение входящих SSH-подключений, введите следующую команду:
sudo ufw allow ssh
Rules updatedRules updated (v6)
Если SSH работает на нестандартный порт, вам необходимо открыть этот порт.
Например, если ваш демон ssh прослушивает порт 7722
, введите следующую команду, чтобы разрешить соединения на этот порт:
sudo ufw allow 7722/tcp
Теперь, когда брандмауэр настроен на разрешение входящих соединений SSH, вы можете включите его, набрав:
sudo ufw enable
Команда может нарушить существующие соединения ssh. Продолжить операцию (y | n)? yFirewall активен и включается при запуске системы
Вы будете предупреждены, что включение брандмауэра может нарушить существующие соединения ssh, просто введите y
и нажмите Enter
.
Открытие портов #
В зависимости от приложений, запущенных в системе, вам также может потребоваться открыть другие порты. Общий синтаксис для открытия порта следующий:
ufw allow port_number/protocol
Ниже приведены несколько способов, как для разрешения HTTP-соединений.
Первый вариант — использовать имя службы. UFW проверяет файл /etc/services
на предмет порта и протокола указанной службы:
sudo ufw allow http
Вы также можете указать номер порта и протокол:
sudo ufw allow 80/tcp
Если протокол не указан, UFW создает правила для tcp
и udp
.
Другой вариант — использовать профиль приложения; в этом случае ‘Nginx HTTP’:
sudo ufw allow 'Nginx HTTP'
UFW также поддерживает другой синтаксис для указания протокол с использованием ключевого слова proto
:
sudo ufw разрешить протокол TCP на любой порт 80
Диапазоны портов #
UFW также позволяет открывать диапазоны портов. Начальный и конечный порты разделяются двоеточием (:
), и вы должны указать протокол, либо tcp
, либо udp
.
Например, если вы хотите разрешить порты от 7100
до 7200
на обоих tcp
и udp
, вы должны выполнить следующую команду:
sudo ufw allow 7100: 7200/tcp
sudo ufw allow 7100: 7200/udp
Определенный IP-адрес и номер порта
Чтобы разрешить соединения на всех портах с для данного IP-адреса источника используйте ключевое слово from
, за которым следует исходный адрес.
Вот пример внесения IP-адреса в белый список:
sudo ufw allow from 64.63.62.61
Если вы хотите разрешить данному IP-адресу доступ только к определенному порту, используйте для ключевое слово any port
, за которым следует номер порта.
Например, чтобы разрешить доступ к порту 22
с машины с IP-адресом 64.63.62. 61 , введите:
sudo ufw allow from 64.63.62.61 to any port 22
Subnets #
Синтаксис разрешения подключений к подсети IP-адресов такой же, как при использовании одного IP-адреса. Единственное отличие состоит в том, что вам нужно указать маску сети.
Ниже приведен пример, показывающий, как разрешить доступ для IP-адресов в диапазоне от 192.168.1.1
до 192.168.1.254
на порт 3360
(MySQL):
sudo ufw allow from 192.168.1.0/24 to любой порт 3306
Определенный сетевой интерфейс #
Чтобы разрешить соединения через определенный сетевой интерфейс, используйте в
ключевое слово, за которым следует имя сетевого интерфейса:
sudo ufw разрешить на eth2 любой порт 3306
Запрещение подключений #
Политика по умолчанию для всех входящих подключений установлена на deny
, и если вы не изменили ее, UFW заблокирует все входящие подключения, если вы специально не откроете соединение.
Написание запрещающих правил аналогично написанию разрешающих правил; вам нужно только использовать ключевое слово deny
вместо allow
.
Допустим, вы открыли порты 80
и 443
, и ваш сервер подвергся атаке из сети 23.24.25.0/24
. Чтобы запретить все соединения из 23.24.25.0/24
, вы должны выполнить следующую команду:
sudo ufw deny from 23.24.25. 0/24
Вот пример отказа в доступе только к портам 80
и 443
из 23.24.25.0/24
вы можете использовать следующую команду:
sudo ufw deny proto tcp с 23.24.25.0/24 на любой порт 80,443
Удаление правил UFW #
Есть два разных способа удалить правила UFW по номеру правила и указав фактическое правило.
Удалять правила по номеру правила проще, особенно если вы новичок в UFW. Чтобы сначала удалить правило по номеру правила, вам нужно найти номер правила, которое вы хотите удалить. Чтобы получить список пронумерованных правил, используйте команду ufw status numbered
:
sudo ufw status numbered
Статус: активно На действие От - ------ ---- [1] 22/tcp РАЗРЕШИТЬ В любом месте [2] 80/tcp РАЗРЕШИТЬ В любом месте [3] 8080 /tcp ALLOW IN Anywhere
Для удаления правила номер 3
, которое разрешает подключения к порту 8080
, вы должны ввести:
sudo ufw delete 3
Второй метод — удалить правило, указав фактическое правило. Например, если вы добавили правило для открытия порта 8069
, вы можете удалить его с помощью:
sudo ufw delete allow 8069
Отключение UFW #
Если по какой-либо причине вы хотите остановить UFW и деактивировать все правила, вы можете использовать:
sudo ufw disable
Позже, если вы захотите снова включить UTF и активировать все правила, просто введите:
sudo ufw enable
Сброс UFW #
Сброс UFW отключит UFW и удалит все активные правила. Это полезно, если вы хотите отменить все свои изменения и начать заново.
Чтобы сбросить UFW, введите следующую команду:
sudo ufw reset
IP Masquerading #
IP Masquerading — это вариант NAT (трансляция сетевых адресов) в ядре Linux, который преобразует сетевой трафик повторно -запись исходных и целевых IP-адресов и портов. С помощью IP Masquerading вы можете разрешить одной или нескольким машинам в частной сети связываться с Интернетом, используя один Linux-компьютер, который действует как шлюз.
Настройка IP Masquerading с UFW включает несколько шагов.
Во-первых, вам нужно включить переадресацию IP. Для этого откройте файл /etc/ufw/sysctl.conf
:
sudo nano/etc/ufw/sysctl.conf
Найдите и раскомментируйте строку, которая гласит net.ipv4.ip_forward = 1
:
net/ipv4/ip_forward = 1
Далее вам нужно настроить UFW для разрешения пересылаемых пакетов. Откройте файл конфигурации UFW:
sudo nano/etc/default/ufw
Найдите DEFAULT_FORWARD_POLICY
и измените значение с DROP
на ACCEPT
:
DEFAULT_FORWARD_POLICY = "ACCEPT"
Теперь вам нужно установить политику по умолчанию для POSTROUTING
в таблице nat
и правило маскарада. Для этого откройте файл /etc/ufw/before.rules
и добавьте строки, выделенные желтым, как показано ниже:
sudo nano/etc/ufw/before.rules
Добавьте следующие строки:
# Правила таблицы NAT * nat: POSTROUTING ACCEPT [0: 0] # Перенаправлять трафик через eth0 - Изменить на публичный сетевой интерфейс-A POSTROUTING -s 10.8.0.0/16 - o eth0 -j MASQUERADE # не удаляйте строку 'COMMIT', иначе эти правила не будут обработаны COMMIT
Не забудьте заменить eth0
в строке -A POSTROUTING
для соответствия имени общедоступного сетевого интерфейса:
Когда вы закончите, сохраните и закройте файл .
Наконец, перезагрузите правила UFW, отключив и снова включив UFW:
sudo ufw disable
sudo ufw enable
Заключение #
Мы показали вам, как установить и настроить брандмауэр UFW на вашем сервере Ubuntu 20.04. Обязательно разрешите все входящие соединения, которые необходимы для правильного функционирования вашей системы, ограничив при этом все ненужные соединения.
Для получения дополнительной информации по этой теме посетите страницу руководства UFW.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.