Как настроить брандмауэр с UFW в Ubuntu 20.04

Настройка брандмауэра с UFW в Ubuntu 20.04

Межсетевой экран — это инструмент для мониторинга и фильтрации входящего и исходящего сетевого трафика. Он определяет набор правил безопасности, которые определяют, разрешать или блокировать определённый трафик.

В Ubuntu поставляется инструмент настройки брандмауэра UFW (Uncomplicated Firewall). Это удобный интерфейс для управления правилами брандмауэра iptables. Его главная цель — сделать управление брандмауэром простым, или, как следует из названия, простым.

В этой статье описывается, как использовать инструмент UFW для настройки и управления брандмауэром в Ubuntu 20.04. Правильно настроенный брандмауэр — один из важнейших аспектов общей безопасности системы.

Предпосылки

Управлять системным брандмауэром могут только пользователи с правами root или sudo . Рекомендуется выполнять административные задачи от имени пользователя sudo.

Установить UFW

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

 sudo apt update sudo apt install ufw

Проверить статуса UFW

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

 sudo ufw status verbose

Вывод покажет, что состояние брандмауэра — неактивно:

 Status: inactive

Если UFW активирован, вывод будет выглядеть примерно следующим образом:

статус Ubuntu UFW

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

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

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

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

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

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

Вы можете вывести список всех профилей приложений, доступных на вашем сервере, введя:

 sudo ufw app list

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

 Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH

Чтобы найти дополнительную информацию о конкретном профиле и включенных правилах, используйте следующую команду:

 sudo ufw app info 'Nginx Full'

Вывод показывает, что профиль «Nginx Full» открывает порты 80 и 443 .

 Profile: Nginx Full Title: Web Server (Nginx, HTTP + HTTPS) Description: Small, but very powerful and efficient web server Ports: 80,443/tcp

Вы также можете создавать индивидуальные профили для своих приложений.

Включение UFW

Если вы подключаетесь к Ubuntu из удалённого места, перед включением брандмауэра UFW необходимо явно разрешить входящие SSH-подключения. В противном случае вы больше не сможете подключиться к машине.

Чтобы настроить брандмауэр UFW для разрешения входящих SSH-подключений, введите следующую команду:

 sudo ufw allow ssh
 Rules updated Rules updated (v6)

Если SSH работает на нестандартном порту , вам необходимо открыть этот порт.

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

 sudo ufw allow 7722/tcp

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

 sudo ufw enable
 Command may disrupt existing ssh connections. Proceed with operation (y|n)? y Firewall is active and enabled on system startup

Вас предупредят, что включение брандмауэра может нарушить существующие 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 allow proto tcp to any port 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-адресу доступ только к определенному порту, используйте ключевое слово to any port за которым укажите номер порта.

Например, чтобы разрешить доступ к порту 22 с компьютера с IP-адресом 64.63.62.61 , введите:

 sudo ufw allow from 64.63.62.61 to any port 22

Подсети

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

Ниже приведен пример, показывающий, как разрешить доступ для IP-адресов в диапазоне от 192.168.1.1 до 192.168.1.254 к порту 3360 ( MySQL ):

 sudo ufw allow from 192.168.1.0/24 to any port 3306

Конкретный сетевой интерфейс

Чтобы разрешить подключения через определенный сетевой интерфейс, используйте ключевое слово in on за которым укажите имя сетевого интерфейса:

 sudo ufw allow in on eth2 to any port 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 from 23.24.25.0/24 to any port 80,443

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

Существует два способа удаления правил UFW: по номеру правила и путем указания самого правила.

Удалять правила по номеру проще, особенно если вы новичок в UFW. Чтобы удалить правило по номеру, сначала нужно найти номер нужного правила. Чтобы получить список пронумерованных правил, используйте команду ufw status numbered :

 sudo ufw status numbered
 Status: active To Action From -- ------ ---- [ 1] 22/tcp ALLOW IN Anywhere [ 2] 80/tcp ALLOW IN Anywhere [ 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

IP-маскарадинг — это вариант NAT (трансляции сетевых адресов) в ядре Linux, который преобразует сетевой трафик, переписывая IP-адреса и порты источника и назначения. С помощью IP-маскарадинга вы можете разрешить одному или нескольким компьютерам в частной сети взаимодействовать с Интернетом, используя один компьютер Linux, который выступает в качестве шлюза.

Настройка IP-маскарадинг с помощью UFW включает несколько этапов.

Для начала необходимо включить IP-переадресацию. Для этого откройте файл /etc/ufw/sysctl.conf :

 sudo nano /etc/ufw/sysctl.conf

Найдите и раскомментируйте строку net.ipv4.ip_forward = 1 :

/etc/ufw/sysctl.conf

 net/ipv4/ip_forward = 1

Далее необходимо настроить UFW для разрешения пересылки пакетов. Откройте файл конфигурации UFW:

 sudo nano /etc/default/ufw

Найдите ключ DEFAULT_FORWARD_POLICY и измените значение с DROP на ACCEPT :

/etc/default/ufw

 DEFAULT_FORWARD_POLICY = "ACCEPT"

Теперь вам нужно задать политику по умолчанию для цепочки POSTROUTING в таблице nat и правиле маскарада. Для этого откройте файл /etc/ufw/before.rules и добавьте строки, выделенные жёлтым, как показано ниже:

 sudo nano /etc/ufw/before.rules

Добавьте следующие строки:

/etc/ufw/before.rules

 #NAT table rules *nat :POSTROUTING ACCEPT [0:0] # Forward traffic through eth0 - Change to public network interface -A POSTROUTING -s 10.8.0.0/16 -o eth0 -j MASQUERADE # don't delete the 'COMMIT' line or these rules won't be processed COMMIT

Не забудьте заменить eth0 в строке -A POSTROUTING на имя интерфейса публичной сети:

Когда закончите, сохраните и закройте файл.

Наконец, перезагрузите правила UFW, отключив и снова включив UFW:

 sudo ufw disable sudo ufw enable

Заключение

Мы показали вам, как установить и настроить брандмауэр UFW на сервере Ubuntu 20.04. Разрешите все входящие соединения, необходимые для корректной работы системы, и ограничьте все ненужные соединения.

Более подробную информацию по этой теме можно найти на странице руководства UFW .

Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Брандмауэр ufw iptables безопасность Ubuntu Не используете Ubuntu 20.04?
Выберите другую ОС:
дебиан 10 дебиан 9 убунту 18.04

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *