Jailkit — изоляция потенциально опасных процессов в Linux

Программа Jailkit позволяет создавать изолированные среды в Ubuntu, в которые можно помещать пользователей или программы. Всё, что попадает в Jailkit будет изолировано от основной системы.

Изолирование пользователей и процессов в Ubuntu Linux

Как работает Jailkit

  1. вы устанавливаете Jailkit;
  2. выбираете любого пользователя и помещаете его в «тюрьму» с помощью команды jk_jailuser;
  3. «плененный» пользователь не может выйти за пределы указанной вами директории и может запускать только те программы, которые вы разрешили.

Зачем нужен Jailkit

Программа идеально подходит для тех, кто предоставляет гостевой ssh-доступ к своей системе или хочет запустить публичные сетевые сервисы типа FTP, HTTP, CVS и т.д. Автор программы признается, что его разработкой заинтересовались крупные провайдеры, лидирующие фирмы по обеспечению информационной безопасности и даже несколько крупных корпораций.

Как установить Jailkit в Ubuntu

Откройте терминал и впишите следующие строки:

$ sudo apt-get install build-essential autoconf automake libtool flex bison debhelper binutils-gold

Теперь зайдите на официальную страницу загрузок Jailkit и скачайте самую свежую версию программы. Дальше нужно собрать deb-пакет:


$ tar -vxzf jailkit-2.16.tar.gz
$ cd jailkit-2.16/
$ sudo ./debian/rules binary

... и установить его:


$ cd ..
$ sudo dpkg -i jailkit_2.16-1_amd64.deb

После этого в системе появятся программы для поддержания «тюремного» режима:

  • jk_addjailuser
  • jk_chrootlaunch
  • jk_cp
  • jk_jailuser
  • jk_lsh
  • jk_uchroot
  • jk_check
  • jk_chrootsh
  • jk_init
  • jk_list
  • jk_socketd
  • jk_update

Установка завершена.

Настройка Jailkit

Прежде всего, нужно создать рабочую директорию Jailkit и поместить в нее все разрешенные программы:


$ sudo mkdir /opt/jail
$ sudo chown root:root /opt/jail
$ sudo jk_init -v /opt/jail netutils basicshell jk_lsh openvpn ssh sftp

Готово.

Использование Jailkit

Как говорилось ранее, вы можете поместить в изолированную среду любого пользователя. Для этого предназначена команда jk_jailuser. Рассмотрим для примера лишение свободы пользователя robber:


$ sudo jk_jailuser -m -j /opt/jail/ robber

Теперь попросим этого пользователя залогиниться и посмотрим что произойдет:

$ ssh robber@localhost
robber@localhost's password:
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-25-generic x86_64)

Last login: Sat Jun 23 12:46:01 2012 from localhost
bash: groups: command not found
I have no name!@desktop:~$
I have no name!@desktop:~$ cd /
I have no name!@desktop:/$ ls
bin dev etc home lib lib64 run usr var
I have no name!@desktop:/$

Как видим, пользователю robber как бы доступна вся система, включая системные директории /dev, /etc и /var, однако это только кажется. Пользователь находится внутри директории /opt/jail и не может при всем желании нанести системе вред. Даже если пользователь найдет дыру в какой-нибудь программе и подберет эксплоит к ней, максимум чего он сможет добиться — получит контроль за директорией /opt/jail, тогда как настоящие системные файлы в /etc и пользовательские данные в /home останутся недоступными.

field_vote: 
Ваша оценка: Нет Средняя: 4.1 (7 оценки)
Главная тема: 

Комментарии

А что касается программ типо nano и т.д. Как добавлять их для пользователя?

Оценка: 
Средняя: 5 (1 оценка)

Что-то похожее:
http://linsoft.info/soft/firejail.html
Единственное что печалит меня во всех этих изоляторах, их нет в репозитариях, надо качать с сайта, а я с подозрением отношусь к свободному софту которого почему-то нет в репах debiana.

Оценка: 
Средняя: 5 (1 оценка)

1. Seccomp-bpf — плод скрещивания песочницы seccomp, известной аж с 2005 года, и BPF, изначально предназначенного для работы с пакетами. (жестко и только для спецов!);
2. Virt-sandbox разрабатывается теми же людьми, что и утилита sandbox. Однако, в отличие от нее, базируется она на основе технологий виртуализации. На данный момент поддерживается KVM и контейнеры LXC, но в теории она может поддерживать все системы виртуализации, доступные через libvirt, то есть, например, VirtualBox. Основная проблема в скорости запуска и развертывании образа диска, но запуск /bin/false с помощью этой утилиты занимает всего шесть секунд (в среднем...);
3. Glimpse (для Ubuntu);
4. Интересный проект scratchbox — инструмент для кроссплатформенной разработки в Debian/Ubuntu;
5. Proxmox — Virtual Environment, т.е. среда виртуализации (bare-metal), на базе Debian + KVM + Qemu.
6. LXC.

