Jail

Работа с jail
Чтобы просмотреть список jail запущенных jls Запустить интерпритатор внутри jail и из него запускать команды jexec 1 csh

chroot делать не требуется.

Установка
echo 'jail_enable="YES"' >> /etc/rc.conf

Для установки должны быть установлены исходные коды мира в /usr/scr. cd /usr/src && make buildworld

mkdir -p /jail/yally.ru cd /usr/src make installworld DESTDIR=/jail/yally.ru make distribution DESTDIR=/jail/yally.ru


 * 188 Мб мир и distribution

Прописать IP для jail в /etc/rc.conf. Прописывается alias. Если это новый алис, не забыть нарастить его порядковый номер, иначе не будет работать уже 2 клетки ifconfig_re0_alias0="192.168.0.252 netmask 255.255.255.255"

Имена всех jail (даже если он один) через пробел указываются в параметре. При добавлении нового надо его имя внести в эту строку. jail_list="www".

Для каждого jail создается набор строчек, в которых имя jail заключено в название параметра между словом jail и типом параметра. jail_www_rootdir="/jail/yally.ru"     jail_www_hostname="yally.ru"  jail_www_ip="192.168.0.252"   jail_www_devfs_enable="YES"   jail_www_devfs_ruleset="www_ruleset" 

dev создаться при этом сам. mount -t devfs devfs /jail/yally.ru/dev ifconfig re0 alias 192.168.0.252/32 или если указано через псевдовним (не алиас!) имя интерфейса ifconfig net0 alias 192.168.0.245/32
 * Первый запуск

Запуск jail /etc/rc.d/jail start www Configuring jails:. Starting jails: yally.ru. jls JID IP Address      Hostname                      Path 1 192.168.0.252   yally.ru                      /jail/yally.ru jexec 1 csh

Внутри jail выполнить. Копирование ключа Sshd

echo "nameserver 89.250.0.2" >> /etc/resolv.conf echo 'sshd_enable="YES"' >> /etc/rc.conf /etc/rc.d/sshd start mkdir /usr/ports (после этого в мастере выполнить команду монтирования) pw adduser binary -m -G 0 mkdir /home/binary/.ssh mv /home/lke/binary_authorized_keys /jail/snickers.jrudevels.org/home/binary/.ssh/authorized_keys chown -R binary:binary /home/binary/.ssh/

telnet ya.ru 80
 * Проверка

Чтобы запретить изменять сетевые настройки? (

 network_interfaces="" >> /etc/rc.conf) rpcbind_enable="NO" # Prevent rpc cron_flags="$cron_flags -J 15" # Prevent loads of jails doing their cron jobs at the same time syslogd_flags="-ss" # Prevent syslog to open sockets sendmail_enable="NO" # Prevent sendmail to try to connect to localhost sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO" 

Особенности jail
ping ya.ru ping: socket: Operation not permitted

Использование общих портов
чтобы в джейле был виден фолдер из мастера, как надо сделать нужно симлинк или примонтировать mount_nullfs /что /куда. mkdir /jail/yally.ru/usr/ports mount -t nullfs /usr/ports/ /jail/yally.ru/usr/ports /etc/fstab echo "/usr/ports /jail/yally.ru/usr/ports/ nullfs rw 0 0" >> /etc/fstab

Также исходные коды можно использовать общие /usr/src /jail/dcjail.net.ru/usr/src/ nullfs rw 0 0

Управление Jail - ezjail
Преимущества - As the base system is provided via soft links, the enjailed users can choose not to use the mounted world * An often underestimated fact: less complexity means more security.
 * создание новых jail на базе предустановленных.
 * экономия места за счет использования одной копии base для всех jail. также за счет этого упрощено обновление jail
 * base монтируется в режиме только чтение и не может быть скомпроментирован посредством установки root-kit
 * все написано на sh и не требуется установки дополнительного ПО для работы ejail
 * base доступен через soft links, поэтому пользователи из jail могут использовать

Screen
If you have used jexec to get into the jail, then you won't have a pty within the jail, and anything which relies on one will fail to execute. Start up sshd in the jail, then ssh to it and see if you can attach the screen. screen Cannot access '/dev/pts/0': No such file or directory

/dev/pts is the mount point for devpts (that basically provides an interface to pseudo terminal (pty) devices) without that your /dev/pts will not be populated.

Настройка времени
ntpdate ru.pool.ntp.org 17 Apr 21:17:25 ntpdate[25827]: Can't adjust the time of day: Operation not permitted

Нужно создать символическую ссылку ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Без публичного адреса
ifconfig_lo0_alias0="inet 10.10.10.1/32"

 
 * 1) делаем cd /usr/ports/www/mod_realip && make install clean
 * 2) httpd.conf и делаем Listen 10.10.10.1:80 и ServerName 10.10.10.1, попутно раскоментируя "LoadModule realip_module" и "AddModule mod_realip.c"
 * 3) Добавляем "RealIP on" в районе "ExtendedStatus"(только для apache-1.3, для apache-2.2 ставьте rpaf, инструкция есть где-то на вики -прим. exe)
 * 4) Коментим #LoadModule unique_id_module libexec/apache/mod_unique_id.so и #AddModule mod_unique_id.c
 * 5) ставим у "клиентских" виртхостов CustomLog /dev/null agent
 * 1) ставим у "клиентских" виртхостов CustomLog /dev/null agent


 * http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/jails-build.html