LINUX.ORG.RU
ФорумTalks

systemd опять не виноват (Успешная подмена пакетов)

 ,


1

2

«Успешная подмена пакетов продемонстрирована для туннелей, создаваемых при помощи OpenVPN, WireGuard и IKEv2/IPSec. Для IPv4 атака возможна в случае перевода rp_filter в режим „Loose“ (sysctl net.ipv4.conf.all.rp_filter = 2). Изначально в большинстве систем применялся режим „Strict“, но начиная с systemd 240 режим работы по умолчанию был заменён на „Loose“ и данное изменение отразилось в настройках по умолчанию многих дистрибутивов Linux.»

http://www.opennet.ru/opennews/art.shtml?num=51986

«И вот просыпаешься ты с утра — у тебя масса свершений запланирована на день, тебе тут создавать систему вселенского масштаба или, например, в космос лететь — а у тебя молния на штанах расстёгивается не сверху вниз, как ты привык, а снизу вверх.»

Выпуск systemd 244 (комментарий)

из release notes:

The "net.ipv4.conf.all.rp_filter" sysctl will now be set to 2 by 
          default. This effectively switches the RFC3704 Reverse Path
          filtering from Strict mode to Loose mode. 
          This is more appropriate for hosts that have multiple links with 
          routes to the same networks (e.g. a client with a Wi-Fi and Ethernet 
          both connected to the internet).

★★★★★

Последнее исправление: crypt (всего исправлений: 3)
Ответ на: комментарий от anc

я уже намекнул

а зачем намекать? мы же не в загадки играем. прямо сказать слабо? либо ты понимаешь, о чем мы говорим, либо нет.

crypt ★★★★★
() автор топика
Ответ на: комментарий от anc

все, ладно. человек либо имеет какие-то навыки логического мышления, либо его этому не учили. anc, способность дать определение - это первая ступенька. закончили разговор.

crypt ★★★★★
() автор топика
Ответ на: комментарий от WitcherGeralt

@intelfx отбивает корявые нападки быстрее, чем их формулируют

t184256 ★★★★★
()
Ответ на: комментарий от crypt

первая ступенька

Это уметь задать вопрос. Ваш вопрос был не о чем. Вы не поняли/не-хотели понять мой ответ. И видимо захотели «академический ответ». Но разве будет вам «теплее» от того, что я дам Вам «академический ответ» ? Который вы и сами можете нагуглить, кмк интернет у вас работает, раз Вы здесь пишите.

anc ★★★★★
()
Ответ на: комментарий от anc

мне не нужен был ответ из интернета, меня интересовало твое личное понимание. но ты кроме как отрывочные «посмотрите» и «китай» не можешь связать двух слов. что называется говоришь и сам не понимаешь, о чем. академический ответ тебе самому помог бы.

crypt ★★★★★
() автор топика
Ответ на: комментарий от crypt

Утомили. init процесс пускающийся поcле загрузки ведра, указанный по умолчанию! А что там я напишу, абсолютно по барабану. Это хоть «hello world» может быть.

anc ★★★★★
()
Ответ на: комментарий от anc

ведра

ядра. коверкание лишь говорит, что ты не пытаешься содержать свои мозги в чистоте.

init процесс пускающийся поcле загрузки ведра

если бы это был только процесс, он не назывался бы «системой».

Утомили

с непривычки думать всегда тяжело.

crypt ★★★★★
() автор топика
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: комментарий от crypt

ядра. коверкание лишь говорит, что ты не пытаешься содержать свои мозги в чистоте.

Свои бы содержали «в чистоте».

если бы это был только процесс, он не назывался бы «системой».

Да ладно? Если указать по старинке /bin/bash это будет системой?

anc ★★★★★
()
Ответ на: комментарий от anc

Свои бы содержали «в чистоте».

я стараюсь. поэтому и спросил про определения.

Если указать по старинке /bin/bash это будет системой?

нет. это не будет системой, в т.ч. не будет системой инициализации.

crypt ★★★★★
() автор топика
Ответ на: комментарий от crypt

