Jailkit — изоляция потенциально опасных процессов в Linux
Программа Jailkit позволяет создавать изолированные среды в Ubuntu, в которые можно помещать пользователей или программы. Всё, что попадает в Jailkit будет изолировано от основной системы.
Как работает Jailkit
- вы устанавливаете Jailkit;
- выбираете любого пользователя и помещаете его в «тюрьму» с помощью команды jk_jailuser;
- «плененный» пользователь не может выйти за пределы указанной вами директории и может запускать только те программы, которые вы разрешили.
Зачем нужен 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 останутся недоступными.
Комментарии
Чингачгук
17 августа, 2015 - 09:26
А что касается программ типо nano и т.д. Как добавлять их для пользователя?
dim
1 марта, 2016 - 12:39
Что-то похожее:
http://linsoft.info/soft/firejail.html
Единственное что печалит меня во всех этих изоляторах, их нет в репозитариях, надо качать с сайта, а я с подозрением отношусь к свободному софту которого почему-то нет в репах debiana.
Texnoline
1 марта, 2016 - 17:54
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.
Чингачгук
1 марта, 2016 - 19:18
А знайте что-нибудь не контейнерное? Желательно еще и с GUI? Ищу нечтно подобное, но если не найду, придется видимо apparamor запрягать. Хочу тупо изолировать браузер и еще пару прог, не более.
Чингачгук
1 марта, 2016 - 19:56
Всю жизнь слышу про сетования — мне что нибудь с гусем.
Да не нужен этот ваш гей ни кому и поверьте даже Вам. Так как хороший "сервис" нужно настроить один раз в 4-5(а может и больше) лет и забыть про него. А ваши ГУИ нужны только аля школьникам специалистам, да может ещё и маркетологам чтоб постоянно что то продавать, короче это в Вас говорит вантуз ОС с которой начинали знакомство с ПК, а как только что то нужно больше и гибче — сразу подавай гуй.
Господи, ЗАЧЕМ?! — Вы там что собрались каждую неделю галочки расставлять по новой?:(
Lessa
1 марта, 2016 - 20:24
хз, с "гусем" многим нагляднее
Чингачгук
2 марта, 2016 - 05:58
Мне вот после лет эдак 15 стажа работы и администрирования линуксов, пришлось тут поработать пару месяцев вендовым админом. Я не хочу матюгаться, но в венде я сейчас точно также не могу найти ничего консольного, а то что консольное есть — это настолько всё убого и плохо, что кроме матов у меня вообще никаких слов не остаётся после этого.
Так что пожалейте бедных вендо-юзеров, чувствую я, что пользователь который точно также лет 10 админил всякие там актив-директори и вендовые домены, сейчас в линуксе чувствует себя примерно также как и я себя в венде: нихера непонятно и нет нормальных привычных не то чтобы инструментов, а даже общие методы взаимодействия другие.
Чингачгук
2 марта, 2016 - 05:50
Расскажите автору уже кто-нибудь про LXC (уже даже несколько разных реализаций есть на любой вкус — от простого jail'а до полноценной серверной контейнеризации), а то понаделали тут разных кривых велосипедов, а потом вон всякие вендузятники приводят низкое качество такого вот открытого софта как довод против всех линуксов и подобных вещей.
Чингачгук
2 марта, 2016 - 07:46
Дурачок что ли? Ради изоляции ssh LXC поднимать? Chroot хватит для таких целей, а JailKit просто помогает это дело админить.
Чингачгук
2 марта, 2016 - 07:46
Сразу видно, что ты школьник, который никогда не видел Linux. Кто из нормальных сисадминов будет поднимать виртуальку и ставить туда ОС только ради того, чтобы в основной ОС пару сервисов изолировать?
Texnoline
2 марта, 2016 - 20:25
Это ненормально для вантузных сисадминов!;)
а для адекватных Linux-админов, которым надо поднять, допустим: [копипаст удален].
Чингачгук
6 марта, 2016 - 00:38
Вообще, это сообщение не совсем вам, а скорее владельцам ресурса — сделайте у каждого комментария статистику по user-agent'у, чтобы было сразу понятно с какой ОС кто пишет, а то порой создаётся впечатление, что на данном ресурсе процентов 90 комментаторов стабильно сидят на венде и линукс в самом лучшем случае видели только на виртуалке.
Lessa
6 марта, 2016 - 01:21
я не против))
pomodor
12 марта, 2016 - 15:40
Ну, почти. 63% на Винде и 19% на Linux.
zraz
12 июля, 2020 - 15:23
Интересно, как изменилась эта статистика за 4 года, ползут ли циферки у пингвина вверх?
Комментировать