Оценка: 
Средняя: 5 (1 оценка)

А знайте что-нибудь не контейнерное? Желательно еще и с GUI? Ищу нечтно подобное, но если не найду, придется видимо apparamor запрягать. Хочу тупо изолировать браузер и еще пару прог, не более.

Оценка: 
Средняя: 3 (2 оценки)

Всю жизнь слышу про сетования — мне что нибудь с гусем.
Да не нужен этот ваш гей ни кому и поверьте даже Вам. Так как хороший "сервис" нужно настроить один раз в 4-5(а может и больше) лет и забыть про него. А ваши ГУИ нужны только аля школьникам специалистам, да может ещё и маркетологам чтоб постоянно что то продавать, короче это в Вас говорит вантуз ОС с которой начинали знакомство с ПК, а как только что то нужно больше и гибче — сразу подавай гуй.
Господи, ЗАЧЕМ?! — Вы там что собрались каждую неделю галочки расставлять по новой?:(

Оценка: 
Средняя: 3 (5 оценки)

хз, с "гусем" многим нагляднее

Оценка: 
Пока без оценки

Господи, ЗАЧЕМ?! — Вы там что собрались каждую неделю галочки расставлять по новой?:(

Мне вот после лет эдак 15 стажа работы и администрирования линуксов, пришлось тут поработать пару месяцев вендовым админом. Я не хочу матюгаться, но в венде я сейчас точно также не могу найти ничего консольного, а то что консольное есть — это настолько всё убого и плохо, что кроме матов у меня вообще никаких слов не остаётся после этого.

Так что пожалейте бедных вендо-юзеров, чувствую я, что пользователь который точно также лет 10 админил всякие там актив-директори и вендовые домены, сейчас в линуксе чувствует себя примерно также как и я себя в венде: нихера непонятно и нет нормальных привычных не то чтобы инструментов, а даже общие методы взаимодействия другие.

Оценка: 
Средняя: 5 (2 оценки)

Расскажите автору уже кто-нибудь про LXC (уже даже несколько разных реализаций есть на любой вкус — от простого jail'а до полноценной серверной контейнеризации), а то понаделали тут разных кривых велосипедов, а потом вон всякие вендузятники приводят низкое качество такого вот открытого софта как довод против всех линуксов и подобных вещей.

Оценка: 
Пока без оценки

Дурачок что ли? Ради изоляции ssh LXC поднимать? Chroot хватит для таких целей, а JailKit просто помогает это дело админить.

Оценка: 
Средняя: 5 (1 оценка)

И еще лучше виртуальная машина с пробросом портов сетевых

Сразу видно, что ты школьник, который никогда не видел Linux. Кто из нормальных сисадминов будет поднимать виртуальку и ставить туда ОС только ради того, чтобы в основной ОС пару сервисов изолировать?

Оценка: 
Средняя: 3 (2 оценки)

Кто из нормальных сисадминов будет поднимать виртуальку и ставить туда ОС только ради того, чтобы в основной ОС пару сервисов изолировать?

Это ненормально для вантузных сисадминов!;)
а для адекватных Linux-админов, которым надо поднять, допустим: [копипаст удален].

Оценка: 
Пока без оценки

Вообще, это сообщение не совсем вам, а скорее владельцам ресурса — сделайте у каждого комментария статистику по user-agent'у, чтобы было сразу понятно с какой ОС кто пишет, а то порой создаётся впечатление, что на данном ресурсе процентов 90 комментаторов стабильно сидят на венде и линукс в самом лучшем случае видели только на виртуалке.

Оценка: 
Средняя: 4.7 (3 оценки)

я не против))

Оценка: 
Средняя: 5 (2 оценки)

а то порой создаётся впечатление, что на данном ресурсе процентов 90 комментаторов стабильно сидят на венде

Ну, почти. 63% на Винде и 19% на Linux.

Сколько пользователей Linux

Оценка: 
Средняя: 5 (2 оценки)

Интересно, как изменилась эта статистика за 4 года, ползут ли циферки у пингвина вверх?

Оценка: 
Средняя: 5 (1 оценка)

Комментировать

Filtered HTML

  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <strike> <code> <h2> <h3> <h4> <h5> <del> <img>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.