A correctly functioning firewall is the most crucial part of the complete Linux system security. By default, Debian and Ubuntu distribution comes with a firewall configuration tool called UFW (Uncomplicated Firewall), is a most popular and easy-to-use command line tool for configuring and managing a firewall on Ubuntu and Debian distributions.
В этой статье мы объясним, как установить и настроить брандмауэр UFW на дистрибутивах Ubuntu и Debian.
Предварительные условия
Прежде чем приступить к этой статье, убедитесь, что вы вошли в свой сервер Ubuntu или Debian от имени пользователя sudo или от имени учетной записи root. Если у вас нет пользователя sudo, вы можете создать его, используя следующие инструкции от имени пользователя root.
# adduser username # usermod -aG sudo username # su - username $ sudo whoami
Установка брандмауэра UFW на Ubuntu и Debian
Брандмауэр UFW (Uncomplicated Firewall) должен быть установлен по умолчанию в 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
Есть 2 способа удаления правил 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, используйте форму комментариев ниже, чтобы связаться с нами.
Source:
https://www.tecmint.com/setup-ufw-firewall-on-ubuntu-and-debian/