Правильно настроенный межсетевой экран является одним из наиболее важных аспектов общей безопасности системы.
UFW (Uncomplicated Firewall) – удобный интерфейс для управления правилами брандмауэра 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/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, используйте следующую команду:
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. Обязательно разрешите все входящие подключения, которые необходимы для правильного функционирования вашей системы, ограничивая при этом все ненужные подключения.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.