UFW

Правильно функционирующий брандмауэр является одним из наиболее важных аспектов общей безопасности системы Linux. По умолчанию дистрибутив Debian и Ubuntu поставляется с инструментом настройки брандмауэра под названием UFW (Uncomplicated Firewall), который является самым популярным и простым в использовании инструментом командной строки для настройки и управления брандмауэром в дистрибутивах Ubuntu и Debian.

 

UFW (Uncomplicated Firewall) обычно установлен по умолчанию в Ubuntu и Debian, если нет, установите его с помощью диспетчера пакетов APT, используя следующую команду:

Проверка брандмауэра UFW

После завершения установки вы можете проверить статус UFW:

При первой установке брандмауэр UFW отключен по умолчанию, в терминале вы получите следующее сообщение:
ufw
Включение брандмауэр UFW

Вы можете активировать или включить брандмауэр UFW, используя следующую команду:

ufw

Чтобы отключить брандмауэр UFW, используйте следующую команду:

Политика безопасности для UFW

По умолчанию брандмауэр UFW отклоняет все входящие соединения и разрешает только исходящие подключения к серверу. Это означает, что никто не может получить доступ к вашему серверу, если только вы специально не открываете порт, а все запущенные службы или приложения на вашем сервере могут иметь доступ к внешней сети.

Политики брандмауэра UFW находится в файле /etc/default/ufw и могут быть изменены с помощью следующей команды.

Профили приложений UFW

При установке программного пакета с использованием диспетчера пакетов APT они будут включать в себя профиль приложения в каталоге /etc/ufw/applications.d, который содержит настройки UFW.

Вы можете просмотреть все доступные профили приложений на своем сервере, используя следующую команду:

В зависимости от комплектации установленных пакетов в терминале вы получите примерно такой выход:

ufw

 

Если вы хотите получить дополнительную информацию о конкретном профиле и определенных правилах, вы можете использовать следующую команду.

ufw

 

Разрешение соединения SSH на UFW

Как только вы включите брандмауэр UFW, он будет блокировать все входящие подключения, и если вы попробуете подключится к своему серверу через SSH, то это у вас не получится.

Давайте настроим SSH-подключение с нашим сервером, используя следующую команду:

Если вы используете пользовательский SSH-порт (например, порт 2222), вам необходимо открыть этот порт на брандмауэре UFW, используя следующую команду.

Чтобы заблокировать все подключения SSH, введите следующую команду.

Включение определенных портов в UFW

Вы также можете открыть определенный порт в брандмауэре, чтобы разрешить подключение через него к определенному сервису. Например, если вам необходимо настроить веб-сервер, который по умолчанию прослушивает порт 80 (HTTP) и 443 (HTTPS).

Ниже приведены несколько примеров того, как разрешать входящие подключения к службам Apache.

Открытие порта 80 HTTP на UFW
Открытие порта 443 HTTPS на UFW

Разрешим диапазоны портов для UFW

Предположим, что у вас есть приложения, которые вы хотите запускать на нескольких портах (5000-5003), вы можете добавить все эти порты, используя следующие команды.

Разрешим определенные IP-адреса

Если вы хотите разрешить соединения на всех портах с определенного IP-адреса 192.168.56.1, вам необходимо указать этот IP-адрес следующим образом:

Разрешим определенные IP-адреса по конкретному порту

Чтобы разрешить подключение на определенном порту (например, на порту 22) с вашего домашнего компьютера с IP-адресом 192.168.56.1, вам необходимо добавить номер порта и после него IP-адрес с которого будет происходить доступ:

Разрешим подсети для конкретного порта

Чтобы разрешить соединения для определенных IP-адресов от 192.168.1.1 до 192.168.1.254 для порта 22 (SSH), выполните следующую команду:

Разрешим доступ через определенный сетевой интерфейс

Чтобы разрешить соединения с определенным сетевым интерфейсом eth2 для конкретного порта 22 (SSH), выполните следующую команду:

Запретим соединения для UFW

По умолчанию все входящие соединения блокируются, если вы специально не открыли соединение с UFW. Например, вы открыли порты 80 и 443, а ваш веб-сервер подвергся атаке из неизвестной сети 11.12.13.0/24.

Чтобы заблокировать все подключения из этого сетевого диапазона 11.12.13.0/24, вы можете использовать следующую команду.

Если вы хотите заблокировать соединения на портах 80 и 443, вы можете использовать следующие команды:

Удаление правила UFW

Существует два способа удаления правил UFW, номера правила и фактического правила.

Чтобы удалить правила UFW, используя номер правила, сначала вам нужно просмотреть список созданных правил отсортированных по номерам, используя следующую команду:

Образец вывода

Чтобы удалить правило номер 1, используйте следующую команду:

Второй способ — непосредственно удалить правило, используя фактически его имя, например, для удаления правила, указать номер порта с протоколом, как показано ниже:

«Пробный запуск» на UFW

Вы можете запускать любые команды ufw, не внося никаких изменений в системный брандмауэр, используя флаг -dry-run, этот флаг просто показывает изменения, которые предположительно произойдут.

Сброс брандмауэр UFW

По той или иной причине, если вы когда-то  захотите удалить/сбросить все правила брандмауэра, введите следующие команды, он вернет все ваши изменения:

Расширенная функциональность UFW

По сути брандмауэр UFW может делать все, что может сделать iptables. Этого можно добиться с помощью разных наборов файлов правил, которые являются не чем иным, как iptables-подобных соответствующих текстовые файлы.

Настройка ufw или размещение дополнительных команд iptables, не разрешенных с помощью команды ufw, — это всего лишь вопрос редактирования нескольких текстовых файлов.

  • /etc/default/ufw: основная конфигурация для политик по умолчанию, поддержка IPv6 и модули ядра.
  • /etc/ufw/before[6].rules: правила в этих файлах выполняются перед любыми правилами, добавленными с помощью команды ufw.
  • /etc/ufw/after[6].rules: правила в этих файлах выполняются после любых правил, добавленных с помощью команды ufw.
  • /etc/ufw/sysctl.conf: сетевые настройки ядра.
  • /etc/ufw/ufw.conf: устанавливает, включена ли функция ufw при загрузке и устанавливает значение LOGLEVEL.