Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
jail_svn_devfs_enable="YES" # Монтировать devfs в jail
Добавляем пользователя, под которым мы будем заходить в jail. Для этого можно воспользоваться командой:
# vipw -d /usr/home/jails/svn/etc
либо:
# pw -V /usr/home/jails/svn/etc useradd admin -g 0 -d /usr/home/jails/svn/usr/home/admin -s /bin/csh -h 0 -m
Для удобства работы присваиваем пользователю группу 0 (wheel) и разрешаем в jail запуск sshd. В файл /usr/home/jails/svn/etc/rc.conf добавляем строчку sshd_enable=”YES” и запускаем jail командой /etc/rc.d/jail start. Если все сделано правильно, команда jls(8) выведет примерно следующее:
# jls
JID IP Address Hostname Path
1 XX.YY.XX.TT svn.reki.ru /usr/home/jails/svn
Заходим в jail по ssh, получаем права суперпользователя, выкачиваем и разворачиваем архив дерева портов:
# ssh XX.YY.XX.TT -l admin
# su - root
# cd /usr
# fetch ftp://ftp.freebsd.org/pub/FreeBSD/ports/ports/ports.tar.gz
# tar -xzf ports.tar.gz
Начиная с этого момента jail представляет собой полноценную виртуальную машину, доступную для администрирования по ssh.
Устанавливаем веб-сервер Apache2
Для повышения общего уровня безопасности, будем авторизовывать клиента через подписанный нами сертификат; поэтому нам следует воспользоваться опцией FakeBasicAuth. При входе клиента с выданным нами сертификатом на сервер Apache произведет псевдоавторизацию, основываясь на данных сертификата.
Надо отметить, что при подобной авторизации имя пользователя выглядит как строка свойств сертификата. Соответственно при коммите через HTTPS имя пользователя будет не stellar, а /C=RU/ST=-/L=Moscow/O=Reki.ru/OU=SVN/CN=stellar/emailAddress=stellar@reki.ru. Понятно, что наличие в двух ипостасях одного и того же пользователя никого устроить не может и хорошим решением было бы взять в качестве логина часть строки данных сертификата. Для этого в Apache предусмотрена директива SSLUserName и... увы и ах, мир несовершенен: без исправлений кода mod_ssl опции FakeBasicAuth и SSLUserName вместе не работают.
К счастью, по URL
Для сборки Apache с поддержкой FakeBasicAuth + SSLUserName надо скачать патч и положить его в каталог /usr/ports/www/apache2/files. Если предполагается, что репозиторий Subversion будет храниться в BerkeleyDB, нам также будет необходимо включить поддержку BerkeleyDB для Apache.
Итак, устанавливаем необходимые переменные окружения и запускаем установку Apache.
# cd /usr/ports/www/apache2
# setenv WITH_BERKELEYDB db42
# cd files
# fetch http://reki.ru/products/subversion/patch-server-ssl_engine_kernel.c
# cd ../
# make install clean