нет. это не будет системой,

Это почему ещё? Вполне рабочее получаеться.

не будет системой инициализации.

Вот! Мы дошли до идеи /bin/bash в ините не будет системой инициализации. А /sbin/init любой может стать таковой. А может и не стать. Все зависит от того что там будет. Может тот же «hello world»

anc ★★★★★
()
Ответ на: комментарий от anc

Это почему ещё? Вполне рабочее получаеться.

потому что посмотри определение слова «система». система предполагает некоторый порядок взаимодействия частей. init и bash состоят из одной части. один процесс. и никакого взаимодействия частей. запустили и забыли.

Да ладно? Если указать по старинке /bin/bash это будет системой?

нет. это не будет системой, в т.ч. не будет системой инициализации. процесс init - это всего лишь процесс инициализации (initialization). то, что ты, видимо, путаешь с системой инициализации.

upstart, openrc, lauchd ... - это _системы_ инициализации, т.к. преполагают чуть более сложную организацию, с зависимостями (взаимодействием частей, см. выше).

crypt ★★★★★
() автор топика
Ответ на: комментарий от crypt

upstart, openrc, lauchd ... - это _системы_ инициализации, т.к. преполагают чуть более сложную организацию, с зависимостями (взаимодействием частей, см. выше).

Вы пропустили System V и bsdinit

anc ★★★★★
()
Ответ на: комментарий от anc

ты "..." видел? знаешь, что значит такое обозначение? фух... тяжело с людьми, кто плохо учился.

crypt ★★★★★
() автор топика
Ответ на: комментарий от crypt

Мне кажется бесполезно с вами разговаривать, про init
Самих идей и реализаций чуть больше чем много, но сама основа осталась той же, init это то что стартует вторым и рулит как уж получиться.

anc ★★★★★
()
Ответ на: комментарий от crypt

Я вообще слаковод если что. Со стажем с второй половины 90-х.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от anc

я не согласен с «как уж получится». все эти споры init vs systemd сводятся к тому, что у них совершенно разный охват тем, чем они рулят. ты сам в этом топике писал, что rp должен управлять файрвол. в случае с bsd init, выходит что init запускает службу, которая настраивает ядерный файрвол. в случае с systemd ...

crypt ★★★★★
() автор топика
Ответ на: комментарий от anc

но сама основа осталась той же, init это то что стартует вторым и рулит как уж получиться.

системы инициализации в первую очередь управляют сервисами.

lauchd - сервис манагер sysv - набор скриптов для запуска сервисов openrc - тоже о сервисах

ни одна из не поглощает сервисы, которыми рулит. от этого и не возникается вопроса, может ли система инициализации поменять настройки ядра.

загрузчик у нас действительно может отправлять какие-то переменные ядру.

но только systemd начинает работать с EFI переменными.

crypt ★★★★★
() автор топика
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: комментарий от anc

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

а если Google Chrome запущу, то он автоматически получит право настраивать сетевые интерфейсы? или файрвол? systemd уже включает сервис sysctl, dhcp и неизвестно, что еще будет включать. то есть, это не просто система инициализации, но и сами сервисы. program suite, как ее вежливо называют.

crypt ★★★★★
() автор топика
Последнее исправление: crypt (всего исправлений: 2)
Ответ на: комментарий от crypt

а ничего не доказывает, ты можешь хоть патч у себя наложить.

Ну какой патч? Была рекомендация сделать линк из /etc/sysctl.d/99-sysctl.conf -> ../sysctl.conf
Прямо при установке. И поведение было описано. Но ведь сделать линк, или в скопировать старое содержимое /etc/sysctl.conf в каталог /etc/sysctl.d это непосильно, за такое Поттеринг лично придёт и накажет.

угу. иначе бы ты, наверное, в исходниках смог это показать=)

Я тебе показал результат. Тебе это конечно ничего не доказывает. Но, беда-то в том, что кое кто будут истерить про дефолт, но вот /etc/sysctl.d/98-rp_filter.conf с содержимым так и не сделают.

