Мне интересно, можно ли заставить UFW перечислить настроенные правила брандмауэра, даже если он не включен. В настоящее время у меня есть только ssh-доступ к серверу, и я не хочу включать UFW, если не настроено правило, разрешающее ssh. Однако, поскольку UFW в настоящее время не включен, я просто получаю «неактивное» сообщение, когда запускаю «ufw status».
Есть ли специальный флаг, который я могу использовать, или даже какой-нибудь файл конфигурации, на который я могу посмотреть, чтобы увидеть, какие правила настроены, даже если брандмауэр отключен?
В настоящее время нет способа показать введенные вами правила до включения брандмауэра с помощью команды CLI. Однако вы можете проверить файлы правил напрямую. /lib/ufw/user*.rules содержит правила, контролируемые с помощью команды CLI '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>
Может быть полезно иметь возможность добавить еще одну команду статуса для поддержки этого. Пожалуйста, рассмотрите возможность регистрации ошибки.
Теперь есть команда ufw show added
, которая выведет список настроенных для вас правил, даже если брандмауэр неактивен. Он был добавлен в качестве исправления для этого сообщения об ошибке и добавлен в v0.33
Так что теперь вы можете сделать:
# ufw status
Status: inactive
# ufw allow ssh
Rules updated
Rules updated (v6)
# ufw show added
Added user rules (see 'ufw status' for running firewall):
ufw allow 22
# ufw enable
Firewall is active and enabled on system startup
# ufw status
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
Формат вывода из [ 112] значительно упрощает написание команды удаления для каждого правила.
Общие правила приведены в /etc/ufw
. Пользовательские правила находятся в /lib/ufw/user*
.
В Ubuntu 16.04 пользовательские правила хранятся в /etc/ufw/user.rules
. Таким образом, вы можете увидеть правила с:
sudo cat /etc/ufw/user.rules
Из командной строки, похоже, нет пути. Однако, если вы работаете с SSH из коробки Ubuntu (в коробку Ubuntu), вы можете попробовать этот, немного запутанный метод:
По сути, установите gufw на удаленную коробку, затем соединитесь с X переадресация и запуск графического интерфейса.
На удаленном устройстве после подключения с -X
в качестве опции:
sudo apt-get install gufw
sudo gufw
Это покажет вам набор правил без необходимости его активации.
Имейте в виду, что если удаленное устройство является истинным «безголовым» сервером, то при установке GUFW может возникнуть неприятное количество зависимостей. Но если кто-то здесь не знает хитрости, чтобы UFW показывал вам нужный результат, не активируя его сначала, то это может быть вашим единственным вариантом.
Я попробовал sudo ufw show raw
, но это показывает вывод iptables, который я не могу сделать ни головой, ни хвостом.