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

Правильно настроенный брандмауэр — один из наиболее важных аспектов общей безопасности системы.

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

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

Подготовка

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

Установка UFW

Введите следующую команду, чтобы установить пакет ufw :

sudo apt updatesudo apt install ufw

Проверка статуса UFW

Установка не активирует брандмауэр автоматически, чтобы избежать блокировки сервера. Вы можете проверить статус UFW, набрав:

sudo ufw status verbose

Результат будет выглядеть так:

Status: inactive

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

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

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

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

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

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

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

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

sudo ufw utf --help

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

Available applications:
  DNS
  IMAP
  IMAPS
  OpenSSH
  POP3
  POP3S
  Postfix
  Postfix SMTPS
  Postfix Submission
  ...

Чтобы найти дополнительную информацию о конкретном профиле и включенных правилах, используйте команду app info , после которой укажите имя профиля. Например, чтобы получить информацию о профиле OpenSSH, вы должны использовать:

sudo ufw app info OpenSSH
Profile: OpenSSH
Title: Secure shell server, an rshd replacement
Description: OpenSSH is a free implementation of the Secure Shell protocol.

Port:
  22/tcp

Вывод включает имя профиля, заголовок, описание и правила брандмауэра.

Разрешить SSH-подключения

Перед включением брандмауэра UFW необходимо разрешить входящие соединения SSH.

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

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

sudo ufw allow OpenSSH
Rules updated
Rules updated (v6)

Если SSH-сервер прослушивает порт, отличный от порта по умолчанию 22, вам нужно будет открыть этот порт.

Например, ваш ssh-сервер прослушивает порт 7722 , вы должны выполнить:

sudo ufw allow 7722/tcp

Включить UFW

Теперь, когда брандмауэр UFW настроен на разрешение входящих соединений 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».

Открытие портов

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

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

Открытый порт 80 — HTTP

Разрешить HTTP-соединения:

sudo ufw allow http

Вместо профиля http вы можете использовать номер порта 80 :

sudo ufw allow 80/tcp

Открытый порт 443 — HTTPS

Разрешить HTTPS-соединения:

sudo ufw allow https

Вы также можете использовать номер порта 443 :

sudo ufw allow 443/tcp

Открытый порт 8080

Если вы запустите Tomcat или любое другое приложение, которое прослушивает порт 8080 откройте порт с помощью:

sudo ufw allow 8080/tcp

Открытие портовых диапазонов

С помощью UFW вы также можете разрешить доступ к диапазонам портов. При открытии диапазона необходимо указать протокол порта.

Например, чтобы разрешить порты с 7100 по 7200 как на tcp и на udp , выполните следующую команду:

sudo ufw allow 7100:7200/tcpsudo ufw allow 7100:7200/udp

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

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

sudo ufw allow from 64.63.62.61

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

Чтобы разрешить доступ к определенному порту, допустим, порт 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

Разрешить подключения к определенному сетевому интерфейсу

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

sudo ufw allow in on eth2 to any port 3306

Запретить подключения

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

Допустим, вы открыли порты 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 from 23.24.25.0/24 to any port 80sudo ufw deny from 23.24.25.0/24 to any port 443

Написание запрещающих правил аналогично написанию разрешающих правил. Вам нужно только заменить allow на deny .

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

Есть два разных способа удалить правила UFW. По номеру правила и указав фактическое правило.

Удаление правил UFW по номеру правила проще, особенно если вы новичок в UFW.

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

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

Выводы

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

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

Оставьте комментарий