чья бы корова мычала)

Ты вроде меня заблеклистил. Зачем отвечаешь?
Можешь у любого модератора спросить, сколько у меня здесь сообщений с виндовым юзер-агентом.

imul ★★★★★
()
Ответ на: комментарий от crypt

К вопросу дефолта...
Вот сервер с центось 7

# ls -l /etc/sysctl.d/99-sysctl.conf
lrwxrwxrwx. 1 root root 14 сен 18 11:20 /etc/sysctl.d/99-sysctl.conf -> ../sysctl.conf

# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)

Линк есть

Вот убунта, 18.04.3
# ls -l /etc/sysctl.d/99-sysctl.conf
lrwxrwxrwx 1 root root 14 Nov 15 18:01 /etc/sysctl.d/99-sysctl.conf -> ../sysctl.conf
root@avreg-1223:~# cat /etc/debian_version
buster/sid

Линк есть

Вот в контейнерах на ноуте:

# ls -l /var/lib/machines/*/etc/sysctl.d/99-sysctl.conf
lrwxrwxrwx 1 root root 14 июл 1 18:29 /var/lib/machines/centos8/etc/sysctl.d/99-sysctl.conf -> ../sysctl.conf
lrwxrwxrwx 1 root root 14 окт 11 22:59 /var/lib/machines/freeswitch-centos/etc/sysctl.d/99-sysctl.conf -> ../sysctl.conf
lrwxrwxrwx. 1 root root 14 авг 20 14:50 /var/lib/machines/freeswitch-debian10/etc/sysctl.d/99-sysctl.conf -> ../sysctl.conf
lrwxrwxrwx 1 root root 14 окт 11 22:59 /var/lib/machines/freeswitch/etc/sysctl.d/99-sysctl.conf -> ../sysctl.conf

Тоже есть линки. По дефолту в дистрибутивах их проставляют.
Но, искать мы полезем в исходники.
И что же ты там кстати нашёл?

imul ★★★★★
()
Ответ на: комментарий от crypt

systemd не использует /etc/sysctl.conf, специалист хренов. ты сам только что облажался на ровном месте.

systemd использует каталоги sysctl.d, в одном из которых обычно (например, в Debian, RHEL, Fedora…) присутствует символьная ссылка на /etc/sysctl.conf. Так что тот, кому вы отвечали, не так уж и неправ.

Rootlexx ★★★★★
()
Ответ на: комментарий от crypt

это неверно. там оно задается дефолтными настройками в /etc/sysctl.conf

…который поставляется дистрибутивом. Реальное значение по умолчанию (которое в ядре) - 0.

Ровно так же дистрибутивы могут поставлять свои настройки и в случае systemd - в чём разница?

здесь важно, что ни один дистрибутив не дергает сетинги каждый релиз.

А systemd «дергает сетинги каждый релиз»?

Rootlexx ★★★★★
()
Ответ на: комментарий от crypt

Вопрос, почему это должна делать система инициализации?

Например, потому что применение настроек sysctl происходит как раз при инициализации системы?

Rootlexx ★★★★★
()
Ответ на: комментарий от Rootlexx

ах вот где собака порылась! ну формально я прав. симлинки - это как скотч. заплатка, которую поставили мейнтейнеры.

crypt ★★★★★
() автор топика
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: комментарий от Rootlexx

Ровно так же дистрибутивы могут поставлять свои настройки и в случае systemd - в чём разница?

разница в людях. ЛП и кто там с ним вместе - очень специфические люди, обладатели лузерской награды от хакерского сообщества. чем больше они берут на себя, тем шире поверхность, где они могут споткнуться.

А systemd «дергает сетинги каждый релиз»?

да, они очень часто меняют дефолтное поведение. о чем не устаю писать.

crypt ★★★★★
() автор топика
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: комментарий от Rootlexx

Например, потому что применение настроек sysctl происходит как раз при инициализации системы?

я там выше прошу определить, что является системой инициализации, что нет. systemd уже не только система инициализации, имхо.

crypt ★★★★★
() автор топика
Ответ на: комментарий от crypt

