Заметки · 15.11.2024

Стена без сложностей

Очередной «длясебяпост», в котором приведу команды для базовой настройки максимально простого брандмауэра UFW.

Кроме интуитивно понятного построения команд управления брандмауэром, удобство UFW заключается и в простом управлении настройками с помощью именованных правил приложений. Но… Обо всём по порядку.

Для начала — включаем UFW:

sudo ufw enable

Проверяем его состояние и все разрешённые правила:

sudo ufw status

Теперь запретим всё входящее и разрешим всё исходящее:

sudo ufw default deny incoming & sudo ufw default allow outgoing

Смотрим, с какими правилами и для каких приложений можно работать:

sudo ufw app list

Например, у меня вот такой список правил:

Вот так я разрешу правило приложения OpenSSH:

sudo ufw allow OpenSSH

А так запрещу все порты для веб-сервера Apache:

sudo ufw deny "Apache Full"

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

Обратите внимание, что правила с пробелом нужно брать в кавычки, иначе никакого чуда не произойдёт.

Вместо именованных правил можно указать номера портов и протоколов. Например, откроем во все стороны 22 порт только для протокола tcp:

sudo ufw allow 22/tcp

Удалить правило можно зная его имя:

sudo ufw delete allow 22/tcp

А ещё можно разрешить исходящий трафик и запретить входящий для определённого порта:

sudo ufw allow out 22/tcp & sudo ufw deny in 22/tcp

И самая нужная фича — разрешить доступ к порту сервера только с определённых IP-адресов или же всей подсети:

sudo ufw allow from 192.168.2.0/24 to any port 22

Например, можно открыть порт для работы агента Zabbix только серверу Zabbix:

sudo ufw allow from 192.168.1.100 to any port 10050

Удаление правил UFW рекомендую делать не по имени, а по их индексам. Для этого сначала запросите список правил в виде нумерованного списка:

sudo ufw status numbered

Теперь можно смело указать индекс для удаления какого-либо правила:

sudo ufw delete ID

В случае, если что-то пошло не так — всегда можно вернуться к «заводским» установкам:

sudo ufw reset

Ну, и по аналогии с включением, UFW можно отключить командой:

sudo ufw disable

Более детально с функционалом можно ознакомиться здесь.