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

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

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

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

Подготовка

Прежде чем продолжить это руководство, убедитесь, что пользователь, под которым вы вошли в систему, имеет права sudo .

Установить UFW

UFW не устанавливается по умолчанию в Debian 9. Вы можете установить пакет ufw , набрав:

sudo apt install ufw

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

После завершения процесса установки вы можете проверить статус UFW с помощью следующей команды:

sudo ufw status verbose

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

Status: inactive

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

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

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

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

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

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

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

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

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

sudo ufw app list

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

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

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

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

A Выходные данные выше говорят нам, что профиль OpenSSH открывает порт 22 .

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

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

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

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

sudo ufw allow OpenSSH
Rules updated
Rules updated (v6)

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

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

sudo ufw allow 8822/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

Для достижения того же самого вместо https вы можете использовать номер порта 443 :

sudo ufw allow 443/tcp

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

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

sudo ufw allow 8080/tcp

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

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

Например, чтобы разрешить порты с 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 , используйте команду 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 . Чтобы запретить все подключения из 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 9. Обязательно разрешите все входящие соединения, которые необходимы для правильного функционирования вашей системы, ограничив при этом все ненужные соединения.

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

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