июля 13 2009 07:25 пп

Настройка Jail в FreeBSD с помощью ezjail

pedge_r805_overview3.jpg

Зададимся вопросом - как, используя сервер на базе FreeBSD, получить несколько независимых окружений, в народе называемых jail? Например, как использовать одну из jail для почтового сервера, а вторую для web-сервера, при этом каждая jail должна иметь собственный IP-адрес?

Каждая jail на FreeBSD имеет собственные файлы, процессы и учетные записи. Находясь внутри, практически невозможно отличить jail от реальной системы. Самым простым способом определения, создания и модифицирования jail является использование среды ezjail.

Внимание! Сетевые демоны, перед использованием jail, должны быть сконфигурированы на использование адреса 127.0.0.1 или на работу с адресом интерфейса. По крайней мере, это необходимо сделать со службами sshd и syslogd.

Вводные данные

  • * server.nixcraft.net.in : FreeBSD host server running v7.2 with 202.54.1
  • * smtpd.nixcraft.net.in : Mail server jail with 202.54.1
  • * httpd.nixcraft.net.in : Web server jail with 202.54.1.4

Шаг 1: Обновляем корневую систему

Убедитесь в том, что ваша система достаточно актуальна. Руководство по обновлению системы вы можете найти здесь.

Шаг 2: Устанавливаем ezjail

Для установки ezjail выполните нижеприведенные команды. Таким образом, мы получим два скрипта, позволяющие нам более просто управлять жизненным циклом jail.

# cd /usr/ports/sysutils/ezjail
# make install clean

Расположение файлов ezjail по умолчанию:

1. /usr/jails/ каталог размещения шаблонов jail.
2. /usr/jails/flavours/ настройка каждой jail может быть выполнена через flavours. Служит для того чтобы, например, добавить значение по умолчанию в файл /etc/resolv.conf или обновить существующий файл /etc/make.conf
3. /usr/jails/basejail/ базовая система jail, которая монтируется в режиме "read only" и является одинаковой для всех jail, что позволяет сэкономить место на жестком диске.
4. /usr/local/etc/rc.d/ezjail.sh скрипты Stop/Start/Restart
5. /usr/local/etc/ezjail.conf конфигурационный файл ezjail, который содержит настройки для rc скрипта. Таже данный файл может быть просмотрен командой ezjail-admin.
6. /usr/local/etc/ezjail/ все файлы конфигурации ваших jail хранятся здесь

Шаг 3: Создаем базовый шаблон jail

Для создания или обновления окружения ezjail (aka basejail) из исходных текстов, выполните следующую команду:

# ezjail-admin update -p -i

Где:

  • * -p : Provide ports for jail
  • * -i : не запускать "make world".

Если у вас нет /usr/src и вы никогда не запускали make world, вы можете установить шаблон с ftp сервера, используя утилиту ezjail-admin:

# ezjail-admin install


Шаг 4: Создаем SMTPD Mail Server Jail

Для создания jail smtpd.nixcraft.net.in с адресом 202.54.1.3, располагающейся в каталоге /jails/smtpd.nixcraft.net.in, выполните следующую команду:

# ezjail-admin create -r /jails/smtpd.nixcraft.net.in smtpd.nixcraft.net.in 202.54.1.3


Обновление файла конфигурации SMTPD Jail

По умолчанию, файл конфигурации расположен в /usr/local/etc/ezjail/smtpd_nixcraft_net_in. Откройте его и добавьте следующие строки:

export jail_smtpd_nixcraft_net_in_hostname="smtpd.nixcraft.net.in"
export jail_smtpd_nixcraft_net_in_ip="202.54.1.3,10.21.51.12"

Шаг 5: Запускаем сервис jail

Добавим строку запуска в файл /etc/rc.conf:

# echo 'ezjail_enable="YES"' >> /etc/rc.conf

После чего можем запустить службу:

# /usr/local/etc/rc.d/ezjail.sh start

Для управления конкретным jail можно воспользоваться следующими командами:

# /usr/local/etc/rc.d/ezjail.sh {start/stop/restart} jail-name
# /usr/local/etc/rc.d/ezjail.sh start httpd
# /usr/local/etc/rc.d/ezjail.sh stop smtpd.nixcraft.net.in

Просмотреть список jail можно командой:

# jls

Или, для получения дополнительной информации, воспользуйтесь синтаксисом:

# jls -v

Дя того, чтобы подключиться к jail, воспользуйтесь командой:

# jexec jid csh

При этом jid можно получить из вывода команды jls. В данном примере мы подключаемся к jail smtpd.nixcraft.net.in с jid # 2:

# jexec 2 csh

После подключения к jail мы можем устанавливать необходимое нам ПО, например bash:

# pkg_add -r -v bash

Или сервер Apache 2.2:

# cd /usr/ports/www/apache22
# make install clean

Для того, чтобы подключаться к jail удаленно, необходимо внести следующие изменения в ее файл /etc/rc.conf:

# echo 'sshd_enable="YES"' >> /etc/rc.conf

Затем откроем файл sshd_config и укажем в нем использовать только IP адрес, назначенный данной jail. После чего запускаем сервер OpenSSH:

# /etc/rc.d/sshd start
# sockstat -4

Обновить FreeBSD Jail можно так:

# /usr/local/etc/rc.d/ezjail.sh stop
# ezjail-admin update -p -i
# /usr/local/etc/rc.d/ezjail.sh start

Для обновления дерева портов используйте команду:

# ezjail-admin update -P

Журнальные файлы jail по умолчанию хранятся в каталоге /var/log. Для того чтобы, к примеру, просмотреть логи jail smtpd.nixcraft.net.in, воспользуйтесь командой:

# tail -f jail_smtpd_nixcraft_net_in_console.log
# grep 'error' jail_smtpd_nixcraft_net_in_console.log

Для добавления httpd jail выполните следующие действия:

# ezjail-admin create -r /jails/httpd.nixcraft.net.in httpd.nixcraft.net.in 202.54.1.4
# vi /usr/local/etc/ezjail/httpd_nixcraft_net_in
# /usr/local/etc/rc.d/ezjail.sh start httpd.nixcraft.net.in
# jls -v
# jexec id csh

Для резервного копированя jail рекомендую воспользоваться командами tar, rsync и dump.

Для сохранения данных на ленту, воспользуйтесь командой:

# tar -zcvf /dev/sa0 /jails/smtpd.nixcraft.net.in

Для сохранения всех jail, расположенных в каталоге /jails используйте:

# /sbin/dump -0uLf /dev/sa0 /jails/

А для инкрементных обновлений полученного архива:

# /sbin/dump -1uLf /dev/sa0 /jails/

Оригинал статьи: http://www.dreamcatcher.ru/

Популярность: 26%

Комментариев нет »

1 звезда2 звезд3 звезд4 звезд5 звезд (1 голосов, средний: 5 из 5)
Загрузка ... Загрузка ...
Дай же, не жадничай!
ЯндексЯндекс. ДеньгиХочу такую же кнопку

Trackback URI | Comments RSS

Leave a Reply

You must be logged in to post a comment.


Самые популярные статьи

  • Установка почтового сервера Postfix + Dovecot + MYSQL и виртуальных доменов
  • Установка и настройка DNS сервера bind9 Ubuntu-Debian HOWTO
  • Установка Samba сервера на Ubuntu или Debian за 5 минут
  • Подборка wide-screen обоев высокого разрешения
  • Mail.ru Агент в Linux
  • Установка и настройка DHCP сервера
  • Подробное руководство по настройке wifi соединения с шифрованием разных типов
  • Удаленное подключение к рабочему столу Linux из Windows с помощью Xming и SSH
  • Настройка ограничения и распределения канала (HTB Shaper)
  • Создание загрузочной флэшки с Ubuntu 8.04 Live или Server
  • Настройка маршрутизации в Ubuntu Linux для начинающих
  • Редактирование текста при помощи SED
  • Настройка вебкамер Genius и Acer Crystal Eye в Ubuntu 8.04
  • Сотня лучших полезных программ с открытым исходным кодом.
  • Небольшая подборка обоев "Linux like"
  • Установка VMware Server на Ubuntu 8.04
  • Блокировка нежелательных URL с помощью iptables
  • Запуск виртуальных хостов Apache2 от разных пользователей
  • Виртуализация с помощью Qemu
  • Вышел пакет PlayOnLinux 3.0 для запуска Windows игр в Linux
  • Установка драйвера MADWIFI для сетевого адаптера Atheros 5xxx
  • Установка и настройка SSHD в среде chroot при помощи makejail
  • Установка сервера голосового общения TeamSpeak
  • Настройка маршрутизации с помощью Quagga (zebra)
  • HDR обои на рабочий стол 1920x1200
  • Установка системы резервного копирования BackupPC
  • Установка и настройка L2TP сервера xl2tpd или l2tpd
  • Настройка поддержки мультимедиа в Ubuntu 8.04
  • Релиз Midnight Commander 4.6.3
  • Что такое Zeroconf и с чем его едят

  • « Вышел финальный релиз плеера VLC 1.0 | Выпущен первый предварительный релиз Midnight Commander 4.7.0-pre1 »

    Рейтинг блогов Rambler's Top100
    службы мониторинга серверов