разница в людях. ЛП и кто там с ним вместе - очень специфические люди, обладатели лузерской награды от хакерского сообщества. чем больше они берут на себя, тем шире поверхность, где они могут споткнуться.

Вы можете относиться к Поттерингу, как хотите, но автор изменения rp_filter с 1 на 2 - Lubomir Rintel, один из разработчиков NetworkManager. Но «виноват» всё равно Поттеринг.

да, они очень часто меняют дефолтное поведение. о чем не устаю писать.

Во-первых, «очень часто» - это очень неконкретно. Да, бывали изменения поведения по умолчанию, но даже близко не «каждый релиз», как вы написали.

Во-вторых, эти изменения обычно достаточно подробно аргументируются, а не просто «мы чего-то поменяли, просто потому что захотелось».

В-третьих, в этом нет ничего плохого, если это всё документируется. Более того, это в принципе не такая уж и редкость: можете почитать release notes любого крупного проекта.

Rootlexx ★★★★★
()
Ответ на: комментарий от Rootlexx

один из разработчиков

я вроде явно написал, что имею ввиду всю группу. лидер всего лишь задает стандарты.

«очень часто» - это очень неконкретно.

в 207 сделали загрузку любых файлов из /etc/sysctl.d, в 21х ограничились файлами с расширением .conf. для меня абсолютно очевидно, что в два этапа это могли сделать только абсолютно неопытные разработчики. обработка файлов в директории для меня - типовая задача и я понимаю, что любой человек с маломальским опытом не будет загружать произвольно _все_ файлы из директории. они собсно пришли к тому же, но им понадобилось несколько месяцев. из-за их некомпетентности они дважды поменяли поведение по умолчанию. потом еще этот симлинк, эта заплатка. теперь добавим к этому, что они меняют другие элементы своей системы и у нас будет изменение дефолтного поведения в том или ином месте почти каждый релиз.

Вот сходу из 243:

This release enables unprivileged programs blabla ... by turning on the «net.ipv4.ping_group_range» sysctl ...blablabla... This change should be reasonably safe.

абсолютно то же самое поведение.

эти изменения обычно достаточно подробно аргументируются

и что? ес-но, у них есть своя логика: «наша система все, а вы ничто». об этом отношении к пользователям заявлял сам ЛП. из-за этого были конфликт, когда они хотели чего-то от разработчиков ядра. потому что им так удобнее.

в этом нет ничего плохого, если это всё документируется.

ничем не подкрепленное утверждение. расскажи это тем, у кого postgres потерял данные из-за изменений поведения с tmpfs.

crypt ★★★★★
() автор топика
Последнее исправление: crypt (всего исправлений: 4)
Ответ на: комментарий от crypt

в 207 сделали загрузку любых файлов ...

Наследие RH. :) Не совсем конечно так, просто напомнили давнюю историю, загрузка настроек из файлов ifcfg* (толи ifcfg-*) коллега как-то наступил на эти грабельки скопировав в этой же директории файл cp ifcfg-eth0 ifcfg-eth0.bak

anc ★★★★★
()
Ответ на: комментарий от anc

если у вас настроен fw, то к безопастности это никакого отношения не имеет.

systemd опять не виноват (Успешная подмена пакетов) (комментарий)

ты несколько раз утверждал, что дефолтные настройки роли не играют, потому что перекрываются _ручными_ настройками файрвол.

1) ты не можешь ожидать этого от обычного пользователя убунту, который не знает, что такое файрвол.

2) ты все-таки предполагаешь, что файрвол и система инициализации - это разные вещи, верно? и sysctl и файрвол - это интерфейсы к функциям ядра по управлению сетевыми пакетами. а файрвол может быть частью systemd. речь о firewalld. стало быть то, что ты ошибочно называешь системой инициализации, включает и файрвол. стало быть в твоем понимании настройка системы инициализации обеспечивает безопасность и фильтрацию трафика.

crypt ★★★★★
() автор топика
Ответ на: комментарий от crypt

