FreeBSD: простая настройка Jail
Есть сервер на базе FreeBSD. Провайдер предоставляет 1 публичный IP адрес. При настройке web сервера я хотел максимально обезопасить систему, используя механизм виртуализации Jail. Сервер планируется использовать для одного проекта, поэтому все достаточно просто.
Для начала, у нас должны быть установены все (уж гулять, так гулять) src пакеты. Сделать это можно с помощью sysinstall:
Теперь создаем директорию под наши jail'ы:
Наша jail будет располагаться в директории mtaalamu:
Компилируем систему для jail:
Устанавливаем:
Отлично, посмотрев в папку /usr/jails/mtaalamu видим до боли знакомую структуру директорий:
Редактируем /etc/rc.conf:
IP адрес в моем случае — тот же, что и адрес сервера. При запуске сервисов в jail они все будут доступны со внешки.
_devfs_enable и _procfs_enable необходимы для того, чтобы монтировались devfs и procfs с основной системы. Obviously
Перед запуском скачаем и установим порты в jail:
Запустить jail можно командой:
Остановить:
Просмотр запущенных jail:
Запустить консоль jail, как впрочем и выполнить любую команду, можно так:
В jail у меня отлично работают MariaDB, Cherokee, PHP и прочие не специфичные вещи.
Для начала, у нас должны быть установены все (уж гулять, так гулять) src пакеты. Сделать это можно с помощью sysinstall:
sysinstall
Теперь создаем директорию под наши jail'ы:
mkdir /usr/jails
Наша jail будет располагаться в директории mtaalamu:
mkdir /usr/jails/mtaalamu
Компилируем систему для jail:
cd /usr/src
make buildworld
Устанавливаем:
make installworld DESTDIR=/usr/jails/mtaalamu
make distribution DESTDIR=/usr/jails/mtaalamu
Отлично, посмотрев в папку /usr/jails/mtaalamu видим до боли знакомую структуру директорий:
-rw-r--r-- 2 root wheel 798 Dec 5 15:55 .cshrc
-rw-r--r-- 2 root wheel 265 Dec 5 15:55 .profile
-r--r--r-- 1 root wheel 6206 Dec 5 15:55 COPYRIGHT
drwxr-xr-x 2 root wheel 1024 Dec 5 15:53 bin
drwxr-xr-x 7 root wheel 512 Dec 5 15:55 boot
dr-xr-xr-x 6 root wheel 512 Dec 8 01:14 dev
drwxr-xr-x 20 root wheel 2048 Dec 8 00:45 etc
drwxr-xr-x 3 root wheel 1536 Dec 5 15:53 lib
drwxr-xr-x 2 root wheel 512 Dec 5 15:53 libexec
drwxr-xr-x 2 root wheel 512 Dec 5 15:52 media
drwxr-xr-x 2 root wheel 512 Dec 5 15:52 mnt
drwxr-xr-x 4 root wheel 512 Dec 7 19:03 opt
dr-xr-xr-x 1 root wheel 0 Dec 8 01:28 proc
drwxr-xr-x 2 root wheel 2560 Dec 5 15:53 rescue
drwxr-xr-x 8 root wheel 512 Dec 7 22:31 root
drwxr-xr-x 2 root wheel 2560 Dec 5 15:54 sbin
lrwxr-xr-x 1 root wheel 11 Dec 5 15:52 sys -> usr/src/sys
drwxrwxrwt 10 root wheel 512 Dec 8 01:14 tmp
drwxr-xr-x 14 root wheel 512 Dec 5 19:54 usr
drwxr-xr-x 23 root wheel 512 Dec 8 01:14 var
Редактируем /etc/rc.conf:
jail_enable="YES"
jail_list="mtaalamu"
jail_mtaalamu_rootdir="/usr/jails/mtaalamu"
jail_mtaalamu_hostname="mtaalamu"
jail_mtaalamu_ip="xx.xx.xx.xx"
jail_mtaalamu_devfs_enable="YES"
jail_mtaalamu_procfs_enable="YES"
IP адрес в моем случае — тот же, что и адрес сервера. При запуске сервисов в jail они все будут доступны со внешки.
_devfs_enable и _procfs_enable необходимы для того, чтобы монтировались devfs и procfs с основной системы. Obviously
Перед запуском скачаем и установим порты в jail:
cd /usr/jails/mtaalamu
mkdir usr/ports
portsnap -p /usr/jails/mtaalamu/usr/ports fetch extract
Запустить jail можно командой:
/etc/rc.d/jail start mtaalamu
Остановить:
/etc/rc.d/jail stop mtaalamu
Просмотр запущенных jail:
jls
JID IP Address Hostname Path
1 xx.xx.xx.xx mtaalamu /usr/jails/mtaalamu
Запустить консоль jail, как впрочем и выполнить любую команду, можно так:
jexec 1 tcsh
В jail у меня отлично работают MariaDB, Cherokee, PHP и прочие не специфичные вещи.
Комментарии (8)
RSS свернуть / развернутьSergei_T
По-моему, такая виртуализация проще и понятнее, чем всякие Xen'ы и иже с ними.
yababay
Xen — виртуализация другого плана
Sergei_T
Mihael
yababay
Java запустить можно
Sergei_T
yababay
а так src пакетов не много — это и будет после сборки минимальная (до определенной степени) система
Sergei_T
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.