Поиск по сайту:

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


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

В этой статье мы объясним, как установить и настроить брандмауэр UFW в дистрибутивах Ubuntu и Debian.

Предварительные условия

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

adduser username
usermod -aG sudo username 
su - username
sudo whoami

Установите брандмауэр UFW в Ubuntu и Debian

UFW (Несложный брандмауэр) должен быть установлен по умолчанию в Ubuntu и Debian, если нет, установите его с помощью менеджера пакетов APT, используя следующую команду.

sudo apt install ufw

Проверьте брандмауэр UFW

После завершения установки вы можете проверить статус UFW, набрав:

sudo ufw status verbose

При первой установке брандмауэр UFW по умолчанию отключен, вывод будет аналогичен приведенному ниже.

Status: inactive

Включить брандмауэр UFW

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

sudo ufw enable

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

sudo ufw disable 

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

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

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

sudo ufw default deny incoming
sudo ufw default allow outgoing

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

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

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

sudo ufw app list

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

Available applications:
  APACHE
  APACHE Full
  APACHE SECURE
  CUPS
  OpenSSH
  Postfix
  Postfix SMTPS
  Postfix Submission

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

sudo ufw app info 'Apache'
Profile: Apache
Title: Web Server 
Description: Apache V2 is the next generation f the omnipresent Apache web server.

Ports:
  80/tcp

Включите IPv6 с помощью UFW

Если ваш сервер настроен на IPv6, убедитесь, что ваш UFW настроен на поддержку IPv6 и IPv4. Чтобы проверить это, откройте файл конфигурации UFW в вашем любимом редакторе.

sudo vi /etc/default/ufw

Затем убедитесь, что в файле конфигурации для IPV6 установлено значение yes, как показано.

IPV6=yes

Сохранить и выйти. Затем перезапустите брандмауэр с помощью следующих команд:

sudo ufw disable
sudo ufw enable

Разрешить SSH-соединения в UFW

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

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

sudo ufw allow ssh

Если вы используете собственный порт SSH (например, порт 2222), вам необходимо открыть этот порт на брандмауэре UFW с помощью следующей команды.

sudo ufw allow 2222/tcp

Чтобы заблокировать все соединения SSH, введите следующую команду.

sudo ufw deny ssh/tcp
sudo ufw deny 2222/tcp  [If using custom SSH port]

Включить определенные порты в UFW

Вы также можете открыть определенный порт в брандмауэре, чтобы разрешить подключение через него к определенной службе. Например, если вы хотите настроить веб-сервер, который прослушивает порты 80 (HTTP) и 443 (HTTPS >) по умолчанию.

Ниже приведены несколько примеров того, как разрешить входящие подключения к службам Apache.

Открыть порт 80 HTTP на UFW
sudo ufw allow http     [By service name]
sudo ufw allow 80/tcp   [By port number]
sudo ufw allow 'Apache' [By application profile]
Откройте порт 443 HTTPS на UFW
sudo ufw allow https
sudo ufw allow 443/tcp
sudo ufw allow 'Apache Secure'

Разрешить диапазоны портов в UFW

Предполагая, что у вас есть приложения, которые вы хотите запускать на определенном диапазоне портов (5000–5003), вы можете добавить все эти порты с помощью следующих команд.

sudo ufw allow 5000:5003/tcp
sudo ufw allow 5000:5003/udp

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

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

sudo ufw allow from 192.168.56.1

Разрешить определенные IP-адреса на определенном порту

Чтобы разрешить подключение к определенному порту (например, порту 22) с вашего домашнего компьютера с IP-адресом 192.168.56.1, вам необходимо добавить любой порт< и номер порта после IP-адреса, как показано.

sudo ufw allow from 192.168.56.1 to any port 22

Разрешить сетевые подсети для определенного порта

Чтобы разрешить подключения для определенных IP-адресов в диапазоне от 192.168.1.1 до 192.168.1.254 к порту 22 (SSH). , выполните следующую команду.

sudo ufw allow from 192.168.1.0/24 to any port 22

Разрешить определенный сетевой интерфейс

Чтобы разрешить подключения к определенному сетевому интерфейсу eth2 для определенного порта 22 (SSH), выполните следующую команду.

sudo ufw allow in on eth2 to any port 22

Запретить соединения в UFW

По умолчанию все входящие соединения блокируются, если вы специально не открыли соединение на UFW. Например, вы открыли порты 80 и 443 и ваш веб-сервер подвергается атаке из неизвестной сети 11.12.13.0/24.

Чтобы заблокировать все соединения из этого конкретного диапазона сети 11.12.13.0/24, вы можете использовать следующую команду.

sudo ufw deny from 11.12.13.0/24

Если вы хотите заблокировать соединения только на портах 80 и 443, вы можете использовать следующие команды.

sudo ufw deny from 11.12.13.0/24 to any port 80
sudo ufw deny from 11.12.13.0/24 to any port 443

Удалить правила UFW

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

Чтобы удалить правила UFW с помощью номер правила, сначала необходимо составить список правил по номерам, используя следующую команду.

sudo ufw status numbered
Пример вывода
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere

Чтобы удалить правило номер 1, используйте следующую команду.

sudo ufw delete 1

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

sudo ufw delete allow 22/tcp

Правила UFW пробного прогона

Вы можете запускать любые команды ufw, не внося никаких изменений в системный брандмауэр, используя флаг --dry-run, это просто показывает изменения, которые должны произойти.

sudo ufw --dry-run enable

Сбросить брандмауэр UFW

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

sudo ufw reset
sudo ufw status

Расширенная функциональность UFW

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

Настройка брандмауэра UFW или добавление дополнительных команд iptables не разрешены с помощью команды ufw, достаточно изменить следующие текстовые файлы.

  • /etc/default/ufw: основной файл конфигурации с предопределенными правилами.
  • /etc/ufw/before[6].rules: в этом файле правила рассчитываются перед добавлением с помощью команды ufw.
  • /etc/ufw/after[6].rules: в этом файле правила рассчитываются после добавления с помощью команды ufw.
  • /etc/ufw/sysctl.conf: этот файл используется для настройки сети ядра.
  • /etc/ufw/ufw.conf: этот файл включает ufw при загрузке.

Вот и все! UFW — отличный интерфейс для iptables с удобным интерфейсом, позволяющим определять сложные правила с помощью одной команды ufw.

Если у вас есть какие-либо вопросы или мысли, которыми вы можете поделиться по поводу этой статьи ufw, используйте форму комментариев ниже, чтобы связаться с нами.