Jail [сообщение #55] |
Втр, 05 Июль 2005 00:54 |
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] от Модератора Известить модератора
|
|
|
|
|
Re: Jail [сообщение #164 является ответом на сообщение #55] |
Чтв, 10 Август 2006 18:42 |
|
статья написано грамотно! все работает...
там упоминалось о выделяемого IP для него.. вот какбы сделать, чтоб айпишник не выделать.. а однин для 2-х 3-х .
|
|
|
|
|
Re: Jail [сообщение #176 является ответом на сообщение #55] |
Пнд, 21 Август 2006 12:11 |
|
Парни, нашел трабл...!
env DESTDIR=$D make world
cd etc # - bad!
env DESTDIR=$D make distribution
cd etc - тут явно лишнее! ибо мне все переписало всю диру /etc
правда не тронуло rc.conf
|
|
|
|
Re: Jail [сообщение #856 является ответом на сообщение #55] |
Пнд, 06 Апрель 2009 23:53 |
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
|
|
|