LINUX.ORG.RU

Запрет на установку пакета

 ,


2

1

Подскажите какие существуют способы запрета на установку определенного пакета через dpkg и rpm? Понятно что из-под рута сложно что-то запретить, но хотя бы сильно усложнить жизнь. Больше всего интересует, есть ли возможность блокировать по хеш сумме.

С помощью excludepkg / includepkg можно убрать какие-то пакеты из области видимости dnf/yum, только это не имеет отношения к security.

С точки зрения разговор о безопасности задача не имеет смысла.

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

В том то и проблема, что человек хочет запретить установку посредством dpkg, rpm. Только если у человека есть доступ к root ничто не помешает ему разрешить обратно. Тогда уж лучше лишить его доступа к root.

В gentoo можно разрешить пользователю ставить софт, но запретить править конфиги. Есть ли в Debian группа разрешающая установку софта не root-пользователю не помню.

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

В том то и проблема, что человек хочет запретить установку посредством dpkg, rpm.

Именно.

https://www.virustotal.com/gui/file/d5a43b215c5b5eb9e51f31191f2f53691d3b478a095e22d7823f35719bbb3bb2/detection

https://www.virustotal.com/gui/file/b2f88d54a6bd66959761dfff446031a00e63195b01e819821a9b0e4a3f67e246/detection

Вот это нужно не дать поставить.

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

Если задача состоит в том чтобы разрешить обычному пользователю ставить пакеты из заранее сконфигурированных репозиториев (то есть с exclude/include), то это можно сделать с помощью policy kit и package kit.

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

rpm -i при этом выполняться будет для таких пакетов?

На самом деле задача действительно странная. Если человеку не доверяется установка софта, то его этой возможности нужно лишить и всё.

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

rpm -i при этом выполняться будет для таких пакетов?

Нет. У пользователя прав на установку не будет. Устанавливать пакет будет PackageKit, а запросы к нему будет валидировать PolicyKit. И там в запросе не будет «установи пакет вот отсюда», будет только «установи пакет с таким-то именем». И если пакета с таким именем в заранее сконфигурированных админом репах нет - значит не судьба.

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

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

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

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

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

Кривые способы:

  • собрать и установить подставной пакет, у которого в Conflicts: стоит софт для слежения, а также Essential: yes
  • узнать список файлов пакета с софтом для слежения и насоздавать (или наперемещать при помощи dpkg-divert) файлов в файловой системе по тем же путям, что есть в пакете. dpkg (да и rpm тоже, я думаю) увидит конфликт и не даст поставить пакет.

Можно, наоборот, добавить настроек dpkg-divert так, чтобы после установки пакета ни одна из его следящих частей не была бы на своём месте и не смогла бы запуститься (из-за отсутствия init-скрипта в /etc/..., бинарника в .../bin/ и библиотеки в /usr/lib/...).

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

Это же патченный Wazuh!

Спасибо за наводку.

Aleksandra
() автор топика

Заменить бинарники программ rpm и dpkg на свои, которые будут проверять хешсуммы устанавливаемых пакетов. Гавеных советов могу дать много.

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

dnf - это не баш-скрипт, он для установки rpm-пакета бинарник rpm не вызывает.

Речь в топике шла именно rpm и dpkg, а не про dnf. Можно же заменить rpm или dpkg на скрипт, который будет проверять хэш файла, и в случае совпадения выдавать произвольный текст с ошибкой, а в случае несовпадения - запускать нормальный rpm.

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

Софт для слежения, который заставляют ставить.

И шпионы украдут все ваши секреты… А может и гостайны.

Нужно показать, что не ставится.

Аргументируй для чего и кому нужно?

anonymous
()
Ответ на: комментарий от Aleksandra

Не хочу ставить всякое гавно на сервера.

Аргумент принят. Всякое говно на серваки ставить конечно не надо.

Но и без аудита (это не шпионство называется а именно АУДИТ СВОИХ серверов) тоже оставаться нельзя!

