Введение
Debian включает несколько пакетов, которые предоставляют инструменты для управления брандмауэром с iptables, установленным как часть базовой системы. Новичкам может быть сложно научиться использовать инструмент iptables для правильной настройки и управления брандмауэром, но UFW упрощает эту задачу.
UFW (Uncomplicated Firewall) — это интуитивно понятный интерфейс для управления правилами брандмауэра iptables, и его основная цель — упростить управление iptables или, как следует из названия, без осложнений.
В этом руководстве мы покажем вам, как настроить брандмауэр с помощью UFW в Debian 10 Buster.
Предпосылки
Прежде чем продолжить работу с этим учебным пособием, убедитесь, что у вошедшего в систему пользователя есть привилегии sudo.
Если вы хотите установить Брандмауэр UFW на удаленный сервер, продолжайте чтение, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.
Подключение к серверу
Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:
ssh root@IP_DEL_SERVER
Далее вам нужно будет ввести пароль пользователя root.
Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:
ssh nome_utente@IP_DEL_SERVER
Затем вам будет предложено ввести пароль пользователя.
Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Установить UFW
UFW не установлен по умолчанию в Debian 10. Вы можете установить пакет ufw
, введя следующую команду:
sudo apt install ufw
Проверить статус UFW
После завершения процесса установки вы можете проверить статус UFW с помощью следующей команды:
sudo ufw status
Вывод будет выглядеть следующим образом:
Status: inactive
UFW по умолчанию отключен. Установка не будет автоматически активировать брандмауэр, чтобы избежать блокировки со стороны сервера.
Предопределенные правила UFW
По умолчанию UFW блокирует все входящие подключения и разрешает все исходящие. Это означает, что любой, кто попытается получить доступ к их серверу, не сможет подключиться, если вы специально не откроете порт, в то время как все приложения и службы, работающие на сервере, смогут получить доступ к внешнему миру.
Правила по умолчанию определены в /etc/default/ufw
и могут быть изменены с помощью команды sudo ufw default <policy> <chain>
.
Политики брандмауэра являются основой для создания более подробных и определяемых пользователем правил. В большинстве случаев исходные критерии UFW по умолчанию являются хорошей отправной точкой.
Профили приложений
При установке пакета с помощью apt
this в каталог /etc/ufw/applications.d
будет добавлен профиль приложения, описывающий сервис и содержащий настройки UFW.
Чтобы вывести список всех профилей приложений, доступных в системе, введите:
sudo ufw app list
В зависимости от пакетов, установленных в вашей системе, вывод будет выглядеть следующим образом:
Available applications:
AIM
Bonjour
CIFS
DNS
Deluge
IMAP
IMAPS
IPP
KTorrent
Kerberos Admin
Kerberos Full
Kerberos KDC
Kerberos Password
LDAP
LDAPS
LPD
MSN
MSN SSL
Mail submission
NFS
OpenSSH
POP3...
Чтобы найти дополнительную информацию о конкретном профиле и включенных правилах, используйте следующую команду:
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
HTTP-соединения можно разрешить с помощью следующей команды:
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/tcp
Разрешить определенные IP-адреса
Если вы хотите разрешить доступ ко всем портам с определенного IP-адреса, используйте команду ufw allow from
, за которой следует IP-адрес:
sudo ufw allow from 64.63.62.61
Разрешить определенные IP-адреса на определенном порту
Чтобы разрешить доступ к определенному порту, предположим, что порт 22 с вашей рабочей машины с IP-адресом 64.64.64.64
использует следующую команду:
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
Запретить 3 соединения
Политика по умолчанию для всех входящих соединений настроена на 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
Написание запрещающих правил аналогично написанию разрешающих правил, вам просто нужно заменить 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 Buster. Обязательно разрешите все входящие подключения, необходимые для правильной работы системы, и ограничьте все ненужные подключения.