Форум компании ITRM
Информационные технологии

Начало » Инфраструктурные решения » Технологии витруализации » Jail
Jail [сообщение #55] Втр, 05 Июль 2005 00:54 Переход к следующему сообщения
rodion в настоящее время не в онлайне  rodion
Сообщений: 60
Зарегистрирован: Март 2005
Member
Administrator
Привет всем!

На сайте http://itrm.ru появилась новая статья о настройке jail от exist (автора статьи о DNSSEC). Предлагаю обсуждить её на нашем форуме.


Настройка Jail
exist

Каких только небылиц я не слышал про jail перед тем как его ставить. И о включении его поддержки в ядре, и о версиях free. Все, на самом деле, проще и по-другому. Проще только в том смысле, что запустить его достаточно просто в самом примитивном варианте.


Итак, имеем свежую:
uname -a
5.4-RELEASE FreeBSD

Во-первых, о плохом. Каждому jail нужен отдельный IP. Где-то читал, что есть возможность как-то обойти это условие. Рад буду практическому примеру. А пока.. достаем свободный IP и под рутом прописаваем алиасом:

ifconfig fxp0 inet 1.1.1.1 netmask 255.255.255.255 alias
Затем:
sh
(Зачем? Вся фишка в переменных окружения. Если не в лом, то добавьте их в bash, либо csh, тогда проблем не будет.)
D=/home/jail1
cd /usr/src
mkdir -p $D
make world DESTDIR=$D
cd etc
make distribution DESTDIR=$D

Здесь нужно сделать примечание. Когда я собирал jail во freebsd 5.3 были ошибки. Это лечится:
env DESTDIR=$D make world
cd etc
env DESTDIR=$D make distribution


После долгого процеса сборки:
mount_devfs devfs $D/dev
сd $D
ln -sf dev/null kernel
mount -t procfs proc $D/proc
mkdir stand
cp /stand/sysinstall stand/


Запускаем, собственно, тюрягу:
jail /home/jail1 jail1.hostname.ru 1.1.1.1 /bin/sh
vi /etc/rc.conf

Прописываем здесь все что нужно, например:
cat /etc/rc.conf

font8x14="cp866-8x14"
font8x16="cp866b-8x16"
font8x8="cp866-8x8"
keymap="ru.koi8-r"
scrnmap="koi8-r2cp866"

defaultrouter="1.1.1.2"
hostname="jail1.hostname.ru"
ifconfig_fxp0="inet 1.1.1.1 netmask 255.255.255.255"

sshd_enable="YES"

enable_quotas="YES"
check_quotas="YES"

syslogd_flags="-ss"
kern_securelevel_enable="YES"

И далее:
/bin/sh /etc/rc

Loading configuration files.
Setting hostname: renatka.itrm.ru.
Generating nsswitch.conf.
Generating host.conf.
Starting syslogd.
ELF ldconfig path: /lib /usr/lib /usr/lib/compat
a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout
Starting local daemons:.
Updating motd.
/etc/rc: WARNING: Setting entropy source to blocking mode.
=========================================================
Type a full screenful of random junk to unblock
it and remember to finish with . This will
timeout in 300 seconds, but waiting for
the timeout without typing junk may make the
entropy source deliver predictable output.

Just hit for fast+insecure startup.
=========================================================
kern.random.sys.seeded: 1

Generating public/private rsa1 key pair.
Your identification has been saved in /etc/ssh/ssh_host_key.
Your public key has been saved in /etc/ssh/ssh_host_key.pub.
The key fingerprint is:
13:a0:43:91:7f:19:aa:1b:87:47:f3:7d:75:dc:47:78 root@*.ru
Generating public/private dsa key pair.
Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
The key fingerprint is:
d3:9f:80:22:11:74:1f:20:ff:d3:2b:b1:aa:81:e7:33 root@*.ru
Generating public/private rsa key pair.
Your identification has been saved in /etc/ssh/ssh_host_rsa_key.
Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.
The key fingerprint is:
10:8d:3f:8c:ea:d8:2c:d0:dd:77:26:b6:75:af:bc:a9 root@*.ru
Starting sshd.
Starting cron.
Local package initialization:.

Sun Jun 26 01:01:39 UTC 2005


Все, jail готов к использованию. Дальше тюнинг и настройка сервисов.
Удачи!
PS
I found two interesting tools for starting and stopping the jails: sysutils/jailer and sysutils/jailutils/. sysutils/jailer is installed in the jail environment. sysutils/jailutils should be installed in the host environment.
Using those two tools, I created this start/stop script:

#!/bin/sh

case "$1" in
start)
jail /usr/jail/192.168.0.155 osw.example.org 192.168.0.155 /usr/local/sbin/jailer > /dev/null && echo -n ' jail 66.154.97.254'
;;
stop)
/usr/local/sbin/jails | /usr/bin/xargs /usr/local/sbin/killjail > /dev/null && echo -n ' jail'
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
y;;
esac

