UFW: что именно?

13

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

Аббревиатура расшифровывается как Uncomplicated FireWall, как будто ufw фактически реализует сам брандмауэр. И действительно, во многих местах он упоминается как брандмауэр как таковой, например, в этой статье .

В справочной вики-странице Ubuntu на UFW говорится, что UFW - это инструмент настройки iptables. (В свою очередь, на странице справки вики о брандмауэрах говорится, что iptables - это база данных правил брандмауэра, и что он также является фактическим брандмауэром, как если бы база данных была брандмауэром, что, очевидно, ложно. И, конечно же, «iptables» также название программы.)

Если ufw - это инструмент настройки, то мы можем ожидать, что это будет программа, которую вы запускаете для настройки чего-либо, и когда вы закончите, вы выйдете с установленной конфигурацией. Это позиция принятого ответа на этот вопрос: Является ли Uncomplicated FireWall (ufw) сервисом?

Но другие ответы на этот вопрос не согласны - нет, это услуга. И действительно, на моей машине 18.04 я вижу, что ufw работает как сервис! Какого черта инструмент конфигурации работает как сервис ?!

Далее systemctl list-units --all --type=serviceшоу ufw.serviceесть loaded and active(а также exited?!) Пока что ufw statusпоказывает inactive.

Так что же означает статус ufw = неактивный?

  1. Что "брандмауэр" (что бы это ни было) неактивно? Это то, что может предложить документ man-страницы ufw для «status».

  2. Или это означает, что правила, настроенные в ufw, неактивны (но другие, настроенные в iptables, активны)?

  3. Или это означает, что ufw запустился при загрузке, установил свои правила в ipconfig (или куда бы они ни пошли), чтобы они теперь действовали, и теперь ufw не имеет ничего общего, поэтому он неактивен?

Особый интерес: я хочу следовать некоторым инструкциям, которые требуют ввода некоторых команд iptables, но я обеспокоен тем, что они будут конфликтовать или перезаписываться устройством ufw.

gwideman
источник
2
iptables - это брандмауэр. Он также содержит правила, потому что это, очевидно, необходимо, но называть его «базой данных» немного растягивает, поскольку ядро ​​не обеспечивает постоянство; загрузка их во время загрузки должна выполняться с помощью некоторого инструмента, такого как ufw.
Ян Худек
@JanHudec Я вижу, что некоторые люди говорят о iptables, как будто это брандмауэр, но, насколько я могу судить, netfilter обеспечивает функциональность брандмауэра, а iptables предоставляет дату для netfilter. Мне нравится ваша точка зрения, что iptables только хранит данные в памяти, и, следовательно, «база данных» также вводит в заблуждение.
gwideman
Я лично считаю netfilter частью iptables, но я могу ошибаться в этом.
Ян Худек
Занна отредактировала мой вопрос, чтобы привести в порядок такие вещи, как URL-адреса (спасибо!), Но заменила «UFW» на все экземпляры «ufw». Теперь я считаю, что строчные буквы - это правильный случай (как показано в manpages.ubuntu.com/manpages/xenial/en/man8/ufw.8.html и wiki.ubuntu.com/UncomplicatedFirewall , но меня не интересует редактирование Война с этим. Занна, пожалуйста, вернись в нижний регистр, если ты купишь мои показания.
gwideman

Ответы:

21

ufw - это интерфейс для netfilter / iptables, механизма Linux для маршрутизации и фильтрации интернет-трафика.

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

Сам по себе ufw - это не брандмауэр, это инструмент для настройки конфигурации netfilter / iptables. Он зарегистрирован как сервис, потому что его нужно запускать каждый раз при запуске машины. Я не верю, что он остается в памяти после выполнения этой конфигурации. «перезапуск» службы просто перезапускает свои сценарии. Нередко вещи в дистрибутивах Linux регистрируются как сервисы, даже если они являются просто сценариями, которые запускаются при загрузке или завершении работы, не оставаясь между ними.

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

Если sudo ufw statusвозвращается «неактивно», это означает, что UFW был отключен (и, например, не будет повторно применять какие-либо правила при запуске). Вы должны убедиться, что ufw включен sudo ufw enable, хотя вам также нужно настроить правила, чтобы это имело смысл. Если вы уверены, что вы включили UFW, но он возвращает «неактивно», может быть другая проблема.

Обратите внимание, что «запуск» сервиса не включает ufw, он просто активирует скрипт запуска. Если UFW отключен при запуске сценария запуска, он ничего не будет делать.

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

sudo iptables -L
sudo ip6tables -L
thomasrutter
источник
1
Примечание: лично я не использую ufw, я использую пакет с именем netfilter-persistent, который позволяет вам записывать собственные правила iptables в файл и повторно применять их при загрузке. При загрузке он, по сути, делает то, что делает ufw: запускает скрипт запуска, который применяет конфигурацию. Разница в том, что он не переводится из собственного упрощенного синтаксиса, а просто отправляет команды iptables напрямую в iptables.
Томасруттер
Там много хорошего. Благодарю. Об этом: «Если вы используете ufw, вы не можете устанавливать свои собственные правила iptables, используя ваши собственные скрипты, так как они будут перезаписаны, когда ufw устанавливает свои собственные». UFW активно удаляет все существующие правила iptables? Или вы просто говорите с изображением ufw, что вы не можете полагаться на вступающие в силу команды / правила iptables, потому что они могут быть перезаписаны ufw?
gwideman
Также к Томасу: «netfilter-persistent»> это относится к iptables-persistent?
gwideman
Да, так его называли. Если в вашей версии Ubuntu есть и то и другое, то пакет iptables-persistent, вероятно, будет просто переходным пакетом, который предоставит пользователям более старых версий путь обновления.
Томасруттер
1
Извините, если я запутал вас упоминанием resolv.conf, я просто использовал в качестве примера еще один фрагмент конфигурации в Ubuntu, который может управляться каким-то другим сервисом, игнорирующим любые изменения, которые вы делаете напрямую. Это не связано.
Томасруттер