Установка и настройка jail окружения в Debian Wheezy
Sep 17, 2015 16:25 · 320 words · 2 minute read
В целях безопасности иногда требуется запускать приложения в отдельном окружении либо ограничивать доступ пользователям.
С этими задачами хорошо справляется технология jail
, которая базируется на системном вызове chroot
. В этой статье давайте разберемся как настроить jail-окружение в Debian Wheezy.
Для начала установим требующиеся пакеты:
apt-get install dchroot debootstrap
- устанавливать jail-окружение будем в каталог
/home/jail
, создаем его командой:
mkdir /home/jail
Примечание. Подключение к серверу будет осуществляться от имени пользователя test. Создать пользователя и добавить в необходимые группы можно утилитой useradd
, установить пароль можно с помощью утилиты passwd
.
- непосредственно установка jail-окружения в Debian Wheezy:
debootstrap --variant=buildd --arch amd64 wheezy /home/jail http://ftp.uk.debian.org/debian
- копируем конфигурационные файлы:
cp /etc/resolv.conf /home/jail/etc/resolv.conf
cp /etc/apt/sources.list /home/jail/etc/apt/
cp /etc/passwd /home/jail/etc/
cp /etc/shadow /home/jail/etc/
cp /etc/group /home/jail/etc/
cp /etc/hosts /home/jail/etc/
- копируем домашний каталог пользователя test:
cp -a /home/test/ /home/jail/home/test/
в конце конфигурационного файла /etc/ssh/sshd_config
добавляем следующие строки:
...
Match User test
ChrootDirectory /home/jail
AllowTCPForwarding no
X11Forwarding no
- в конце конфигурационного файла
/home/jail/home/test/.bashrc
добавляем строку:
...
cd /var/www/
Примечание. Последний пункт выполняем для того, чтобы при подключении пользователь test оказывался в директории /var/www/
- создадим еще несколько директорий:
mkdir /home/jail/var/www
mkdir /home/jail/var/www/code
mkdir /home/jail/var/www/static
- внесем правки в конфигурационный файл
/etc/fstab
, добавив:
...
192.168.0.16:/srv/www/static /home/jail/var/www/static nfs defaults,sync,ac,actimeo=60,noatime 0 0
/var/www/code /home/jail/var/www/code none bind 0 0
Примечание. В данном примере статические файлы монтируются по nfs с соседнего сервера. Пользователь test может работать с кодом в директории /home/jail/var/www/code
(для него будет видна как /var/www/code
) без возможности сломать корневую систему.
- монтируем
/proc
,/dev
,/sys
и выполняемchroot
:
mount -t proc none /home/jail/proc
mount -o bind /dev /home/jail/dev
mount -o bind /sys /home/jail/sys
chroot /home/jail/ /bin/bash
- теперь можно установить необходимые для работы пакеты (
aptitude
,mc
,wget
,openssh
,svn
,vim
и т. д.):
apt-get install aptitude mc wget subversion vim
- подключаемся под пользователем test и проверяем работу jail-окружения:
ssh test@hostname
Примечание. Чтобы не вводить каждый раз пароль, можно настроить ssh авторизацию по ключу, но это уже совсем другая история.
На этом установка и настройка jail-окружения в Debian Wheezy закончена.