Опубликован релиз динамически управляемого межсетевого экрана firewalld 1.2, реализованного в форме обвязки над пакетными фильтрами nftables и iptables. Firewalld запускается в виде фонового процесса, позволяющего динамически изменять правила пакетного фильтра через D-Bus, без необходимости перезагрузки правил пакетного фильтра и без разрыва установленных соединений. Проект уже применяется во многих дистрибутивах Linux, включая RHEL 7+, Fedora 18+ и SUSE/openSUSE 15+. Код firewalld написан на языке Python и распространяется под лицензией GPLv2...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=57441
Чем это лучше ufw и удобного gufw?
они обертки. а он уровнем ниже и г-о.
Он лучше буквально во всём. Попробуй и сам поймёшь. Разработчикам респект и уважение.
> Чем это лучше ...Ничем. Как видишь суффикс *d - выпиливай под корень.
Начни с ntpd.
В centos он выпилен в пользу chrony
Так chronyd же... Придется выпиливать (1691 ? S 0:00 /usr/sbin/chronyd -F 2
Ну httpd заменим на nginx. atd, crond - выкинуть заменив systemd-timers. smbd - нефиг виндузятникам потакать, пусть ставят нормальные ОС, выкинем.А что брать вместо rsyslogd? Вместо smartd? Вместо sshd, наконец?
iptables и так надстройка над netfilter зачем дополнительная надстройка над надстройкой?
Когда иптаблесы заменяют на нфтаблесы, не все успевают или горят желанием погружаться в изменения.
так при смене бинарнечек и делает все поправки (что то типа iptables-old) пихаешь ему старый синтаксис он плюнет новый уже под нфтейблопять вопрос - зачем надстройка?
чтобы было непонятно, как обрабатывается пакет. магия, ололо!
не надстройка, а пользовательский интерфейс для управления. Желаю удачи юзать netfilter без "надстроек".
пасибо уже юзаю без надстроек, чего и всем желаю
Ждём в Debian!
Не жди, просто поставь из репозиториев.
Не знаю, как в Debian, но в Ubuntu 20.04 он ставится одной командой... (Версия 0.82)
>при создании правил отталкивается не от IP-адресов, сетевых интерфейсов и номеров портов, а от названий службпрям ngfw какой-то
И в каком месте?
> И в каком месте?в том, что "при создании правил отталкивается" от сервисов (аппликейшенов) именно ngfw разобрав сам протокол. Отсюда и весь абсурд, казаться тем чем не являешься.
> разобрав сам протокол.Разве данная программа разбирает какието протоколы? Она отталкивается от алиасов для некоторых чисел.
Каким образом навешивание алиаса на номер порта "разбирает протокол" - загадка :)
> Разве данная программа разбирает какието протоколы? Она отталкивается от алиасов для некоторых
> чисел.вот и написал "прям ngfw какой-то", то есть - не разбирает протоколы, но оперирует понятием сервисов (аппликейшенов)
> Каким образом навешивание алиаса на номер порта "разбирает протокол" - загадка :)
ну как минимум "разбирает протокол" уровней L3/L4
Релиз обёртки над фаерволлами. Называйте вещи своими именами.
Что не является оберткой и как этим управлять?
ну дык истинный бог. который онные атомы для оберток и наштамповал.
управлять, расти тебе дитятко до ентого... еще долго и трудно...
И насколько роняет производительность эта безопасность. В ядре безопасности роняющее производительность, в интерфейсах.
Плотиш тыщи лиш бы не логало - современный мир.
Динамически изменять правила пакетного фильтра через D-Bus - это так важно для сервера потому что там ничего не меняется после установки, и этот фоновый процесс обязательно нужен вам. Мне нет, сразу удаляю.
Кроме твоего локалхоста существует ещё столько всего — целый мир! Подрастешь, пойдешь работать и сам увидишь.
ваша убогая шутка про localhost настолько в тему, что это убожество только и запускать на localhostе из за кучи гуевых программок которым вдруг понадобился входящий трафик.
здесь это самая уместная шутка, ведь уровень комментаторов ей полностью соответствует
вообще все настройки делаютя на фаерволах инфраструктуры (циски жуниперы брокейды ил хуавеи - кому что нравится/купили) а не на серверах
да и с кубом он сам всем управляет сетью без шаловливых ручек одмина
А вот и мамкины ибэшники подъехали, у которых внутри домашнего ланчика фаерволлы не нужны.
*V*ланчика
Это точно, поголовно лезут в IT даже те кто ничерта в этом не понимает и в целом не хотят понимать. В результат выплывают вот такие вот поделки. Облегчить жизнь лохам и осложняющую серверную платформу в принципе.
Если ссх не на 22 порту, оно сработает?
> Если ссх не на 22 порту, оно сработает?конечно, откроет вам тупо 22 порт, тут список /usr/lib/firewalld/services/
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>SSH</short>
<description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
<port protocol="tcp" port="22"/>
</service>
а выражения в элементах поддерживает?
что-то вроде
<port protocol="(select proto from tcp://myhost/proto)" port="http://myssite/queryfirewaldd"/>
?
> а выражения в элементах поддерживает?
> что-то вроде
> <port protocol="(select proto from tcp://myhost/proto)" port="http://myssite/queryfirewaldd"/>должен если ngwf
Так для этого поддерживается добавление своего сервиса sshd-my-cool-port...
мало того, что убогое, так еще завязано на дбус.и после этого линуксоиды смеются над 3 пакетными фильтрами в бзде.
я кайфую от PF особено его таблички искаропки, и не надо, что то типа ipset городить
> мало того, что убогое,твою биографию тут все уже наизусть знают
В БЗДе нет Дбус?
В базовой системе конечно нет, нахрена там этот дерибас? Уязвимости собирать? Если тебе надо dbus - ставишь из портов, а так ну нахрен он например в FAMP'е?
штатно конечно нет. омнопроги тянут по зависимостям.
https://play.google.com/store/apps/details?id=app.greyshirts...
такое надо.
Это же классно! Можно описать сервисы своими именами потом выдавать команды
"firewall-cmd --add --service=ПолетШмеляНадГранатом"
залетаешь такой и начинает исслудование и раскопки что и где накручено наверчено
так для того же и сделано. разве нет?
Это фигня. Куда важнее фича что можно открыть порт на минуту или на 10 минут, типа нужно что-то проверить или эксперимент произвести, а потом не забывать закрыть. Вот firewalld сам закроет ка было через заданное время.Очень полезная фича при поиске неясных проблем.
Вот наивные - думают, что это некий эксклюзив firewalld и что только благодаря firewalld такое возможно.
Это не так.
Реализовано это (может быть) с помощью возможностей ipset: при добавлении в список можно указать таймаут, по истечении которого элемент будет удален из списка *автоматически* (т.е. ядром).
Ну и очевидно, примитивно манипуляцией правилами iptables/nftabels через cron.
Брр. Почему *только*?Это очевидно делается руками или через крон. Просто firewalld делает это автоматически, убирая риски забывчивости. Типа "вот мне порт открыть на минуту, погонять iperf" а потом гоняем 5 минут и забываем. Ну от этого открытого порта проблем не будет, но ситуации разные бывают. Вы что, думаете кто-то полезет крон джоб писать каждый раз для этого?
А тут эта фича ничего не стоит в плане усилий, добавил --timeout и оно само выключится.
>отталкивается не от IP-адресов, сетевых интерфейсов и номеров портов, а от названий службПрекрасно. Главное не узнать что пользоваться алиасами вовсе не обязательно (это опция а не требование), и можно указывать именно IP-адреса, сетевые интерфейсы и номера портов.
> Прекрасно. Главное не узнать что пользоваться алиасами вовсе не обязательно (это опция
> а не требование), и можно указывать именно IP-адреса, сетевые интерфейсы и
> номера портов.у микроскопов тоже есть такая опция как забивать гвозди.
iptables/nftables и так обновляют правила в ядре без разрыва соединений.
nftables точно загружает новый набор правил транзакционно.
С этой точки зрения ничего, что нельзя сделать при помощи iptables/nftables/ipset, в firewalld нет.И зоны там дурацкие.
Лучше непосредственно юзать iptables/nftables или на крайняк shorewall.
Вот я давно писал как логично можно организовать правила
http://handmade-linux-firewall.narod.ru/
И, да, firewalld это просто обертка, которая генерит набор правил iptables/nftables из своего формата конфигурации и как именно эти правила организованы и насколько эффективно - это вопрос требующий изучения.Документация очень слабая
Изучал что эта обертка генерит на выходе - ужаснулся и после этого на норм проектах стараюсь не юзать. Что б было понятно вместо 5 строчек которые вы бы написали без нее - это чудо генерит в 20 раз больше и многое из того что получаем просто нах не нужно.
давай конкретный воспроизводимый пример, трепло
Более того, при попытке сделать конфигурацию отличную от "локалхост хомячка" - тут же оказывается что весь сахар этой обертки - исчезает бесследно, и нужно описывать все как и раньше, построчно, без всяких алиасов, указывая порты, ip, и протоколы...
> Добавлены сервисы с поддержкой gpsd, ident, ps3netsrv, CrateDB, checkmk, netdata, Kodi JSON-RPC, EventServer, Prometheus node-exporter, kubelet-readonlyЭ... то есть там для каждого приложения нужна своя поддержка? Ужас какой...
Речь просто про более фичастый вариант бывшего /etc/services (который некорректен в плане tcp/udp, смешивает в кучу абстрактные протоколы и конкретные программные реализации, плохо отражает приложения которым нужно более одного порта и тп). Т.е. да, поддерживается список определений, какие порты какое приложение требует. Они в раздельных файлах, поэтому определение может идти в конкретном приложении, а не общем firewalld.
Когда сделают фильтр по имени процесса, просящего доступ в сеть? Чтобы я себе мог просто белы список процессов составить.Столько лет Линуксу, а такой базовой фичи нет для пользователя недоверенных программ. Может я чего не понимаю.
Когда доля линукса на десктопе станет больше погрешности измерения - сразу же появится... Наверное :)
Иными словами - никогда)
>Когда сделают фильтр по имени процесса, просящего доступ в сеть..сделали, примерно в 2005-м году.И даже как всегда,более чем одним способом.
С этим все непросто.
Когда-то можно было фильтровать по pid, но это убрали.
И прям по имени процесса или файла скорее всего никто никогда в ядре уже делать не будет, т.к. с точки зрения ядерщиков, все что можно сделать в юзерспейс не надо тащить в ядро.
Кроме того имя процесса/команды неоднозначно: их может быть несколько.
Для входящих соединений определить процесс, который получит пакет в общем случае затруднительно.
В любом случае придется самому мастерить, сам я таким не занимался.
На данный момент с помощью iptables можно фильтровать по
-m cgroup --path...
По сути это все, что доступно непосредственно по процессам.1 Пробовать/смотреть куда системд пихает процесс в cgroups и использовать -m cgroup --path если получится
2 Пробовать по разному использовать network namespaces
https://unix.stackexchange.com/questions/68956/block-network...
Причем в каждом пространстве имен собственные интерфейсы, таблицы маршрутизации и набор правил фаервола.
Наверное это самый перспективный и гибкий вариант.3 Запускать приложения под другим пользователем и использовать для фильтрации
-m owner...4 Пробовать selinux, apparmor, ясно что это гемор, хотя...
https://askubuntu.com/questions/679474/how-to-block-internet...
Т.е. apparmor настроить не очень сложно и можно прям по путям в фс огрничения делать.
Тоже неплохой вариант.5 Пробовать готовые проги, я нашел
https://github.com/evilsocket/opensnitch
https://douaneapp.com/Эти проги gui и интерактивные, как именно они реализуют этот функционал - над смотреть исходники.
Как видно вариантов много, поэтому ждать реализации этого прямо в ядре+iptables/nftables нет смысла.
мониторит прок судя по коду. вообще лютое г
> фильтр по имени процессана винде это уже проходили.
через несколько итерций пришли к подписанным бинарникам или хэшам.
не надо так.
Вы хотите аналог Windows Filtering Platform?В Windows много файрволов, но один пласт API для написания собственного файрвола. В Linux, наоборот, один файрвол и куча разных несовместимых API для его настройки.
> Столько лет Линуксу, а такой базовой фичи нет для пользователя недоверенных программ. Может я чего не понимаю.
Да, вы не понимаете объем задачи: https://docs.microsoft.com/en-us/windows/win32/fwp/windows-f...
Даже если брать ту "мизерную" функцию с всплывающими окошками, разрешить процессу то-то и то-то, придётся реализовать RPC. Тут две проблемы:
- ответственность и её перекладывание. Для разработчиков ядра userspace как бы "вне зоны ответственности". Вечная игра в горячую картошку.
- драматизм вокруг RPC. На стороне ядра и в юзерспейсе должно находиться единое RPC, манипулирующее сложными структурами данных. Помните эпопею про kdbus и то как его не приняли (по вполне техническим причинам) дальнейшие попытки переизобрести "нормальное" RPC вроде проекта bus1, не знаю насколько оно живое.
Далее прочитайте этот же тред выше и пронаблюдайте количество болезных истеричек у которых dbus воду в кране выпил и как это "не нужно на сервере". В Linux очень много RPC-подсистем с убогой архитектурой. Одна из них Netlink, которая есть в ядре, но отстаёт от требований юзерспейса. Вот её надо менять для решения целого ряда задач, но там же визгу будет...D-Bus сам по себе при этом мягко говоря не эталон. Он слишком сложен и перегружен функционалом, потому что это универсальная шина IPC+RPC. Нужен аналог COM+/DCOM, работающий в клиент-серверном режиме без всякого Multicast-а и не зависящий от сетевой подсистемы. Но такого API в ядре нет.
> Чтобы я себе мог просто белы список процессов составить.
В Windows можно не только белый список составить, там можно еще и взять список и настроить так чтобы на определенные процессы траффик не проходил без аутентификации и шифрования ipsec. То есть файрвол пропустит входящий траффик к порту только если есть ipsec и пользователь такой-то и с компьютера такого-то. Но научить линуксоидов ipsec-у для создания демилитаризованных зон... они единственное своё юзерспейсное RPC выпиливают в порыве белой горячки. Всё это малореализуемо.
Уже давно сделали, давно юзаю и вам желаю https://github.com/evilsocket/opensnitch
Давно сделали, но ты не осилил. Называется SELinux.
> Когда сделают фильтр по имени процесса, просящего доступ в сеть?Когда ты опишешь надёжный, непротиворечивый и невзламываемый метод определения имени процесса. В любой ОС на выбор.
Зачем его "определять"? Он известен изначально.Вы вероятно думаете, что процесс инициируется в момент появления пакета на интерфейсе? Тоесть ничего небыло и вдруг:
Пакет на интерфейсе!!! ААААА!!! Что с ним делать !??!! ...ааааа..паника.. откуда взялся этот пакет !?? ... ааааа [стук головы об радиатор процессора]... что делать??Такое да? :)
В момент появления пакета на интерфейсе - за ним уже давно наблюдали, и откуда он взялся хорошо известно. Просто в винде файрвол писали для людей, а в линуксе - для маршрутизатора ...
Как только количество линуха на десктопе превысит погрешность измерения - ктото озаботится и напишет обертку под механизмы которые в ядре были давным давно и которую гордо назовет НекстГенерейшенЮзерАппликейшенФайрвол...
Просто ты не отличаешь L4 файрвол от L7 файрвола.
>Может я чего не понимаю.Башескритования не понимаешь. Можно по PID. А чтобы его получить, есть Bash.
Вероятно ты вообще слабо понимаешь, что это, зачем это и как всё это работает. Хомячковый фаерволл вобщем то занимает всего несколько строк правил и достаточен для одминов локалхоста и территориально расположен в его роутере.
это в линухе так. файрвол стоит "гдето там на роутере и имеет пару правил".
А в нормальной адекватной ОС- файрвол стоит на компе юзера, и педантично управляет допуском и блокированием работы с сетью каждого конкретного процесса в системе.
> это в линухе так. файрвол стоит "гдето там на роутере и имеет
> пару правил".
> А в нормальной адекватной ОС- файрвол стоит на компе юзера, и педантично
> управляет допуском и блокированием работы с сетью каждого конкретного процесса в
> системе.Насчёт адекватности такой ОС есть большие сомнения. Ну для мамкиного хакера такая может и пойдёт. А обычному юзеру этот типа фаерволл нахрен не упёрся, юзеру надо, чтобы работало, а не пыталось блокировать то, что он хочет.
Нужен systemd-firewalld
и systemd-firefox ну и иногда systemd-tuxracerd
Былоб так круто. Разрешаю, реализовывайте.
о, завсегдатаи с шутками за 100. опеннет стабилен
И тут они обнаружили фатальный
недостаток...
> Для изменения конфигурации межсетевого экрана также может использоваться графический интерфейс firewall-config (GTK) и апплет firewall-applet (Qt).Спасибо, не знал, что интерфейсы есть!
Какввенде!
firewalld - пришло твое время.p.s. этож все для неосиляторов nftables/iptables
nftables учат походу только ботаны
т.е. если я файл своей кривой поделки проименую ssh то получу все возможности ssh, однако мысль мне нравитца.
>т.е. если я файл своей кривой поделкиДа.
>проименую ssh
Ну допустим...
>то получу все возможности ssh,
Схуали?
>однако мысль мне нравитца.
Штирлиц подумал мысль... Ему понравилось и он подумал еще :)
срояли йопт, оно ж того именования сервисов читает, а эта вещчъ гвоздями не прибитая.
> именования сервисов читаетиз простого текстового файла, который никакого отношения ни к реальным сервисам, ни к ИМЕНАМ ФАЙЛОВ не имеет.
когда уже появиться mycomputerd ???