По умолчанию, в Linux все пользователи могут увидеть список процессов, работающих в системе. Это не самый критичный момент в работе, но порой злоумышленники могут воспользоваться этой информацией в своих целях. В ядрах версии 3.2 и выше, была реализована возможность запретить пользователю просматривать список не принадлежащих ему процессов.
Для сокрытия процессов, при монтировании директории /proc применяется параметр hidepid, который может иметь три значения:
- hidepid=0 — все пользователи имеют доступ к файлам в /proc/pid (это значение по умолчанию)
- hidepid=1 — пользователи получают доступ, только к собственному каталогу в /proc/pid, но io, status, cmdline, sched* остаются доступны всем.
- hidepid=2 — каталоги в /proc/pid скрыты от пользователей.
Просто перемонтируем /proc с нужным параметром для того, что бы ограничить пользователей на сервере:
# mount -o remount,rw,hidepid=2 /proc
Для сохранения изменений при перезагрузке, внесём соответствующие изменения в fstab:
proc /proc proc defaults,hidepid=2 0 0
При этом, нужно учитывать, что некоторым приложениям доступ к /proc таки может понадобиться. Для того что бы такой доступ им дать, предусмотрен параметр gid=. Значением параметра может быть имя группы в системе, членам которой доступ к процессам будет разрешён, как при hidepid=0. Монтирование при этом будет выглядеть так:
proc /proc proc defaults,hidepid=2,gid=admin 0 0
Добавляем пользователя от имени которого будет работать приложение/демон в эту группу и проверяем — если всё сделано верно, то падающее при включении защиты приложение заработает как обычно.