💾 Archived View for tilde.team › ~rami › paranoid.gmi captured on 2023-05-24 at 18:27:24. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
רמי
SUBJECT: История о том, как Рами вошел в "paranoid mode"... и не вышел из него
AUTHOR: Rami Rosenfeld
DATE: 08/12/22
TIME: 20.00
LANG: ru
LICENSE: CC BY-NC-ND 4.0
TAGS: literature, humour, joke, opensuse, polkit, security, privacy
Третьи сутки подряд имею дивный брейнальный секс с замечательной немецкой девочкой по имени Сюзи. И она охотно откликается на все мои извращенные изыскательские запросы, милостиво позволяя исследовать себя в самых неожиданных местах. :)
(это была преамбула)
... Как, наверное, уже хорошо знают читатели, ВСЁ что меня интересует в том или ином новом ПО и ОС - это вопросы повышения уровней безопасности и приватности. По сути, начинаю я всегда с глобальных вопросов:
- имеет ли ОС полнодисковое шифрование;
- можно ли вынести загрузчик на внешний носитель;
- закрыты ли все порты в фаэрволле;
- запрещен ли SSH-коннект по парольной фразе root'у и закрыт ли соответствующий порт;
- заблокированы ли остальные порты и запрещены ли все службы в фаэрволле;
- каковы права на вновь создаваемые файлы;
- и т.д.,
... а потом уже перехожу к частностям и мелочам, опускаясь все ниже и ниже, проникая все глубже и глубже (виноват - я опять отвлекся на эротические темы!) :)
Итак, моя основная задача - как проверка ВОЗМОЖНОСТЕЙ по защите ОС и ПО, так и проверка ОТСУТСТВИЯ ВОЗМОЖНОСТЕЙ натворить чего-либо непотребное со стороны отдельного пользователя. Как говорится, "можно сделать защиту от дурака, но только от дурака неизобретательного".
Теперь вернемся к теме. OpenSUSE позволяет - если хорошенько пройтись по настройкам инсталлятора - значительно ограничить права пользователей еще при установке (наличествуют режимы easy, standard, restrictive). А еще - сделать почти то же самое с помощью YaST, но уже в процессе работы. Вот и я вчера в сугубо изыскательских целях выбрал опцию даже не "strict", а свой любимый "paranoid" - да-да, кто еще не в курсе, я - ярко выраженный параноик!
Включил - и забыл. А вспомнил только тогда, когда ОС перестала предоставлять мне допуск к любым минимально критичным настройкам (например - правка собственной учетной записи средствами GNOME), НЕ ПОЗВОЛЯЯ даже зарегистрироваться по "su -" в качестве администратора.
Примечание: я - категорический противник использования "sudo"; кроме того, при создании в процессе инсталляции первого пользователя всегда отбираю у него администраторские права. Как так сложилось? - см. мой обширный аналитический материал "Почему sudo используют только (ч)удаки?" в разделе Essays.
Соответственно, вход и выход мне тоже были перекрыты наглухо! Ни reboot, ни shutdown сделать невозможно в принципе; все порты запрещены на вход, SSH заблокирована еще при установке ОС; короче, удаленное управление машиной тоже отсутствует напрочь.
Проблема, как вы сами понимаете, решилась только грубым "холодным" выключением и переустановкой ОС - благо, что машина тестовая, винчестер - 14-летней давности, и над ними можно издеваться сколь угодно. Переустанавливаю, а сам довольно улыбаюсь: ай да Сюзи, ай да разработчики - молодцы, постарались! Сразу видно, что система создавалась для многопользовательского режима и серьезно заточена под безопасность!
Ключевое слово здесь - Polkit (бывш. PolicyKit) - чертовски хорошая штука, особенно в совокупности с моим любимым SELinux. Чтобы не тратить время на описания сценариев, приведу цитату:
WIKI
Использование Polkit противопоставляется использованию таких систем, как sudo, но не наделяет процесс пользователя правами администратора, а позволяет точно контролировать, что разрешено, а что запрещено. (...)
[1] Примечание от Рами: Как мы видим, допустимо использование предустановленных производителем мультизадачных сценариев.
- «D-Bus»;
- какой-либо «daemon», выполняющий обслуживание запросов приложений пользователя.
- subject — информация о авторе «просьбы» (UID, контекст SELinux и др.);
- object — то, над чем будет выполняться действие (например, путь к блочному устройству, имя сетевого подключения);
- action — действие (например, «монтирование», «подключение»).
Библиотека «libpolkit*» читает файлы настроек (политики) и принимает решение о дальнейших действиях:
- запретить действие;
- разрешить действие:
без запроса пароля;
с запросом пароля пользователя;
с запросом пароля пользователя root.
«daemon» через «D-Bus» отправляет ответ процессу пользователя.
© Rami Rosenfeld, 2022. CC BY-NC-ND 4.0.