Украинская Баннерная Сеть

Рубрика архива: freebsd

Создание jail’ов в FreeBSD

1. Создание джейла

Перед продолжением убедитесь, что у Вас уже установлены исходники в /usr/src и ip адрес x.x.x.x висит альясом на одном из интерфейсов.

Для управления джейлами установим jailadmin:

cd /usr/ports/sysutils/jailadmin/
make install clean

Определимся где будут жить джейлы. Например, это будет /jails. Создадим эту директорию:

mkdir /jails

Создадим директорию для джейла с именем www.

mkdir /jails/www

Скопируем туда мир:

cd /usr/src
make buildworld
make installworld DESTDIR=/jails/www
make distribution DESTDIR=/jails/www

Отредатируем /etc/fstab, добавим туда:

devfs     /jails/www/dev     devfs   rw,noauto  0 0
proc      /jails/www/proc    procfs  rw,noauto 0 0

Отредактируем /usr/local/etc/jailadmin.conf:

jaildir=/jails
maxparallel=5
debug=1
default_devfsruleset=devfsrules_jail
default_fstab=/etc/fstab
default_shutdown=naive
default_startcommand=/bin/sh /etc/rc
default_usejtools=1

# ========= Jails ======
www
    ip: x.x.x.x
    hostname: www.example.com
    mount: /proc,/dev

2. Запуск, остановка, работа с джейлом

Запуск джейла и остановка выполняются командами:

jailadmin start www
jailadmin stop www

Список запущенных джейлов:

jls

Перейти в джейл:

jexec N sh

где N – номер джейла из jls

OpenSSH chroot в FreeBSD

1. Установка OpenSSH.

Поддержка chroot появилась в OpenSSH начиная с версии 4.8. Если у вас FreeBSD версии 7.1 и выше – вы можете пропустить этот шаг и перейти сразу к конфигурированию, т.к. поддержка chroot уже имеется в sshd поставляющемся в дистрибутиве.

Собираем порт:

# cd /usr/ports/security/openssh-portable/
# make config

Оставляем опции по умолчанию и нажимаем “ок”.

# make install clean

Включим запуск openssh в /etc/rc.conf:

openssh_enable="YES"

Что бы установленный из портов openssh заменил встроенный sshd из /etc/rc.conf убираем запуск встроенного sshd, для этого удаляем строку: sshd_enable=”YES”.

Установка завершена, переходим к конфигурированию.

2. Конфигурирование OpenSSH.

Редактируем /usr/local/etc/ssh/sshd_config (для 7.1 – /etc/ssh/sshd_config)

# Использовать только протокол версии 2
Protocol 2

# Включить поддержку SFTP
Subsystem       sftp    internal-sftp

# chroot'им пользователей группы chrootgroup
Match group chrootgroup
    ChrootDirectory /home/%u

Теперь все пользователи группы chrootgroup будут chroot’ится в свою домашнюю директорию. На пользователей остальных групп это не распространяется.

3. Создание базового набора файлов для chroot окружения.
Воспользуйтесь готовым скриптом создания chroot окружения

FreeBSD. Настраиваем PF ALTQ на VLAN интерфейсах.

Если Вы попробуете настроить шейпинг или приоритезацию трафика на VLAN интерфейсе с помощью PF ALTQ, Вы увидете ошибку: pfctl: vlan0: driver does not support altq. Как же быть? Всё просто. Нужно просто ALTQ повесить на родительский интерфейс, создать нужные очереди, а затем раскладывать трафик по очередям правилами pf. Предположим, что на интерфейсе fxp0 у нас есть интерфейс vlan0 который смотрит в подсеть 192.168.0.0/24, тогда правила будут выглядеть примерно так:

# Queuing
# Создаем altq очередь и подочереди на интерфейсе fxp0
altq on fxp0 cbq bandwidth 100Mb queue { default, local }
    queue default bandwidth 1Mb cbq(default)
    queue local bandwidth 1Mb cbq(ecn)

Далее нужно разложить трафик по созданным очередям. Сделать это можно так:

# Filtering
# Добавляем подсеть в шейпер.
pass out quick on vlan0 from any to 192.168.0.0/24 queue local

Или вот так:

# Filtering
# Добавляем трафик проходящий через vlan0 в шейпер.
pass out on vlan0 queue local

Или еще как будет угодно, но общий смысл тот же: в очереди трафик направляем правилами фильтрации.


Украинская Баннерная Сеть
Hosting Catalog Rambler's Top100