FreeBSD: простая настройка Jail

Есть сервер на базе FreeBSD. Провайдер предоставляет 1 публичный IP адрес. При настройке web сервера я хотел максимально обезопасить систему, используя механизм виртуализации Jail. Сервер планируется использовать для одного проекта, поэтому все достаточно просто.

Для начала, у нас должны быть установены все (уж гулять, так гулять) 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 и прочие не специфичные вещи.
  • +1
  • 07 декабря 2010, 23:06
  • Sergei_T

Комментарии (8)

RSS свернуть / развернуть
+
0
У нас какая-то неделя FreeBSD на Мтааламу.ру
avatar

Sergei_T

  • 07 декабря 2010, 23:07
+
0
Очень познавательно.

По-моему, такая виртуализация проще и понятнее, чем всякие Xen'ы и иже с ними.
avatar

yababay

  • 07 декабря 2010, 23:35
+
0
Jail очень близок к OpenVZ
Xen — виртуализация другого плана
avatar

Sergei_T

  • 08 декабря 2010, 00:55
+
0
Нравится!!!
avatar

Mihael

  • 08 декабря 2010, 09:34
+
0
А можно создать минималистичный world, установить на него только Java и запустить где-нибудь в jail-окружении?
avatar

yababay

  • 08 декабря 2010, 11:12
+
0
Он и так минималистичный
Java запустить можно
avatar

Sergei_T

  • 08 декабря 2010, 11:21
+
0
Фраза «Для начала, у нас должны быть установены все (уж гулять, так гулять) src пакеты» какбэ намекает, что он не совсем минималистичен . Даже games крестиком помечены.
avatar

yababay

  • 08 декабря 2010, 11:50
+
0
При сборке просто собирает fortune вроде
а так src пакетов не много — это и будет после сборки минимальная (до определенной степени) система
avatar

Sergei_T

  • 08 декабря 2010, 11:59

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.