URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 93339
[ Назад ]

Исходное сообщение
"/dev/log в jail"

Отправлено afelino , 07-Май-12 12:19 
На машине установлена  FreeBSD 9, вне jailов стоит syslogd, в разных jail крутится named, tomcat, mysql. Хочу сделать так, чтобы named из jail писал в syslog вне jail. Но пока не получается.

Рут jail c named стоит в /usr/jails/named. Соответственно syslogd открывает дополнительный сокет в /usr/jails/named/var/run/log. Но в лог ничего не падает. Команда logger в jail работает, но с нее тоже ничего в лог не падает (вне jail logger работает нормально), и ошибок никаких не падает.

Полазил в интернете, это навело меня на мысль, что в jail должен быть свой /dev/log. Но его создать не получается.

>ls -fs /var/run/log /usr/jails/named/dev/log

ln: /usr/jails/named/dev/log: File Exists

>rm /usr/jails/named/dev/log

rm: /usr/jails/named/dev/log: No such file or directory

>devfs -m /usr/jails/named/dev/ rule add path log unhide
>ls /usr/jails/named/dev/

fd null random stderr stdin stdout urandom zero

Что не так делаю? Что почитать?


Содержание

Сообщения в этом обсуждении
"/dev/log в jail"
Отправлено wiseman , 07-Май-12 18:22 

> Полазил в интернете, это навело меня на мысль, что в jail должен
> быть свой /dev/log. Но его создать не получается.

Все верно, только создаете неправильно.
Надо смонтировать devfs внутри ждайла



"/dev/log в jail"
Отправлено afelino , 07-Май-12 19:08 
>> Полазил в интернете, это навело меня на мысль, что в jail должен
>> быть свой /dev/log. Но его создать не получается.
> Все верно, только создаете неправильно.
> Надо смонтировать devfs внутри ждайла

/usr/jails/named/dev/ - это внутри джейла. Я монтирую его штатными средствами, скриптом /etc/rc.d/jail

Изнутри же Джейла линк создавать не получается, там таких прав нет, чтобы /dev модифицировать.


"/dev/log в jail"
Отправлено lavr , 09-Май-12 13:44 
>[оверквотинг удален]
> Полазил в интернете, это навело меня на мысль, что в jail должен
> быть свой /dev/log. Но его создать не получается.
>>ls -fs /var/run/log /usr/jails/named/dev/log
> ln: /usr/jails/named/dev/log: File Exists
>>rm /usr/jails/named/dev/log
> rm: /usr/jails/named/dev/log: No such file or directory
>>devfs -m /usr/jails/named/dev/ rule add path log unhide
>>ls /usr/jails/named/dev/
> fd null random stderr stdin stdout urandom zero
> Что не так делаю? Что почитать?

читать:

# man jail
# man syslogd

1) если у вас обычный jail без vnet, то вы используете интерфейсы хоста
2) обычно на host машине syslogd запускается с опцией -ss
-s - не логгировать с удаленных машин
-ss - не логгировать с удаленных + без сетевых сокетов
3) в jail машинах исходя из верхнего, разумеется без syslogd

4) /dev будет монтироваться внутрь jail/dev если задано в настройках jail-машины:

# grep jail /etc/defaults/rc.conf:

#jail_example_devfs_enable="NO"                 # mount devfs in the jail
#jail_example_devfs_ruleset="ruleset_name"      # devfs ruleset to apply to jail -
                                                # usually you want "devfsrules_jail".

перевод и комментарий, надеюсь не нужен - выше, это devfs для системы,
теперь вспоминаем про запуск bind9(named) во FreeBSD:

5) запуск системного named в FreeBSD:

# grep named /etc/defaults/rc.conf (нас интересуют только нижние)
...
named_uid="bind"                # User to run named as
named_chrootdir="/var/named"    # Chroot directory (or "" not to auto-chroot it)
...

если у нас переменная named_chrootdir не пуста, то named будет стартовать в chroot
окружении, для которого необходимо ЕЩЕ создание devfs со специальным набором ruleset'ов