exit 0


Все вопросы и обсуждение статьи на форуме: http://forum.itrm.ru
Вверх Другие статьи

Перепечатка материалов статьи, копирование и т.д. с разрешения автора exist@itrm.ru
Ссылка на сайт www.itrm.ru обязательна!

[Обновления: Сбт, 04 Апрель 2009 16:57] от Модератора

Известить модератора

icon14.gif  Re: Jail [сообщение #56 является ответом на сообщение #55] Втр, 05 Июль 2005 09:53 Переход к предыдущему сообщенияПереход к следующему сообщения
slipper в настоящее время не в онлайне  slipper
Сообщений: 18
Зарегистрирован: Март 2005
Географическое положение: Москва
Junior Member
Статья хорошая. Все сделал как написано - jail заработал Smile
Правда с IP - адресом трудность есть: скажи (вопрос к exist) можно ли использовать какой-нибудь общедоступный IP-шник?

[Обновления: Чтв, 06 Апрель 2006 20:30] от Модератора

Известить модератора

Re: Jail [сообщение #67 является ответом на сообщение #55] Втр, 15 Ноябрь 2005 09:53 Переход к предыдущему сообщенияПереход к следующему сообщения
Nikolay в настоящее время не в онлайне  Nikolay
Сообщений: 26
Зарегистрирован: Март 2005
Junior Member
Кто знает, что означает технология Jail?
Re: Jail [сообщение #164 является ответом на сообщение #55] Чтв, 10 Август 2006 18:42 Переход к предыдущему сообщенияПереход к следующему сообщения
Anonymous
статья написано грамотно! все работает...
там упоминалось о выделяемого IP для него.. вот какбы сделать, чтоб айпишник не выделать.. а однин для 2-х 3-х . Surprised
Re: Jail [сообщение #166 является ответом на сообщение #55] Чтв, 10 Август 2006 18:55 Переход к предыдущему сообщенияПереход к следующему сообщения
exist в настоящее время не в онлайне  exist
Сообщений: 226
Зарегистрирован: Март 2005
Senior Member
Если придумаем способ как такого достигнуть, то допишем на сайте в статье. Smile
Re: Jail [сообщение #175 является ответом на сообщение #55] Вск, 20 Август 2006 17:37 Переход к предыдущему сообщенияПереход к следующему сообщения
Anonymous
good!
буду ждать Wink
Re: Jail [сообщение #176 является ответом на сообщение #55] Пнд, 21 Август 2006 12:11 Переход к предыдущему сообщенияПереход к следующему сообщения
Anonymous
Парни, нашел трабл...!

env DESTDIR=$D make world
cd etc # - bad!
env DESTDIR=$D make distribution

cd etc - тут явно лишнее! ибо мне все переписало всю диру /etc
правда не тронуло rc.conf
Re: Jail [сообщение #178 является ответом на сообщение #55] Пнд, 21 Август 2006 20:52 Переход к предыдущему сообщенияПереход к следующему сообщения
exist в настоящее время не в онлайне  exist
Сообщений: 226
Зарегистрирован: Март 2005
Senior Member
с статье все верно, там не /etc, а /usr/src/etc (!)

$ cd /usr/src/

$ ls

COPYRIGHT Makefile.inc1 contrib gnu libexec secure usr.bin
LOCKS README crypto include release share usr.sbin
MAINTAINERS UPDATING etc kerberos5 rescue sys
Makefile bin games lib sbin tools

$ cd etc
$ pwd
/usr/src/etc
Re: Jail [сообщение #856 является ответом на сообщение #55] Пнд, 06 Апрель 2009 23:53 Переход к предыдущему сообщения
rodion в настоящее время не в онлайне  rodion
Сообщений: 60
Зарегистрирован: Март 2005
Member
Administrator
Для того, чтобы не скачивать коллекцию портов в каждый VDS отдельно, можно просто использовать коллекцию портов с дефолтного хоста. Для этого можно использовать nullfs freebsd.
mount_nullfs -- mount a loopback file system sub-tree; demonstrate the use of a null file system layer

Монтируется это командой:
mount_nullfs /usr/ports $D/usr/ports
Предыдущая тема: VDS + Solaris
Следующая тема: Облачные вычисления
Переход к форуму: