Мне интересно, можно ли заставить 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.