Теперь поразмышляем, у нас для запуска bind(named) уже есть jail-машина, зачем городить
огород и ВНУТРИ jail'а запускать named в окружении chroot?!
Достаточно сделать named_chrootdir="" пустой и named будет стартовать обычным
образом внутри jail, но если вы хотите ВНУТРИ jail, запускать named в CHROOT, то вам
необходимо в host-машине реализовать дополнительно mount_devfs с набором правил(ruleset)
для:

/jails/jail_name_root/var/named/dev

где /jails - месторазмещения jail-vm
/jails/jail_name_root - имя jail-машины где она находится

# man jail
# man 8 devfs

По jail + named - все.

Теперь вернемся к syslogd:

- варианты: биндить в host'е syslogd на конкретный ip и смотреть возможно ли
при этом работать с syslogd в jail'ах?
- запускать syslogd с опцией -l для работы через unix-socket'ы : man syslogd

Варианты которые рещат все ваши проблемы традиционными способами:
1) jail + vnet (vimage kernel)
2) headless virtualbox для виртуальных машин

Вроде бы все


"/dev/log в jail"
Отправлено afelino , 17-Май-12 17:58 
Такой большой пост. А где ответ на мой вопрос.
У меня jail работает, сислог тоже, даже с опцией, только в него не пишется ничего из jail.



"/dev/log в jail"
Отправлено lavr , 17-Май-12 19:49 
> Такой большой пост. А где ответ на мой вопрос.
> У меня jail работает, сислог тоже, даже с опцией, только в него
> не пишется ничего из jail.

перечитывайте снова до наступления просветления


"/dev/log в jail"
Отправлено afelino , 17-Май-12 21:11 
>> Такой большой пост. А где ответ на мой вопрос.
>> У меня jail работает, сислог тоже, даже с опцией, только в него
>> не пишется ничего из jail.
> перечитывайте снова до наступления просветления

Ладно, а что я не сделал по-твоему из того, что ты написал?

Ты сам делал хоть раз такую схему, как я описал? Или теоретически отвечаешь?


"/dev/log в jail"
Отправлено lavr , 17-Май-12 22:06 
>>> Такой большой пост. А где ответ на мой вопрос.
>>> У меня jail работает, сислог тоже, даже с опцией, только в него
>>> не пишется ничего из jail.
>> перечитывайте снова до наступления просветления
> Ладно, а что я не сделал по-твоему из того, что ты написал?

мы знакомы или пили на брудершафт?

вы все поняли о чем было написано?
какой документацией вы пользовались для установки и настройки jail?

> Ты сам делал хоть раз такую схему, как я описал? Или теоретически
> отвечаешь?

если бы перечитали, поняли бы.


"/dev/log в jail"
Отправлено afelino , 18-Май-12 10:07 
>>>> Такой большой пост. А где ответ на мой вопрос.
>>>> У меня jail работает, сислог тоже, даже с опцией, только в него
>>>> не пишется ничего из jail.
>>> перечитывайте снова до наступления просветления
>> Ладно, а что я не сделал по-твоему из того, что ты написал?
> мы знакомы или пили на брудершафт?
> вы все поняли о чем было написано?
> какой документацией вы пользовались для установки и настройки jail?

Маны я читать умею, и комменты к конфиг файлам тоже.

>> Ты сам делал хоть раз такую схему, как я описал? Или теоретически
>> отвечаешь?
> если бы перечитали, поняли бы.

Опять, я задаю 2 вопроса, и не получаю на них ответ. А понтов-то сколько. Если не разу не далал, так и скажи, что чисто теоретически отвечаешь.


"/dev/log в jail"
Отправлено lavr , 18-Май-12 10:42 
>[оверквотинг удален]
>> мы знакомы или пили на брудершафт?
>> вы все поняли о чем было написано?
>> какой документацией вы пользовались для установки и настройки jail?
> Маны я читать умею, и комменты к конфиг файлам тоже.
>>> Ты сам делал хоть раз такую схему, как я описал? Или теоретически
>>> отвечаешь?
>> если бы перечитали, поняли бы.
> Опять, я задаю 2 вопроса, и не получаю на них ответ. А
> понтов-то сколько. Если не разу не далал, так и скажи, что
> чисто теоретически отвечаешь.

