Другое по PAM.
Метки: chroot | limit | PAM | SUDO
Суббота, 2 мая 2009 г.
Просмотров: 1971
Не РАМ-способ.
Если РАМ не используется, то для ограничения системных ресурсов необходимо использовать файл /etc/limits. Принцип тот же самый, но несколько отличается синтаксис:
Имя_пользователя Строка_ограничений
Следуя справочной системе (man limits), можно использовать следующие идентификаторы:
- А — максимальное адресное пространство (Кб).
- С — максимальный размер core-файла (Кб).
- D — максимальный размер данных (Кб).
- F — максимальный размер файла (Кб).
- N — число открытых файлов (Кб).
- R — максимальный размер RS (Кб).
- S — максимальный размер стека (Кб).
- Т — максимальное процессорное время (Кб).
- U — максимальное число процессов.
- К — маска создания файла, устанавливаемая с помощью umask(2).
- L — максимальное число входов пользователя в систему.
- Р — приоритет процесса.
Контролирование SU-доступа.
По умолчанию любому пользователю разрешено стать пользователем root, если он введет команду su, а затем — пароль пользователя root. Но более безопасным вариантом является предоставление полномочий root только определенной группе пользователей, например пользователям группы wheel. Для этого нужно отредактировать файл /etc/pam.d/su следующим образом:
auth required pam_pwdb.so
account required pam_pwdb.so
password required pam_cracklib.so min=20 retry=3
password required pam_pwdb.so md5 use_authtok
session required pam_pwdb.so
СНROOT-окружение.
Chroot-окружение популярно у большинства провайдеров и на Web-узлах. Эта технология дает возможность ограничить доступ пользователя к определенной части файловой системы.
Сама идея chroot-окружения довольно простая: в каком-то каталоге создается минимально необходимая для запуска некоторого сервиса структура каталогов, которая эмулирует корневую файловую систему, то есть в этом подкаталоге будут подкаталоги /bin, /lib, /etc и другие. Но в каталоге /bin будут только те исполнимые файлы, которые нужны определенному сервису, в каталоге /lib — только те библиотеки, которые нужны этому сервису, а в каталоге /etc — конфигурационные файлы сервиса, а не конфигурационные файлы всей системы.
При запуске сервиса делается вызов chroot (изменение корневого каталога), и в качестве параметра указывается каталог, который содержит определенную структуру каталогов, похожую на корневую файловую систему. Большинство популярных сервисов поддерживают запуск в chroot-окружении (например, Apache и BIND).
Может быть несколько chroot-каталогов — по одному на каждый сервис, который будет запускаться в chroot-окружении. Что это даст? При любом взломе сервиса хакер получит доступ не к корневой файловой системе, а только к тому каталогу, который был сделан для сервиса корневым.
Теперь обеспечим поддержку chroot со стороны РАМ:
Эту строку нужно добавить в конфигурационные файлы всех сервисов (те, которые находятся в каталоге /etc/pam. d/), которые дают возможность входить пользователю в систему (например, login, sshd, ftp).
Другие РАМ-модули.
Главная идея РАМ заключается в том, что можно подключать дополнительные модули без какой-либо перекомпиляции. В зависимости от дистрибутива, в его составе могут быть и другие дополнительные РАМ-модули, описание которых можно прочитать в документации по этим модулям.