Возьми и поставь систему аудита разработанную в частности и мною: https://kb.nocproject.org/plugins/servlet/mobile?contentId=1507374#content/view/20152833 или ты плохая девочка и посмеешь и эту систему организации аудита серверов обозвать «всяким говном»?

anonymous
()

Странно что по теме до сих пор никто неответил.

Есть простой способ запрета установки rpm/dpkg/.. пакета пользователю root по его контрольной сумме. ;)

anonymous
()
Ответ на: комментарий от Aleksandra

написать скрипт dpkg, который будет проверять пакет на хеш, если хеш совпадает, то выдавать имитацию кривой установки данного пакета.
если хеш не совпадает то запускать dpkg с прямым путем т.е. /usr/bin/dpkg с передачей строчки запуска.
разместить сей скрипт в каталоге идущий в $PATH раньше чем каталог с бинарем dpkg. т.е. вот у меня

$ whereis dpkg
dpkg: /usr/bin/dpkg /usr/lib/dpkg /etc/dpkg /usr/share/dpkg /usr/share/man/man1/dpkg.1.gz
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

значит одноименный исполняемый файл размещенный в /usr/local/sbin /usr/local/bin найдется «раньше» чем в /usr/bin и соответственно заместит работу /usr/bin/dpkg
протестировать работу.
пару раз замещал работу некоторых системных приложений - работало.

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

А без подмены dpkg, yum стандартными сервисами и ядром ОС? В ее случае это будет лучше. Не будет подлога пакетного менеджера и любых злоумышленник махинаций с системой.

Александра, на подлог пакетного менеджера и дрругого ПО не соглашайся - это преступление. И тебе оно не надо.

anonymous
()

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

Avial ★★★★★
()

Придумал

убрать из rpm-а ф-ю «не проверять подпись», поудалять все ключи, кроме своего, запретить добавлять новые, и переподписывать своим «разрешённые» пакеты.

Почти «блокирование по хеш сумме».

DonkeyHot ★★★★★
()

Если есть права root и даже если ты как-то ограничишь установку пакета, то его всегда можно распаковать как архив и просто скопировать его содержимое в корень.

Единственное, что ты можешь сделать - организавать доступ к корню только в режиме чтения, например посредством squashfs, но тогда все пакеты будет трудно поставить или внести изменения в конфигурацию. Для изменения придется перепаовывать squashfs. Ну а запись в /var/log или куда ещё придется делать на отдельных разделах.

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

Поставьте пакет на другой хост, можно виртуальный :)

Если конечно, это не навредит организатору вашей ИТ системы.

anonymous
()

Подскажите какие существуют способы запрета на установку определенного пакета через dpkg и rpm?

Почитал тему и вот что скажу, тебе надо изучить PAM, может там есть модули запускающие на событие пользовательский скрипт, неудача которого блокирует действие. Это конечно моё предположение, но весьма вероятное, в конце концов напиши такой модуль и закоммить в проект.

Что же до того, что ты напишешь в скрипте, то это зависит от твоей квалификации и фантазии.

Для затравки про PAM почитай тут, далее в гугл
https://www.ibm.com/developerworks/ru/library/l-pam/

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

Поставь, сломай, покажи что не работает.

anonymous
()
Ответ на: комментарий от alpha

Alekasndra, Не слушай этих трусов и оппортунистов! Мы на войне, и перед отступлением (если оно вообще будет) нужно нанести врагу-гуглоиду-шпиону наибольший урон.

anonymous
()
Ответ на: Придумал от DonkeyHot

убрать из rpm-а ф-ю «не проверять подпись», поудалять все ключи, кроме своего, запретить добавлять новые, и переподписывать своим «разрешённые» пакеты.

Это в административном/крыминальном кодексе называется «служебный подлог». Как испортился ЛОР, заблудившуюся девченку толкают на крыминальном, да еще и при Путине.

В ее случае есть правильное решение без служебного подлога!

anonymous
()
Ответ на: комментарий от infomeh

Если есть права root и даже если ты как-то ограничишь установку пакета, то его всегда можно распаковать как архив и просто скопировать его содержимое в корень.