вы выступаете как воинствующий незнайка, понты оставьте себе и читайте до просветления,
вам даны ЧЕТКИЕ наводки, как по named в jail, так и по syslog:

named в jail:
- либо без chroot
- если с chroot - дополнительные ruleset для mount /dev в /var/named/dev унутри jail

syslogd:

- в host машине syslogd с опцией -l на unix-socket в jail машинах

вариант отличный от традиционного jail: jail + vnet (vimage ядро)
вариант: headless virtualbox

когда поймете что традиционный jail не имеет собственного tcp/ip стека и не работает
с raw socket, все заработает


"/dev/log в jail"
Отправлено lavr , 18-Май-12 11:08 
> вам даны ЧЕТКИЕ наводки, как по named в jail, так и по
> syslog:
> named в jail:
> - если с chroot - дополнительные ruleset для mount /dev в /var/named/dev
> унутри jail

во внутрь, те дополнительный mount_nullfs на хосте в jailvm:/var/named/dev
с дополнительными ruleset'ами, а то ведь не поймете...


"/dev/log в jail"
Отправлено afelino , 18-Май-12 13:25 
> вам даны ЧЕТКИЕ наводки, как по named в jail, так и по
> syslog:
> named в jail:
> - либо без chroot
> - если с chroot - дополнительные ruleset для mount /dev в /var/named/dev
> унутри jail

Я в своем посте пишу, что использую logger, чтобы в лог писать из тюрьмы, поэтому чрут тут не при чем. Ну и чрут я там не использую.

> syslogd:
> - в host машине syslogd с опцией -l на unix-socket в jail
> машинах

О том, что syslogd открывает дополнительный сокет, я тоже писал.

> вариант отличный от традиционного jail: jail + vnet (vimage ядро)
> вариант: headless virtualbox

Виртуалбокс - это совсем не то, что нужно. про vimage я ничего не слышал, как это может помочь с моими логами.

> когда поймете что традиционный jail не имеет собственного tcp/ip стека и не
> работает
> с raw socket, все заработает

Это-то тут причем? Я с UNIX сокетами пытаюсь работать. И судя по тому, что я в интернете нахожу, схема в принципе такая может быть.


"/dev/log в jail"
Отправлено LSTemp , 20-Май-12 09:28 
>[оверквотинг удален]
>> вариант отличный от традиционного jail: jail + vnet (vimage ядро)
>> вариант: headless virtualbox
> Виртуалбокс - это совсем не то, что нужно. про vimage я ничего
> не слышал, как это может помочь с моими логами.
>> когда поймете что традиционный jail не имеет собственного tcp/ip стека и не
>> работает
>> с raw socket, все заработает
> Это-то тут причем? Я с UNIX сокетами пытаюсь работать. И судя по
> тому, что я в интернете нахожу, схема в принципе такая может
> быть.

Клинический случай....
1) Надо в "тюрьме" создать устройство, куда софт логи писать будет
2) Надо сислогу (который не в "тюрьме") сказать откуда эту писанину читать (да - как ни странно - именно с того устройства в "тюрьме". забавно - правда? и совсем не сложно)
3) http://natribu.org/


"/dev/log в jail"
Отправлено afelino , 22-Май-12 22:29 
> Клинический случай....

Да уж действительно!

> 1) Надо в "тюрьме" создать устройство, куда софт логи писать будет

Мы всё ближе и ближе подходим к вопросу, который я задавал в самом первом письме. Вот я там как раз написал, что надо, и спросил, как же это сделать.

> 2) Надо сислогу (который не в "тюрьме") сказать откуда эту писанину читать
> (да - как ни странно - именно с того устройства в
> "тюрьме". забавно - правда? и совсем не сложно)

Было бы несложно, я бы не писал. Может еще подскажешь как? Только сначало перечитай мой первый пост, чтобы узнать, что я уже попробовал.



