Установка и настройка jail окружения в Debian Wheezy

Sep 17, 2015 16:25 · 320 words · 2 minute read debian

В целях безопасности иногда требуется запускать приложения в отдельном окружении либо ограничивать доступ пользователям.

С этими задачами хорошо справляется технология 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 закончена.

tweet Share