ты несколько раз утверждал, что дефолтные настройки роли не играют, потому что перекрываются _ручными_ настройками файрвол.

Я утверждал что при настроенном fw без разницы что там будет 0-1-2 а не то что fw рулит этим параметром. Видим разницу?

а файрвол может быть частью systemd. речь о firewalld.

Это два разных человека. firewalld никак не связан с systemd, общего у них только буква в окончании. firewalld это надстройка над netfilter, такая же как и ufw в убунту. Можно пользовать, а можно не пользовать и использовать только iptables/nftables.

anc ★★★★★
()
Ответ на: комментарий от anc

firewalld никак не связан с systemd, общего у них только буква в окончании.

это неверно. и то, и то разрабатывается редхатом. разработчики общаются и сотрудничают. просто пока оно все еще хранится в двух разных git репозиториях. и совершенно не случайно они названы в рамках одной конвенции. обе штуки вошли одновременно в RHEL7. а вот линкуется ли сейчас systemctl с libnetfilter я не знаю.

crypt ★★★★★
() автор топика
Ответ на: комментарий от anc

Я утверждал что при настроенном fw без разницы что там будет 0-1-2 а не то что fw рулит этим параметром. Видим разницу?

т.е. fw не меняет sysctl параметр? а чем логика разрешать прохождение пакета в одном месте и потом настраивать его фильтрацию в файрвол? все-таки кто-то ведь это должен будет настроить. или это из серии заплаток «создадим симлинк на sysctl.conf». так я уже выше написал: systemd часто и в разных местах меняет поведение. ты замучаешься везде соломку подстилать. особенно в случае с ubuntu-юзером.

crypt ★★★★★
() автор топика
Последнее исправление: crypt (всего исправлений: 2)
Ответ на: комментарий от crypt

это неверно. и то, и то разрабатывается редхатом.

И что? Если две разные вещи разрабатываются одной компанией одновременно должно означать что они связанны?
Ещё раз firewalld это надстройка над iptables/nftables.

anc ★★★★★
()
Ответ на: комментарий от anc

там выше мне Rootlexx пишет:

«Вы можете относиться к Поттерингу, как хотите, но автор изменения rp_filter с 1 на 2 - Lubomir Rintel, один из разработчиков NetworkManager. »

казалось бы NetworkManager и systemd - это два совершенно разных проекта!

Ещё раз firewalld это надстройка над iptables/nftables.

а NetworkManager надстройка над ...

crypt ★★★★★
() автор топика
Ответ на: комментарий от crypt

а чем логика разрешать прохождение пакета в одном месте и потом настраивать его фильтрацию в файрвол?

Вопросом на вопрос. В чем смысл настройки fw ?

anc ★★★★★
()
Ответ на: комментарий от crypt

один из разработчиков

я вроде явно написал, что имею ввиду всю группу

Ну что за манипуляции уровня детсада? :/

один из разработчиков NetworkManager

в 207 сделали загрузку любых файлов из /etc/sysctl.d, в 21х ограничились файлами с расширением .conf

Вот коммит 9-летней давности, добавляющий утилиту systemd-sysctl:

        if (!endswith(fpath, ".conf"))
                return 0;

Как видите, фильтрация имени файла по расширению «.conf» присутствует с самого начала.

Вот сходу из 243:

This release enables unprivileged programs blabla … by turning on the «net.ipv4.ping_group_range» sysctl …blablabla… This change should be reasonably safe.

И вот сейчас вы поставили точку в конце вовсе не для того, чтобы создать впечатление, что разработчики просто написали «должно быть безопасно», не объяснив, почему, да? /facepalm

Вот последнее предложение полностью:

This change should be reasonably safe, as the kernel support for it was specifically implemented to allow safe access to ICMP Echo for processes lacking any privileges.

Rootlexx ★★★★★
()
Ответ на: комментарий от anc

ок, я хочу сказать, что sysctl переменная всего лишь удобная кнопка для включения этой функции в ядре. в *BSD ее нет, там настраиваешь fw. но это в любом случае функции ядра. на том или ином этапе. ты просто настраиваешь ядро тем или иным образом. поэтому я не понимаю, почему тебе так хочется настроить ядро в одном месте так, а в другом месте эдак.

