Browse Month: Сентябрь 2017

Сокрытие процессов других пользователей в Linux

В Linux, все пользователи видят не только свои процессы (приложения, демоны), но и процессы других пользователей, в том числе и привилегированных (root-овые).

Например, если вы войдете в систему под непривилегированным пользователем, и наберете команду:

то вы увидите все процессы системы, включая свои.

По сути, мы видим все процессы, которые видны и доступны для чтения, в каталоге /proc.

В более ранних версиях Linux (до версии ядра 3.2), нам приходилось писать патч для ядра (для каждой версии ядра — свой патч): restricted_proc, и пересобирать ядро.

К счастью, начиная с версии Linux 3.2, появилась опция hidepid, которую можно использовать при монтировании раздела /proc.

hidepid может принимать три значения:

  • hidepid=0 — любой пользователь может читать все файлы в /proc/PID/* (значение по умолчанию).
  • hidepid=1 — пользователи имеют доступ только к своим собственным директориям в /proc/. Важные файлы, такие как cmdline, sched*, не защищены от других пользователей.
  • hidepid=2 — это значит hidepid=1 плюс все файлы в /proc/PID/ невидимы для других пользователей. Это усложняет возможность проникновения в систему или сбор информации о запущенных процессах — работают ли какие-то демоны с повышенными привилегиями, запустил ли другой пользователь важную программу и так далее.

Таким образом, мы перестанем видеть процессы других пользователей, если перемонтируем /proc с параметром hidepid, например так:

Ну и конечно, не забудем прописать это в /etc/fstab, чтобы при перезапуске системы раздел /proc монтировался верно:

А если каким-то программам всё-таки нужно иметь возможность видеть все процессы системы (например Zabbix), то мы можем указать группу, для которой будет доступен просмотр всех процессов, например так:

 

 

 

 

 


%d такие блоггеры, как: