| 
		
			| Jail [сообщение #55] | Втр, 05 Июль 2005 00:54  |  
			| 
				
				
					|  rodion Сообщений: 60
 Зарегистрирован: Март 2005
 | MemberAdministrator
 |  |  |  
	| Привет всем!  
 На сайте http://itrm.ru  появилась новая статья о настройке jail от exist (автора статьи о DNSSEC). Предлагаю обсуждить её на нашем форуме.
 Настройка Jail
 exist
 
 Каких только небылиц я не слышал про jail перед тем как его ставить. И о включении его поддержки в ядре, и о версиях free. Все, на самом деле, проще и по-другому. Проще только в том смысле, что запустить его достаточно просто в самом примитивном варианте.
 
 
 Итак, имеем свежую:
 uname -a
 5.4-RELEASE FreeBSD
 
 Во-первых, о плохом. Каждому jail нужен отдельный IP. Где-то читал, что есть возможность как-то обойти это условие. Рад буду практическому примеру. А пока.. достаем свободный IP и под рутом прописаваем алиасом:
 
 ifconfig fxp0 inet 1.1.1.1 netmask 255.255.255.255 alias
 Затем:
 sh
 (Зачем? Вся фишка в переменных окружения. Если не в лом, то добавьте их в bash, либо csh, тогда проблем не будет.)
 D=/home/jail1
 cd /usr/src
 mkdir -p $D
 make world DESTDIR=$D
 cd etc
 make distribution DESTDIR=$D
 
 Здесь нужно сделать примечание. Когда я собирал jail во freebsd 5.3 были ошибки. Это лечится:
 env DESTDIR=$D make world
 cd etc
 env DESTDIR=$D make distribution
 
 
 После долгого процеса сборки:
 mount_devfs devfs $D/dev
 сd $D
 ln -sf dev/null kernel
 mount -t procfs proc $D/proc
 mkdir stand
 cp /stand/sysinstall stand/
 
 
 Запускаем, собственно, тюрягу:
 jail /home/jail1 jail1.hostname.ru 1.1.1.1 /bin/sh
 vi /etc/rc.conf
 
 Прописываем здесь все что нужно, например:
 cat /etc/rc.conf
 
 font8x14="cp866-8x14"
 font8x16="cp866b-8x16"
 font8x8="cp866-8x8"
 keymap="ru.koi8-r"
 scrnmap="koi8-r2cp866"
 
 defaultrouter="1.1.1.2"
 hostname="jail1.hostname.ru"
 ifconfig_fxp0="inet 1.1.1.1 netmask 255.255.255.255"
 
 sshd_enable="YES"
 
 enable_quotas="YES"
 check_quotas="YES"
 
 syslogd_flags="-ss"
 kern_securelevel_enable="YES"
 
 И далее:
 /bin/sh /etc/rc
 
 Loading configuration files.
 Setting hostname: renatka.itrm.ru.
 Generating nsswitch.conf.
 Generating host.conf.
 Starting syslogd.
 ELF ldconfig path: /lib /usr/lib /usr/lib/compat
 a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout
 Starting local daemons:.
 Updating motd.
 /etc/rc: WARNING: Setting entropy source to blocking mode.
 =========================================================
 Type a full screenful of random junk to unblock
 it and remember to finish with . This will
 timeout in 300 seconds, but waiting for
 the timeout without typing junk may make the
 entropy source deliver predictable output.
 
 Just hit for fast+insecure startup.
 =========================================================
 kern.random.sys.seeded: 1
 
 Generating public/private rsa1 key pair.
 Your identification has been saved in /etc/ssh/ssh_host_key.
 Your public key has been saved in /etc/ssh/ssh_host_key.pub.
 The key fingerprint is:
 13:a0:43:91:7f:19:aa:1b:87:47:f3:7d:75:dc:47:78 root@*.ru
 Generating public/private dsa key pair.
 Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
 Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
 The key fingerprint is:
 d3:9f:80:22:11:74:1f:20:ff:d3:2b:b1:aa:81:e7:33 root@*.ru
 Generating public/private rsa key pair.
 Your identification has been saved in /etc/ssh/ssh_host_rsa_key.
 Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.
 The key fingerprint is:
 10:8d:3f:8c:ea:d8:2c:d0:dd:77:26:b6:75:af:bc:a9 root@*.ru
 Starting sshd.
 Starting cron.
 Local package initialization:.
 
 Sun Jun 26 01:01:39 UTC 2005
 
 
 Все, jail готов к использованию. Дальше тюнинг и настройка сервисов.
 Удачи!
 PS
 I found two interesting tools for starting and stopping the jails: sysutils/jailer and sysutils/jailutils/. sysutils/jailer is installed in the jail environment. sysutils/jailutils should be installed in the host environment.
 Using those two tools, I created this start/stop script:
 
 #!/bin/sh
 
 case "$1" in
 start)
 jail /usr/jail/192.168.0.155 osw.example.org 192.168.0.155 /usr/local/sbin/jailer > /dev/null && echo -n ' jail 66.154.97.254'
 ;;
 stop)
 /usr/local/sbin/jails | /usr/bin/xargs /usr/local/sbin/killjail > /dev/null && echo -n ' jail'
 ;;
 *)
 echo "Usage: `basename $0` {start|stop}" >&2
 y;;
 esac
 
 exit 0
 
 
 Все вопросы и обсуждение статьи на форуме: http://forum.itrm.ru
 Вверх  Другие статьи
 
 Перепечатка материалов статьи, копирование и т.д. с разрешения автора exist@itrm.ru
 Ссылка на сайт www.itrm.ru обязательна!
 
 
 [Обновления: Сбт, 04 Апрель 2009 16:57] от Модератора Известить модератора |  
	|  |  | 
	|  | 
	|  | 
	| 
		
			| Re: Jail [сообщение #164 является ответом на сообщение #55] | Чтв, 10 Август 2006 18:42   |  
			|  |  
	| статья написано грамотно! все работает... там упоминалось о выделяемого IP для него.. вот какбы сделать, чтоб  айпишник не выделать.. а  однин для 2-х 3-х .
   |  
	|  |  | 
	|  | 
	|  | 
	| 
		
			| Re: Jail [сообщение #176 является ответом на сообщение #55] | Пнд, 21 Август 2006 12:11   |  
			|  |  
	| Парни, нашел трабл...! 
 env DESTDIR=$D make world
 cd etc # - bad!
 env DESTDIR=$D make distribution
 
 cd etc - тут явно лишнее! ибо мне все переписало всю диру /etc
 правда не тронуло rc.conf
 
 |  
	|  |  | 
	|  | 
	| 
		
			| Re: Jail [сообщение #856 является ответом на сообщение #55] | Пнд, 06 Апрель 2009 23:53  |  
			| 
				
				
					|  rodion Сообщений: 60
 Зарегистрирован: Март 2005
 | MemberAdministrator
 |  |  |  
	| Для того, чтобы не скачивать коллекцию портов в каждый VDS отдельно, можно просто использовать коллекцию портов с дефолтного хоста. Для этого можно использовать nullfs freebsd. mount_nullfs -- mount a loopback file system sub-tree; demonstrate the use of a null file system layer
 
 Монтируется это командой:
 mount_nullfs /usr/ports $D/usr/ports
 |  
	|  |  |