Как настроить брандмауэр UFW в Ubuntu и Debian
Правильно функционирующий брандмауэр является наиболее важной частью полной безопасности системы Linux. По умолчанию в дистрибутивы Debian и Ubuntu входит инструмент настройки брандмауэра под названием UFW (Несложный брандмауэр). Это самый популярный и простой в использовании инструмент командной строки для настройки и управление брандмауэром в дистрибутивах Ubuntu и Debian.
В этой статье мы объясним, как установить и настроить брандмауэр UFW в дистрибутивах Ubuntu и Debian.
Предварительные условия
Прежде чем приступить к прочтению этой статьи, убедитесь, что вы вошли на свой сервер Ubuntu или Debian с использованием пользователя sudo или учетной записи root. Если у вас нет пользователя sudo, вы можете создать его, используя следующие инструкции в качестве пользователя root.
adduser username
usermod -aG sudo username
su - username
sudo whoami
Установите брандмауэр UFW в Ubuntu и Debian
UFW (Несложный брандмауэр) должен быть установлен по умолчанию в Ubuntu и Debian, если нет, установите его с помощью менеджера пакетов APT, используя следующую команду.
sudo apt install ufw
Проверьте брандмауэр UFW
После завершения установки вы можете проверить статус UFW, набрав:
sudo ufw status verbose
При первой установке брандмауэр UFW по умолчанию отключен, вывод будет аналогичен приведенному ниже.
Status: inactive
Включить брандмауэр UFW
Вы можете активировать или включить брандмауэр UFW с помощью следующей команды, которая должна загрузить брандмауэр и разрешить его запуск при загрузке.
sudo ufw enable
Чтобы отключить брандмауэр UFW, используйте следующую команду, которая выгружает брандмауэр и отключает его запуск при загрузке.
sudo ufw disable
Политики UFW по умолчанию
По умолчанию брандмауэр UFW запрещает все входящие подключения и разрешает только все исходящие подключения к серверу. Это означает, что никто не сможет получить доступ к вашему серверу, если вы специально не откроете порт, в то время как все запущенные службы или приложения на вашем сервере смогут получить доступ к внешней сети.
Политики брандмауэра UFW по умолчанию размещены в файле /etc/default/ufw
и могут быть изменены с помощью следующей команды.
sudo ufw default deny incoming
sudo ufw default allow outgoing
Профили приложений UFW
При установке пакета программного обеспечения с помощью диспетчера пакетов APT он включает профиль приложения в каталоге /etc/ufw/applications.d
, который определяет службу и содержит настройки UFW.
Вы можете перечислить все доступные профили приложений на вашем сервере, используя следующую команду.
sudo ufw app list
В зависимости от установки пакета программного обеспечения в вашей системе вывод будет выглядеть примерно так:
Available applications:
APACHE
APACHE Full
APACHE SECURE
CUPS
OpenSSH
Postfix
Postfix SMTPS
Postfix Submission
Если вы хотите получить дополнительную информацию о конкретном профиле и определенных правилах, вы можете использовать следующую команду.
sudo ufw app info 'Apache'
Profile: Apache
Title: Web Server
Description: Apache V2 is the next generation f the omnipresent Apache web server.
Ports:
80/tcp
Включите IPv6 с помощью UFW
Если ваш сервер настроен на IPv6, убедитесь, что ваш UFW настроен на поддержку IPv6 и IPv4. Чтобы проверить это, откройте файл конфигурации UFW в вашем любимом редакторе.
sudo vi /etc/default/ufw
Затем убедитесь, что в файле конфигурации для IPV6 установлено значение yes
, как показано.
IPV6=yes
Сохранить и выйти. Затем перезапустите брандмауэр с помощью следующих команд:
sudo ufw disable
sudo ufw enable
Разрешить SSH-соединения в UFW
Если вы уже включили брандмауэр UFW, он заблокирует все входящие соединения, и если вы подключитесь к своему серверу через SSH из удаленного места, вы больше не сможете подключиться к нему снова.
Давайте включим SSH-соединения к нашему серверу, чтобы этого не произошло, с помощью следующей команды:
sudo ufw allow ssh
Если вы используете собственный порт SSH (например, порт 2222), вам необходимо открыть этот порт на брандмауэре UFW с помощью следующей команды.
sudo ufw allow 2222/tcp
Чтобы заблокировать все соединения SSH, введите следующую команду.
sudo ufw deny ssh/tcp
sudo ufw deny 2222/tcp [If using custom SSH port]
Включить определенные порты в UFW
Вы также можете открыть определенный порт в брандмауэре, чтобы разрешить подключение через него к определенной службе. Например, если вы хотите настроить веб-сервер, который прослушивает порты 80 (HTTP) и 443 (HTTPS >) по умолчанию.
Ниже приведены несколько примеров того, как разрешить входящие подключения к службам Apache.
Открыть порт 80 HTTP на UFW
sudo ufw allow http [By service name]
sudo ufw allow 80/tcp [By port number]
sudo ufw allow 'Apache' [By application profile]
Откройте порт 443 HTTPS на UFW
sudo ufw allow https
sudo ufw allow 443/tcp
sudo ufw allow 'Apache Secure'
Разрешить диапазоны портов в UFW
Предполагая, что у вас есть приложения, которые вы хотите запускать на определенном диапазоне портов (5000–5003), вы можете добавить все эти порты с помощью следующих команд.
sudo ufw allow 5000:5003/tcp
sudo ufw allow 5000:5003/udp
Разрешить определенные IP-адреса
Если вы хотите разрешить подключения на всех портах с определенного IP-адреса 192.168.56.1, вам необходимо указать from перед IP-адресом.
sudo ufw allow from 192.168.56.1
Разрешить определенные IP-адреса на определенном порту
Чтобы разрешить подключение к определенному порту (например, порту 22) с вашего домашнего компьютера с IP-адресом 192.168.56.1, вам необходимо добавить любой порт< и номер порта после IP-адреса, как показано.
sudo ufw allow from 192.168.56.1 to any port 22
Разрешить сетевые подсети для определенного порта
Чтобы разрешить подключения для определенных IP-адресов в диапазоне от 192.168.1.1 до 192.168.1.254 к порту 22 (SSH). , выполните следующую команду.
sudo ufw allow from 192.168.1.0/24 to any port 22
Разрешить определенный сетевой интерфейс
Чтобы разрешить подключения к определенному сетевому интерфейсу eth2 для определенного порта 22 (SSH), выполните следующую команду.
sudo ufw allow in on eth2 to any port 22
Запретить соединения в UFW
По умолчанию все входящие соединения блокируются, если вы специально не открыли соединение на UFW. Например, вы открыли порты 80 и 443 и ваш веб-сервер подвергается атаке из неизвестной сети 11.12.13.0/24.
Чтобы заблокировать все соединения из этого конкретного диапазона сети 11.12.13.0/24, вы можете использовать следующую команду.
sudo ufw deny from 11.12.13.0/24
Если вы хотите заблокировать соединения только на портах 80 и 443, вы можете использовать следующие команды.
sudo ufw deny from 11.12.13.0/24 to any port 80
sudo ufw deny from 11.12.13.0/24 to any port 443
Удалить правила UFW
Существует два способа удаления правил UFW: по номеру правила и по фактическому правилу.
Чтобы удалить правила UFW с помощью номер правила, сначала необходимо составить список правил по номерам, используя следующую команду.
sudo ufw status numbered
Пример вывода
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 80/tcp ALLOW IN Anywhere
Чтобы удалить правило номер 1, используйте следующую команду.
sudo ufw delete 1
Второй способ — удалить правило с помощью фактического правила. Например, чтобы удалить правило, укажите номер порта и протокол, как показано.
sudo ufw delete allow 22/tcp
Правила UFW пробного прогона
Вы можете запускать любые команды ufw, не внося никаких изменений в системный брандмауэр, используя флаг --dry-run
, это просто показывает изменения, которые должны произойти.
sudo ufw --dry-run enable
Сбросить брандмауэр UFW
По той или иной причине, если вы хотите удалить/сбросить все правила брандмауэра, введите следующие команды, все ваши изменения будут отменены и начнется заново.
sudo ufw reset
sudo ufw status
Расширенная функциональность UFW
Брандмауэр UFW может делать все, что делает iptables. Это можно сделать с помощью различных наборов файлов правил, которые представляют собой не что иное, как простые текстовые файлы iptables-restore.
Настройка брандмауэра UFW или добавление дополнительных команд iptables не разрешены с помощью команды ufw, достаточно изменить следующие текстовые файлы.
- /etc/default/ufw: основной файл конфигурации с предопределенными правилами.
- /etc/ufw/before[6].rules: в этом файле правила рассчитываются перед добавлением с помощью команды ufw.
- /etc/ufw/after[6].rules: в этом файле правила рассчитываются после добавления с помощью команды ufw.
- /etc/ufw/sysctl.conf: этот файл используется для настройки сети ядра.
- /etc/ufw/ufw.conf: этот файл включает ufw при загрузке.
Вот и все! UFW — отличный интерфейс для iptables с удобным интерфейсом, позволяющим определять сложные правила с помощью одной команды ufw.
Если у вас есть какие-либо вопросы или мысли, которыми вы можете поделиться по поводу этой статьи ufw, используйте форму комментариев ниже, чтобы связаться с нами.