23 августа 2012 г.

Jail - Клетка freebsd

Сегодня (1 ареля 2010г, я понял как действительно нужно поднимать хостинг-сервер)
И так Реализуем Правильно хостинг!

###Создаем клетку:###

#!/bin/sh

case "$2" in
        create)
                jail_dir="$1"
                mkdir -p ${jail_dir}
                cd /usr/src
                mkdir -p ${jail_dir}
                make world DESTDIR=${jail_dir}
                cd /usr/src/etc
                make distribution DESTDIR=${jail_dir}
                mount_devfs devfs ${jail_dir}/dev

                ;;
        *)
                echo ""
                echo "Usage: `basename $0` { /path/to/jail/directory create }"
                echo ""
                exit 64
                ;;
esac


###Запускаем###
./jail.sh /usr/local/jails/overlink create


###rc.conf на физическом сервере:###

defaultrouter="XXX.XXX.47.1"
hostname="aurora"

ifconfig_em0="inet XXX.XXX.47.7  netmask 255.255.255.0"
ifconfig_em0_alias0="inet XXX.XXX.47.8  netmask 255.255.255.0"

keymap="ru.koi8-r"
sshd_enable="YES"
syslogd_flags="-b XXX.XXX.47.7"


jail_enable="YES"
jail_list="test"
jail_set_hostname_allow="YES"
jail_test_rootdir="/usr/local/jails/overlink"
jail_test_hostname="test-jail.local"
jail_test_ip="XXX.XXX.47.8"
jail_test_devfs_enable="YES"
jail_test_procfs_enable="YES"
jail_test_flags="-l -U root"

firewall_enable="YES"
firewall_script="/etc/fw.sh"


###Создаем пустой файл (что бы не ругался):###
touch /usr/local/jails/overlink/etc/fstab


###Прописываем ДНСы###
/usr/local/jails/overlink/etc/resolv.conf
nameserver 192.168.0.3


###Рубутимся и пробуем зайти и поставить bash:###
jexec 1 chs
cd /usr/ports/shells/bash && make install clean && rehash


###Заходим в клетку и ставим на рута пароль:###
jexec 1 bash
passwd root
exit


###Пишем крипт входа:###
#!/bin/sh

/sbin/mount -t nullfs /usr/ports/ /usr/local/jails/overlink/usr/ports/
/usr/sbin/jexec `cat /var/run/overlink.id` bash