Правильно настроенный брандмауэр — один из наиболее важных аспектов общей безопасности системы.
UFW (несложный брандмауэр) — это удобный интерфейс для управления правилами брандмауэра iptables. Его основная цель — сделать управление iptables проще или, как следует из названия, несложным.
В этой статье описывается, как настроить брандмауэр с UFW в Debian 10.
Содержание
Подготовка
Только root или пользователь с привилегиями sudo может управлять системным брандмауэром.
Установка UFW
Введите следующую команду, чтобы установить пакет ufw
:
sudo apt update
sudo 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/tcp
sudo 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 80
sudo 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. Обязательно разрешите все входящие соединения, которые необходимы для правильного функционирования вашей системы, ограничив при этом все ненужные соединения.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.