Какие оконные менеджеры поддерживают сценарии оболочки?

Да, это служит цели безопасности. Это защита -в -мере глубины.

Основная причина, по которой это служит цели, заключается в том, что существуют различные части программного обеспечения, которые будут проверять некоторые формы учетных данных для входа для указанного пользователя, а затем использовать оболочку входа этого пользователя для запуска команды. Возможно, наиболее ярким примером является SSH. Если вы успешно аутентифицируетесь как пользователь через SSH, SSH затем запускает оболочку входа пользователя (или использует ее для запуска предоставленной вами команды, если вы используете синтаксис ssh someuser@example.com 'command to run').

Конечно, в идеале злоумышленник вообще не сможет аутентифицироваться как пользователь. Но предположим, что происходит следующая ситуация:

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

Теперь злоумышленник может записать открытый ключ SSH в ~/.ssh/authorized_keys, затем войти по SSH и -бум! -у них есть доступ к вашему серверу через оболочку.

Если пользователь вместо этого использует /usr/sbin/nologinв качестве своей оболочки для входа в систему, то даже после того, как злоумышленник успешно запишет открытый ключ в authorized_keys, он ему бесполезен. Все, что он позволяет им делать, это удаленно запускать nologin, что не очень полезно. Они не могут получить снаряд, и их атака была смягчена.

Если этот сценарий кажется очень гипотетическим, я хотел бы отметить, что я стал целью именно этой атаки в какой-то момент в 2015 году, примерно через год после того, как я задал этот вопрос. Как проклятый идиот, я оставил экземпляр Redis без пароля открытым для всего мира. Он стал мишенью атаки Redis Crackit , в которой злоумышленник вставляет открытый ключ SSH в вашу базу данных Redis, затем отправляет команду Redis, говорящую Redis записать содержимое базы данных в .ssh/authorized_keys, а затем пытается SSH в.Меня спасло от последствий моей собственной некомпетентности только тот факт, что у сопровождающих redis-serverпакета Apt (, который я использовал для установки Redis ), хватило мудрости запустить Redis как redisпользователь, у которого нет домашнего каталога или оболочки входа в систему; если бы не они, мой сервер, скорее всего, был бы взломан программой-вымогателем или стал бы частью ботнета какого-нибудь хакера.

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

1
06.05.2020, 22:59
1 ответ

Попробуйте x11fs .

Он показывает состояние окна в виртуальной файловой системе (очень похоже на proc), предоставляя больше свободы и контроля над тем, что вы можете сделать с помощью window/x11.

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

Если вы хотите либо вдохновиться, либо основывать свою настройку на существующей, попробуйте tofu , которая представляет собой сценарий оболочки, использующий указанную выше (x11fs )и другие утилиты (sxhkd и т. д. )для управления окнами/x11.

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

0
26.05.2021, 14:44

Теги

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