Библиотека сайта rus-linux.net
Контроль и ограничение пользователей
Ограничение пользователей
Имеются много плохих дел, которые пользователь может сделать, если он имеет интерактивный доступ к shell. Имеется также много способов предотвратить это. Квоты использования диска, процессора и тому подобные решения хорошее начало, более продвинутые методы, типа контроля пользователей для больших сред также помогают. Одна из самых простых вещей, которые пользователь может делать: исчерпание всей памяти или исчерпание всех файловых дескрипторов с ⌠fork bomb■.
PAM
Новые дистрибутивы Linux с поддержкой PAM обеспечивает относящиеся к окружению параметры настройки. Например, можно ограничить доступный объем памяти. В Red Hat и Caldera это настраивается в каталоге /etc/security, который содержит ряд файлов. Наиболее интересный файл: /etc/security/limits.conf, который позволяет Вам определять правила для пользователей или групп: ⌠soft■ или ⌠hard■, а также на что правило действует. Например:
* hard core 0 bob soft nproc 100 bob hard nproc 150
Первое правило отключило дампы ядра для всех, второе правило устанавливает ограничение soft для пользователя bob в 100 процессов, и третье правило устанавливает ограничение hard для пользователя bob в 150 процессов. Ограничение soft может быть превышено, обычно с предупреждением, а ограничение hard не может быть превышено. Применяется ограничение ковсем вариантам доступа, в том числе и по ftp.
Bash
Bash имеет встроенный ограничитель, к которому обращаются через ⌠ ulimit■. Любые жесткие ограничения не могут быть установлены выше, если Вы имеете ограничения, определенные в /etc/profile. Это полезно для старых дистрибутивов без поддержки PAM. Вы должны также гарантировать, что пользователь не может изменять оболочку. Параметры настройки ограничений подобны методу PAM&:
ulimit -Sc 0 ulimit -Su 100 ulimit -Hu 150
Эти три правила достигли бы того же результата как вышеприведенные в примере с PAM. Первое правило отключает дампы ядра, второе правило устанавливает soft-ограничение в 100 процессов, и третье правило устанавливает жесткое ограничение в 150 процессов. Справка по ulimit доступна по команде ⌠help ulimit■ на приглашение bash.
Quota
Quota является системой для ограничения использования диска пользователями. Она встроена в большинство дистрибутивов. Справка доступна на man-странице командой ⌠man quota■.
Контроль пользователей
Одна проблема общая на серверах с shell-достуом, заставляет уверенных пользователей не злоупотреблять сервером. Довольно просто контролировать стандартные ресурсы (типа дискового использования, использования CPU и т.д) но наиболее часто злоупотребляемый элемент bandwidth, к счастью имеется ряд способов контролировать это злоупотребление.
ttysnoop
Конечно это все хорошо, когда все правильно. Но что, если Вы фактически хотите контролировать то, что пользователь делает. Ttysnoop позволяет Вам контролировать то, что пользователь делает и записывать это. Вы можете получать ttysnoop с http://uscan.cjb.net.
UserIPAcct
UserIPAcct позволяет Вам контролировать использование bandwidth пользователем, это включает патч ядра и устанавливает правила (подобные в концепции firewalling) чтобы контролировать количество данных, которые программы пользователя посылают или получают. Вы не можете получить данные относительно PPP подключений но ведь и PPP daemon не выполняется от имени обычного пользователя (хотя сделать это в общем можно). Я рекомендую это на сервере оболочки, чтобы контролировать пользователей. Полный пает можно загрузить с http://zaheer.grid9.net/useripacct.
Written by Kurt Seifried