This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
технология_jail [2013/12/04 08:38] val [Технология jail] |
технология_jail [2015/08/26 09:31] val [С использованием дистрибутива] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Технология jail ====== | ====== Технология jail ====== | ||
- | * FreeBSD Jail ([[http://ru.wikipedia.org/wiki/FreeBSD_Jail]]) | + | * [[http://ru.wikipedia.org/wiki/FreeBSD_Jail|FreeBSD Jail]] |
- | * Creating and Controlling Jails ([[http://www.freebsd.org/doc/handbook/jails-build.html]]) | + | * [[http://www.freebsd.org/doc/handbook/jails-build.html|Creating and Controlling Jails]] |
- | * Управление переменными ядра в Jail ([[http://www.unixfaq.ru/index.pl?req=qs&id=1002]]) | + | * [[http://www.unixfaq.ru/index.pl?req=qs&id=1002|Управление переменными ядра в Jail]] |
- | ===== Создание "мира" ===== | + | |
+ | ===== Создание копии системы ===== | ||
+ | |||
+ | ==== С использованием дистрибутива ==== | ||
+ | <code> | ||
+ | # mount_cd9660 /dev/cd0 /mnt | ||
+ | |||
+ | # setenv D /var/jail/www | ||
+ | |||
+ | # mkdir -p $D | ||
+ | |||
+ | # tar -xvf /mnt/usr/freebsd-dist/base.txz -C $D | ||
+ | </code> | ||
+ | |||
+ | ==== С использованием компиляции и установки "мира" системы ==== | ||
=== Подготовка исходных текстов === | === Подготовка исходных текстов === | ||
Line 11: | Line 25: | ||
* [[Обновление системы и базового ПО в FreeBSD#Установка заплаток внутри релиза]] | * [[Обновление системы и базового ПО в FreeBSD#Установка заплаток внутри релиза]] | ||
- | === Сборка "мира" === | + | === Сборка "мира" (несколько часов) === |
<code> | <code> | ||
Line 18: | Line 32: | ||
</code> | </code> | ||
- | === Установка копии "мира" === | + | === Установка копии "мира" (5-7 минут) === |
<code> | <code> | ||
Line 28: | Line 42: | ||
</code> | </code> | ||
- | === Совместное использование дерева портов === | + | ===== Совместное использование дерева портов ===== |
<code> | <code> | ||
[server:~] # mount_nullfs /usr/ports/ /var/jail/www/usr/ports | [server:~] # mount_nullfs /usr/ports/ /var/jail/www/usr/ports | ||
</code> | </code> | ||
+ | |||
===== Запуск jail ===== | ===== Запуск jail ===== | ||
+ | |||
+ | ==== FreeBSD10.X ==== | ||
+ | |||
+ | * [[http://therub.org/2014/08/11/convert-freebsd-jails-from-rc.conf-to-jail.conf/|Convert FreeBSD 10 Jails from rc.conf to jail.conf]] | ||
+ | |||
<code> | <code> | ||
[server:~] # cat /etc/rc.conf | [server:~] # cat /etc/rc.conf | ||
+ | </code><code> | ||
+ | ... | ||
+ | jail_enable="YES" | ||
+ | jail_list="www" | ||
+ | </code><code> | ||
+ | [server:~] # cat /etc/jail.conf | ||
+ | </code><code> | ||
+ | allow.raw_sockets = 1; | ||
+ | exec.clean; | ||
+ | exec.system_user = "root"; | ||
+ | exec.jail_user = "root"; | ||
+ | exec.start = "/bin/sh /etc/rc"; | ||
+ | exec.stop = "/bin/sh /etc/rc.shutdown"; | ||
+ | mount.devfs; | ||
+ | allow.set_hostname = 0; | ||
+ | allow.sysvipc = 0; | ||
+ | |||
+ | www { | ||
+ | host.hostname = "www.corpX.un"; | ||
+ | path = "/var/jail/www"; | ||
+ | interface = "em0"; | ||
+ | ip4.addr = "192.168.X.20"; | ||
+ | exec.consolelog = "/var/log/jail_www_console.log"; | ||
+ | } | ||
+ | </code><code> | ||
+ | [server:~] # service jail start www | ||
+ | </code> | ||
+ | |||
+ | ==== FreeBSD8.X ==== | ||
+ | <code> | ||
+ | [server:~] # cat /etc/rc.conf | ||
+ | </code><code> | ||
... | ... | ||
jail_enable="YES" | jail_enable="YES" | ||
Line 45: | Line 97: | ||
jail_www_devfs_enable="YES" | jail_www_devfs_enable="YES" | ||
jail_www_devfs_ruleset="devfsrules_jail" | jail_www_devfs_ruleset="devfsrules_jail" | ||
+ | </code><code> | ||
[server:~] # sysctl security.jail.allow_raw_sockets=1 | [server:~] # sysctl security.jail.allow_raw_sockets=1 | ||