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