Ограничиваем права пользователя в оболочке c помощью Limited Shell (lshell) в Debian Lenny

Limited Shell помогает в тех ситуациях, когда по каким-либо причинам chroot не подходит, а защитить систему нужно … хоть символически. Принцип действия прост – lshell позволяет выполнять только определенный администратором набор команд, переходить только в разрешенные каталоги, отслеживает попытки запуска других оболочек.

http://lshell.ghantoos.org

Для Debian Lenny я скачал архив с исходным кодом. Распаковываем, запускаем:

python setup.py install --no-compile

running install
running build
running build_py
creating build
creating build/lib
copying lshellmodule/lshell.py -> build/lib
running build_scripts
creating build/scripts-2.5
copying and adjusting bin/lshell -> build/scripts-2.5
changing mode of build/scripts-2.5/lshell from 644 to 755
running install_lib
copying build/lib/lshell.py -> /usr/lib/python2.5/site-packages
running install_scripts
copying build/scripts-2.5/lshell -> /usr/bin
changing mode of /usr/bin/lshell to 755
running install_data
copying etc/lshell.conf -> /etc
creating /usr/share/doc/lshell
copying README -> /usr/share/doc/lshell
copying COPYING -> /usr/share/doc/lshell
copying CHANGES -> /usr/share/doc/lshell
copying man/lshell.1 -> /usr/share/man/man1/
running install_egg_info
Writing /usr/lib/python2.5/site-packages/lshell-0.9.8.egg-info

Все, lshell установлен.

Создаем директорию для log файлов:

mkdir /var/log/lshell

Создаем группу lshellg:

groupadd --system lshellg

Изменяем права на директорию с log файлами:

chown :lshellg /var/log/lshell
chmod 770 /var/log/lshell

Изменяем shell пользователя и добавляем его в группу lshellg:

usermod -s /usr/bin/lshell user1
usermod -a -G lshellg user1

Настройки хранятся в файле /etc/lshell.conf и подробно описаны в README. Мы добавляем следующие строки для пользователя user1 в конец конфигурационного файла:

[user1]
allowed : ['ls','ll','echo','cd','cp','rm','mkdir','rmdir','wget','vi','vim']
path : ['/var/www/1', '/var/www/2', '/var/www/3']
forbidden : [';', '&', '|','`','>','<']
warning_counter : 5
aliases : {'ll':'ls -l', 'vi':'vim'}

Суть – данные настройки имеют больший приоритет, чем настройки из секции [default] конфигурационного файла. Разрешены только определенные команды (allowed), помимо домашней, разрешены переходы в несколько директорий (path), в консоли запрещены перенаправления ввода-вывода и прочие вещи (forbidden), разрешено наступать на мины 5 раз, перед тем, как пользователь будет отключен (warning_counter), прописаны алиасы команд.

Это разумеется не панацея. Нужно внимательно следить за тем, какие команды разрешены и какие в них «недокументированные возможности». Например, разрешая mc можем заходить во все директории, ну и т.п.

Распечатать Распечатать

Другие записи:

Запрещаем выполнять команды по ssh, но разрешаем scp, sftp, cvs, rdist или rsync в Debian Lenny
Сборка Google Chrome OS (Chromium OS) в Ubuntu 8.04
Сборка Openmoko на Ubuntu 8.10
Поднимаем ClamAV и ClamFS на Ubuntu Server
Linux: Удаляем дублирующиеся строки с помощью uniq
Установка ModSecurity 2 в Debian Lenny
Рекурсивная смена прав доступа к файлам
Укрепляем Apache и PHP
Изменение загрузочной заставки Ubuntu
Запуск Java и Apache Felix в chroot jail окружении в Debian Lenny

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">