Подготовка джейла для Torrentmonitor

Dec 05, 2014 00:35

Этот пост написан на замену посту Jail-шаблон с вебсервером и базой данных. Дело в том, что из-за замены менеджера пакетов во FreeBSD по старому работать перестало. И тащить за собой исправления - только забивать вам мозги. Поэтому пишу работающую на сегодня версию. Она пригодится для Torrentmonitor.

А новый менеджер пакетов на голову лучше и гибче старого.

UPD от 31 июля 2015. Поправил для nas4free 10.1.0.2 - Prescience (revision 1731). В основном дал ссылку на новый диалог настройки клетки в п 1 /UPD



1) Создаём джейл через TheBrig, как сделано здесь в п 3. Даём джейлу имя torrentmonitor и IP 192.168.1.54/24. fstab пока НЕ заполняем

2) Запускаем джейл, смотри его номер (пусть будет 4), через putty заходим по ssh, идём в джейл
jexec 4 tcsh

3) Устанавливаем новый пакетный менеджер, соглашаемся - ставим y

root@torrentmonitor:/ # pkg
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y

4) Ставим гумманоидный редактор
pkg install nano

5) Копируем и редактируем конфиг
cp /usr/local/etc/pkg.conf.sample /usr/local/etc/pkg.conf
nano /usr/local/etc/pkg.conf

Здесь находим строку
#ASSUME_ALWAYS_YES = false;
и заменяем её на
ASSUME_ALWAYS_YES = true;
Внимание - # в начале убираем. Можно и не редактировать, но тогда при каждой установке пакета будет назойливо задавать вопросы.

6) Обновляем пакеты и заодно убеждаемся, что всё работает
pkg update -f

root@tm:/usr/ports/ports-mgmt/pkg # pkg update -f
Updating FreeBSD repository catalogue...
[tm.local] Fetching meta.txz: 100% 968 B 1.0k/s 00:01
[tm.local] Fetching digests.txz: 100% 2 MB 2.1M/s 00:01
[tm.local] Fetching packagesite.txz: 100% 5 MB 5.3M/s 00:01
Processing new repository entries: 100%
FreeBSD repository update completed. 23708 packages processed:
0 updated, 0 removed and 23708 added.

ПРИМ. Чтоб 2 раза не вставать - пара полезных на будущее команд сюда же, респект камраду RU_Taurus
pkg audit -F - проверка уязвимостей
pkg info | grep nano - просмотр версии установленного пакета
pkg search [имя_пакета] - ищет заданное примерное имя пакета в локальном репозитарии
pkg search -f [имя_пакета] - посмотреть полную информацию о пакете (точное имя мы нашли первой командой)
pkg version -Rv - посмотреть что из пакетов требует обновления
pkg upgrade [имя_пакета] - обновить пакет до новой версии, можно задать несколько имён в одной команде. /ПРИМ

7) Теперь ставим пакеты
pkg install lighttpd
pkg install php5-ctype
pkg install php5-dom
pkg install php5-fileinfo
pkg install php5-filter
pkg install php5-gd
pkg install php5-hash
pkg install php5-iconv
pkg install php5-json
pkg install php5-mbstring
pkg install php5-pdo
pkg install php5-pdo_sqlite
pkg install php5-session
pkg install php5-simplexml
pkg install php5-sqlite3
pkg install php5-xml
pkg install php5-xmlrpc
pkg install php5-gettext
pkg install php5-mcrypt
pkg install php5-zip
pkg install php5-zlib
pkg install curl

[Этой ошибки уже нет, прячу под спойлер]8) В прошлый раз в curl вылезла ошибка, пришлось пересобирать
Проверяем, что сейчас всё ОК

curl -c '/tmp/cookies' 'http://ya.ru' > null && ls -l /tmp/cookies

если видим в конце строку типа
-rw-r--r-- 1 root wheel 196 Mar 15 16:04 /tmp/cookies
- поздравляю, получилось

Если строку
ls: /tmp/cookies: No such file or directory
- что-то не так и curl у вас без поддержки cookies. Идите по ссылке в чуть выше и собирайте с поддержкой.

Если тест выше удачный - ставим php5-curl

pkg install php5-curl

9) Редактируем конфиги
9.1) Открываем для редактирования /usr/local/etc/lighttpd/lighttpd.conf
Сделать это можно многими способами, например через nano
НЕ ИСПОЛЬЗУЙТЕ встроенный редактор nas4free  - он  портит конфиги

nano /usr/local/etc/lighttpd/lighttpd.conf

9.2) Редактируем lighttpd.conf (поиск по файлу - Ctrl W)
server.bind = "192.168.1.54"
server.use-ipv6 = "disable"

и та строка
$SERVER["socket"] == "192.168.1.54:8080" { }
перед которой стоит коммент
# IPv4 listening socket
она - в самом конце.

Прим. Не забываем в начале строки server.bind убрать знак комментария #

9.3) Редактируем /usr/local/etc/lighttpd/modules.conf, удаляя # из строки
#include "conf.d/fastcgi.conf"

9.4) Добавляем в конец файла /usr/local/etc/lighttpd/conf.d/fastcgi.conf следующее
fastcgi.server = ( ".php" =>
((
"socket" => "/tmp/php.socket",
"bin-path" => "/usr/local/bin/php-cgi",
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "16",
"PHP_FCGI_MAX_REQUESTS" => "10000"
),
"min-procs" => 1,
"max-procs" => 1,
"idle-timeout" => 20
))
)

9.5) В список файла (где угодно внутри скобок mimetype.assign = ( ) ) /usr/local/etc/lighttpd/conf.d/mime.conf добавляем
".svg" => "image/svg+xml",
".xht" => "application/xhtml+xml",
".xhtml" => "application/xhtml+xml",
".woff" => "application/x-font-woff",
".svgz" => "image/svg+xml",

10) Проверяем синтаксис lighttpd.conf
lighttpd -t -f /usr/local/etc/lighttpd/lighttpd.conf
Если всё хорошо - он напишет Syntax OK

11) Создаём наш тестовый сайт
11.1) Создаём папку и файл
mkdir -p /usr/local/www/data
echo "XXX" > /usr/local/www/data/index.php

Прим. Вместо XXX внутри кавычек  надо написать то, что на картинке ниже. (Движок ЖЖ не даёт писать php код напрямую, а тегов для инкапсуляции нет :(. )


11.2) Задаём владельца
chown -R www:www /usr/local/www/

12) Проверяем
12.1) Запускаем lighttpd
/usr/local/sbin/lighttpd -f /usr/local/etc/lighttpd/lighttpd.conf

12.2) Идём в браузере по адресу нашего джейла 192.168.1.54
Если всё нормально - видим



13) останавливем наш джейл кнопкой через TheBrig

Отправной точкой послужил этот пост

... продолжение

jail, руками, торрент, nas, nas4free

Previous post Next post
Up