
Правильно настроенный брандмауэр является одним из важнейших аспектов общей безопасности системы.
UFW (Uncomplicated Firewall) — это удобный интерфейс для управления правилами брандмауэра 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 .
Политики брандмауэра служат основой для создания более подробных пользовательских правил. Как правило, начальные политики брандмауэра по умолчанию являются хорошей отправной точкой.
Профили приложений
Большинство приложений поставляются с профилем приложения, описывающим службу и содержащим настройки 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 просто введите следующую команду:
sudo ufw reset
Заключение
Вы узнали, как установить и настроить брандмауэр UFW на компьютере с Debian 10. Обязательно разрешите все входящие соединения, необходимые для корректной работы системы, и ограничьте все ненужные соединения.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.
брандмауэр ufw iptables безопасность Debian Не используете Debian 10?
Выберите другую ОС: дебиан 9 убунту 18.04 убунту 20.04
Связанные руководства
- Как настроить брандмауэр с UFW в Debian 9
- Как настроить брандмауэр с UFW в Ubuntu 20.04
- Как составить список и удалить правила брандмауэра UFW
- Как настроить брандмауэр с UFW в Ubuntu 18.04
- Как настроить брандмауэр с помощью FirewallD в CentOS 7
- Как настроить ключи SSH в Debian 10
- Как настроить WireGuard VPN в Debian 10