CentOS 8 firewalld + nftables или просто nftables

это старая ветка, но в отчетах об ошибках gnome это недавняя открытая проблема, поэтому она может быть полезна всем, кто часами ищет решение для исправления gvfs -проблем с фьюзером -, которые все кажутся тесно связаны.

Сообщение об ошибке от объединения:

Error copying '/media/root/5FDA03906F33F217/SAVE/rsyncTEST-usb/allusers' to '/run/user/0/gvfs/ftp:host=192.168.0.103/var/ftp/ftpd/images/PersistenceUSBs/rsync-meld/allusers'

[Errno 95] Operation not supported: '/run/user/0/gvfs/ftp:host=192.168.0.103/var/ftp/ftpd/images/PersistenceUSBs/rsync-meld/allusers'.

Я столкнулся с проблемой фьюзера gvfs -при попытке использовать meld/diff/kdiff по ftp. Кажется, проблема между фьюзером и gvfs. Похоже, что проблема не возникает в 3.15.1, но о ней начинают сообщать в 3.15.2. (новая версия Python? )Решение является обходным путем, а не исправлением -файлы/каталоги будут скопированы, но ошибка все равно будет отображаться.

Ответ Кристофера определяет проблему и предлагает решение.

Другим возможным решением является использование sshfs (см. этот комментарий и этот поток). Для получения дополнительной информации о gvfs-commandsсм. . В чем разница между командами gvfs и обычными командами, такими как cat, ls, cp?

Возможные -связанные ошибки включают GNOME #317875 и GNOME #768281 .

2
17.11.2019, 16:56
1 ответ

Думаю, ответ довольно прост. Во-первых, вы поступили совершенно правильно...

Firewalld — это чистый внешний интерфейс. Это не независимый брандмауэр сам по себе. Он работает только путем получения инструкций, а затем преобразования их в правила nftables (, ранее iptables ), а правила nftables ЯВЛЯЮТСЯ брандмауэром. Таким образом, у вас есть выбор между запуском «firewalld с использованием nftables» и запуском «только nftables». Nftables, в свою очередь, работает непосредственно как часть ядра, используя там ряд модулей, которые частично являются новыми, а частично повторяют систему перехватчиков и модулей ядра «netfilter», которая стала частью ядра примерно в 2000 году.

Запуск firewalld и nftables (раньше, iptables )параллельно становится довольно запутанным,хотя я верю, что некоторые люди так и делают. Если вы все равно привыкли использовать свои собственные правила iptables, идеальным решением будет преобразовать их в правила nftables и позволить им быть правилами вашего брандмауэра. Лучше всего полностью отключить и желательно замаскировать firewalld -, чтобы быть немного педантичным, вы можете запустить:

sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo systemctl mask --now firewalld

Вам больше ничего не нужно делать. Я сам тоже запускаю напрямую с nftables. Я считаю, что это намного прозрачнее, чем использование внешнего интерфейса (есть и другие, кроме firewalld, конечно)-это дает вам полное понимание того, что вы делаете, и вы можете легко получить полный обзор эффекта ваших правил запустив sudo nft list ruleset > /etc/nftables.conf. А использование отдельных таблиц nft в /etc/nftables.d — хороший и простой способ отслеживать, что вы сделали и где что находится...

Впоследствии @eriknelson спросил в комментариях, зачем вообще маскировать службу. Это сделано, на самом деле, из практических соображений удобства пользователей, а также для защиты от ошибок и сложного -до -поиска ошибок. Крайне нежелательно иметь более одной работающей системы брандмауэра, так как результаты для большинства людей будут непредсказуемы, и маловероятно, что вы получите четкие сообщения об ошибках от любого брандмауэра о его взаимодействии с другим брандмауэром, которого там не ожидается. Однако ядро ​​​​пытается обработать все, что ему дано. Если вы используете nftables или iptables, вам не следует использовать firewalld. Или уфв. Или любая другая система более высокого уровня. И если вы в основном используете брандмауэр более высокого -уровня, такой как firewalld, вам не нравится возиться с подробными инструкциями низкого -уровня (, хотя иногда это делается для конкретной сложной ситуации, которую вы тоже обнаружите. сложно указать в более высоком -уровне межсетевого экрана ).

Когда вы маскируете службу systemd, вы не можете ни запустить, ни включить ее сразу. Если вы обнаружите/осознаете, что услуга замаскирована,вы можете разоблачить его -и затем делать, что хотите. Это настроено для предотвращения любых таких изменений, сделанных непреднамеренно или автоматически. Вы можете сами убедиться, есть ли на вашем компьютере замаскированные службы, запустивsudo systemctl list-unit-files | grep mask

Таким образом, эта ситуация, когда вы не обязательно хотите полностью удалить firewalld, но в равной степени не хотите запускать его, возможно, непреднамеренно, является как раз одним из случаев, когда использование sudo systemctl mask xyz.serviceможет пригодиться.

Судя по тому, что вы пишете, я полагаю, что вы все это знаете. Но я немного проповедник nftables, и если другие прочитают этот ответ, им могут помочь эти небольшие подсказки. Документация nftables хороша, но не чрезмерна.

7
27.01.2020, 22:07

Теги

Похожие вопросы