crypt ★★★★★
() автор топика
Ответ на: комментарий от crypt

nm, для настройки не вызывает команды ip/ifconfig/route/...
В отличии от firewalld который вызывает все теже iptables/nft

anc ★★★★★
()
Ответ на: комментарий от Rootlexx

Ну что за манипуляции уровня детсада? :/

мне себя цитировать? «ЛП и кто там с ним вместе»

Вот коммит 9-летней давности, добавляющий утилиту systemd-sysctl:

тогда не знаю, почему https://wiki.archlinux.org/index.php/Sysctl предлагает /etc/sysctl.d/foo переименовать в foo.conf

зато я вижу в этом комите чтение /etc/sysctl.conf без всяких симлинков.

nftw(«/etc/sysctl.conf», nftw_cb, 64, FTW_MOUNT|FTW_PHYS);

ага, да а вот изменения поведения в 207: The systemd-sysctl tool no longer natively reads the file /etc/sysctl.conf.

Ок, не два, а одно изменение дефолтного поведения.

не объяснив, почему, да? /facepalm

а вообще нужно ли это, каждый месяц читать ченжлог к системе инициализации и объяснять (себе самому) что это и зачем? данная тема является примером, что _любое_ изменение может иметь не предвиденные последствия. отсюда я не вижу смысла вообще в таком ритме разработки.

crypt ★★★★★
() автор топика
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: комментарий от anc

это потому что пытались переписать firewalld на С, но ресурсов не хватило. так и остался на питоне. я думаю, по этой причине и лежит отдельно. переписали бы - не вызывал бы. мало что меняет в подходе.

crypt ★★★★★
() автор топика
Ответ на: комментарий от crypt

мне себя цитировать? «ЛП и кто там с ним вместе»

Разработчик NetworkManager у вас это «ЛП и кто там с ним вместе»?! По какому критерию у вас люди попадают в это множество?

тогда не знаю, почему https://wiki.archlinux.org/index.php/Sysctl предлагает /etc/sysctl.d/foo переименовать в foo.conf

При всём уважении, вики Arch Linux не является официальной документацией.

ага, да а вот изменения поведения в 207: The systemd-sysctl tool no longer natively reads the file /etc/sysctl.conf.

И там же даётся рекомендация:

If desired, the file should be symlinked from /etc/sysctl.d/99-sysctl.conf. Apart from providing legacy support by a symlink rather than built-in code, it also makes the otherwise hidden order of application of the different files visible.

Что серьёзные дистрибутивы и сделали.

а вообще нужно ли это, каждый месяц читать ченжлог к системе инициализации и объяснять (себе самому) что это и зачем?

Если хотите всегда оставаться в курсе, то следует читать примечания к выпуску всех используемых вами существенно важных программ, а также дистрибутива (в котором точно так же может меняться поведение по умолчанию). В нормальных дистрибутивах важные изменения, на которые следует обратить внимание, указываются в release notes.

данная тема является примером, что любое изменение может иметь не предвиденные последствия

Вспомнилось.

Rootlexx ★★★★★
()
Ответ на: комментарий от crypt

мало что меняет в подходе

А что меняет в подходе? Написали оболочку, ну хорошо, очередной frontend с шашками и девушками своим синтаксисом конфигов. Не более того. ufw занимается тем же.

anc ★★★★★
()
Ответ на: комментарий от Rootlexx

По какому критерию у вас люди попадают в это множество?

они комиты совершают

При всём уважении, вики Arch Linux не является официальной документацией.

признаю

И там же даётся рекомендация: Что серьёзные дистрибутивы и сделали.

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

Если хотите всегда оставаться в курсе, то следует читать примечания к выпуску всех используемых вами существенно важных программ

в топике есть цитата про молнию на брюках, которая очень хорошо отражает мое личное отношение

Вспомнилось.

ну ес-но.

crypt ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.