Нет ты неправ. В ее случае *** пакет будет блокироватся системой для пользователя root по хешу. И распаковать его даже под root система не разрешит. В зависимости от настроек неразрешит даже скачать, скопировать на диск…

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

Это очередной служебный подлог, а не единственное решение.

anonymous
()
Ответ на: комментарий от Aleksandra

есть обязательства

Не хочу

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

no-such-file ★★★★★
()
Ответ на: комментарий от anonymous

Поставьте пакет на другой хост, можно виртуальный :)

Если конечно, это не навредит организатору вашей ИТ системы.

Аудит должен проводится на целевой системе!!!

Наличие аудита системы - одно из самых фундаментальных требований безопасности ОС. Уровень важности аудита стоит рядом с Дискретным Контролем Доступа (DAC), Мандатным Контролем Доступа (MAC), Гарантией Целостности Системы (Integrity).

От аудита системы невозможно отказаься. Админ который совсем отказывается внедрять аудит на своих компах - увольняется по несоответствию к занимаемой должности. Студент по специальности системное администрирование, который не знает как организовать аудит - выганяется с ВУЗа.

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

Александра имеет только один путь:

  1. Показать что предложения система аудита неприемлема и предложить свою. Сначала устно, может согласятся.

  2. Админ имеет право отказаться выполнять какие либо действия на серверах. Когда есть требование: приказ, инструкция отказ должен быть письменным в форме рапорта/заявления в двух экземплярах. Обязательно регистрируется в приемной. Второй экземпляр с датой и входящим номером хранил у себя. В заявлении надо указать что и почему неправильно, а также как сделать лучше и правильней.

  3. Ты обязана предложить свою систему аудита. Доказать что она лучше и правильней.

  4. В данном случае сысадмина могут уволить и к этому надо быть готовому. В принципе начальство слушает своего админа, предоставляет свободу выбора всего и аудита в частности. Им важен сам факт ответственности админа за организацию аудита ИТ системы организации. Наличие подписанного заявления есть достаточной гарантией админа.

anonymous
()
Ответ на: комментарий от torvn77

Почитал тему и вот что скажу, тебе надо изучить PAM…

Все мимо. Ничего в данном, конкретном случае писать не надо. Все есть написано. Возможно даже установлено просто не настроено.

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

Скачать пакет и преобразовать в архив можно в другой системе.

А по поводу скачать на той системе, то wget или curl или любой друго консольный инструмент скачивания даст скачать пакет. А далее вызываешь утилиту rpm2targz.

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

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

Такой способ есть, конкретно в этом случае:

https://www.virustotal.com/gui/file/d5a43b215c5b5eb9e51f31191f2f53691d3b478a095e22d7823f35719bbb3bb2/detection

https://www.virustotal.com/gui/file/b2f88d54a6bd66959761dfff446031a00e63195b01e819821a9b0e4a3f67e246/detection

И этот способ невозможно классифицировать как служебный подлог. Выполняется штатными средствами ядра Linux и штатным сервисом. Ничего дополнительно писать и изменять в программах не надо. Надо, возможно, до установить штатный пакет и его чуть настроить. Настройки штатные, необходимые для повышения безопасности и по этому не являются служебным подлогом.

Скачать пакет и преобразовать в архив можно в другой системе.

Если там нет настроек безопасности которые я имею ввиду то возможно.

А по поводу скачать на той системе, то wget или curl или любой другой консольный инструмент скачивания даст скачать пакет. А далее вызываешь утилиту rpm2targz.

Нет не даст, ни скачать, ни преобразовать в архив!

Есть теоретическая возможность скачать и преобразовать в архив на другой, не защищенной системе и потом установить этот архив в целевой. Это теоретическая возможность есть и зависит от третьих факторов. В общем случае, даже преобразованный архив на целевую систему скопировать не даст.

В этом посте написано ВСЕ!!! Жду кто первый догадается… Надо сказать необходимую опцию ядра Linux, имя сервиса, и необходимые настройки в конфиге сервиса.

anonymous
()
Ответ на: комментарий от LongLiveUbuntu

Этого не советовал. Имел ввиду совсем другое.

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

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