"/dev/log в jail"
Отправлено Vorona , 02-Июн-12 01:35 
>[оверквотинг удален]
> Да уж действительно!
>> 1) Надо в "тюрьме" создать устройство, куда софт логи писать будет
> Мы всё ближе и ближе подходим к вопросу, который я задавал в
> самом первом письме. Вот я там как раз написал, что надо,
> и спросил, как же это сделать.
>> 2) Надо сислогу (который не в "тюрьме") сказать откуда эту писанину читать
>> (да - как ни странно - именно с того устройства в
>> "тюрьме". забавно - правда? и совсем не сложно)
> Было бы несложно, я бы не писал. Может еще подскажешь как? Только
> сначало перечитай мой первый пост, чтобы узнать, что я уже попробовал.

В конфиге сислога создай еще один src - в пути укажи путь до устройства log песочницы (которое ты хочешь создать). Перезапускаешь сислог и удивляешься магии - он появляется сам! =)

P.S. Можешь даже прописать еще один путь в уже имеющемся src


"/dev/log в jail"
Отправлено afelino , 05-Июн-12 16:09 

> В конфиге сислога создай еще один src - в пути укажи путь
> до устройства log песочницы (которое ты хочешь создать). Перезапускаешь сислог и
> удивляешься магии - он появляется сам! =)

Вот весь интернет в таких советах, а syslog на самом деле не может создать сокет в /dev/log. Потому что в /dev вообще нельзя произвольные файлы создавать. Или я что-то не так делаю?

Чуть попозже попробую, чтобы написать сюда, что syslog пишет мне.

> P.S. Можешь даже прописать еще один путь в уже имеющемся src


"/dev/log в jail"
Отправлено Vorona , 05-Июн-12 16:14 
>> В конфиге сислога создай еще один src - в пути укажи путь
>> до устройства log песочницы (которое ты хочешь создать). Перезапускаешь сислог и
>> удивляешься магии - он появляется сам! =)
> Вот весь интернет в таких советах, а syslog на самом деле не
> может создать сокет в /dev/log. Потому что в /dev вообще нельзя
> произвольные файлы создавать. Или я что-то не так делаю?
> Чуть попозже попробую, чтобы написать сюда, что syslog пишет мне.
>> P.S. Можешь даже прописать еще один путь в уже имеющемся src

Конфиг сислога и то, что тебе сислог пишет в студию!


"/dev/log в jail"
Отправлено afelino , 05-Июн-12 16:45 
> Конфиг сислога и то, что тебе сислог пишет в студию!

Облазил все логи, проверил консоль. Нигде ничего не пишет, но и сокет не создает.


"/dev/log в jail"
Отправлено afelino , 05-Июн-12 16:36 
>> В конфиге сислога создай еще один src - в пути укажи путь
>> до устройства log песочницы (которое ты хочешь создать). Перезапускаешь сислог и
>> удивляешься магии - он появляется сам! =)
> Вот весь интернет в таких советах, а syslog на самом деле не
> может создать сокет в /dev/log. Потому что в /dev вообще нельзя
> произвольные файлы создавать. Или я что-то не так делаю?
> Чуть попозже попробую, чтобы написать сюда, что syslog пишет мне.
>> P.S. Можешь даже прописать еще один путь в уже имеющемся src

Вне jaila в rc.conf прописано:
syslogd_flags="-C -ss -l /usr/jails/named/dev/log -l /var/jails/named/run/log ..."
Второй сокет создается без проблем. А вот первый не создается. :(


"/dev/log в jail"
Отправлено Vorona , 05-Июн-12 16:54 
>[оверквотинг удален]
>>> до устройства log песочницы (которое ты хочешь создать). Перезапускаешь сислог и
>>> удивляешься магии - он появляется сам! =)
>> Вот весь интернет в таких советах, а syslog на самом деле не
>> может создать сокет в /dev/log. Потому что в /dev вообще нельзя
>> произвольные файлы создавать. Или я что-то не так делаю?
>> Чуть попозже попробую, чтобы написать сюда, что syslog пишет мне.
>>> P.S. Можешь даже прописать еще один путь в уже имеющемся src
> Вне jaila в rc.conf прописано:
> syslogd_flags="-C -ss -l /usr/jails/named/dev/log -l /var/jails/named/run/log ..."
> Второй сокет создается без проблем. А вот первый не создается. :(

О, до меня дошло: Речь идёт о фре =)
Короче, можно и на фрю поставить syslog-ng из портов - а он-то как раз попадает под мой совет выше