Смотрите настроенные правила, даже когда они неактивны

Мне интересно, можно ли заставить UFW перечислять настроенные правила брандмауэра, даже если он не включен. В настоящее время у меня есть только ssh-доступ к серверу, и я не хочу включать UFW, если не настроено правило, разрешающее ssh. Однако, поскольку UFW в настоящее время не включен, я просто получаю сообщение "неактивный" при запуске "статус ufw".

Есть ли специальный флаг, который я могу использовать, или даже какой-нибудь конфигурационный файл, который я могу просмотреть, чтобы узнать, какие правила настроены, даже если брандмауэр отключен?

В настоящее время существует ufw show added команда, которая перечислит настроенные для вас правила, даже если брандмауэр неактивен. Он был добавлен в качестве исправления для это сообщение об ошибке и добавлено в версии 0.33

Так что теперь вы можете сделать:

# ufw statusStatus: inactive# ufw allow sshRules updatedRules updated (v6)# ufw show addedAdded user rules (see 'ufw status' for running firewall):ufw allow 22# ufw enableFirewall is active and enabled on system startup# ufw statusStatus: activeTo                         Action      From--                         ------      ----22                         ALLOW       Anywhere22 (v6)                    ALLOW       Anywhere (v6)

Формат выходных данных из ufw show added также значительно упрощает написание команды удаления для каждого правила.

В настоящее время нет способа показать правила, которые вы ввели перед включением брандмауэра с помощью команды CLI. Однако вы можете проверить файлы правил напрямую. /lib/ufw/user*.правила содержат правила, управляемые с помощью команды командной строки ufw. Напр.:

 $ sudo grep '^### tuple' /lib/ufw/user*.rules

Это покажет вывод, подобный следующему (для правила, добавленного с помощью 'sudo ufw allow OpenSSH):

 /lib/ufw/user.rules:### tuple ### allow tcp 22 0.0.0.0/0 any 0.0.0.0/0 OpenSSH - in

"Кортеж" - это сокращение, используемое внутри ufw для отслеживания правил, и может быть интерпретировано как одно из следующих:

 ### tuple ### <action> <proto> <dst port> <dst> <src port> <src> <direction> ### tuple ### <action> <proto> <dst port> <dst> <src port> <src> <dst app name> <src app name> <direction>

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

Общие правила заключаются в /etc/ufw. Пользовательские правила находятся в /lib/ufw/user*.

В Ubuntu 16.04 пользовательские правила хранятся в /etc/ufw/user.rules. Таким образом, вы можете ознакомиться с правилами с помощью:

sudo cat /etc/ufw/user.rules

Из командной строки, похоже, нет никакого способа. Однако, если вы подключаетесь по SSH из Ubuntu box (в Ubuntu box), вы можете попробовать этот немного запутанный метод :

В принципе, установите gufw на удаленном компьютере, затем подключитесь с помощью X forwarding и запустите графический интерфейс.

На удаленном устройстве, после подключения к -X в качестве опции :

sudo apt-get install gufwsudo gufw

Это покажет вам набор правил без необходимости его активации.

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

Я действительно пытался sudo ufw show raw, но это показывает вывод iptables, в котором я не могу разобраться ни с головой, ни с хвостом.

Текущий ответ - добавлено шоу ufw, любезно предоставленное @simon.