Jail и сокеты.

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
ike
проходил мимо
Сообщения: 5
Зарегистрирован: 2009-08-20 17:22:46
Откуда: Брест, Беларусь
Контактная информация:

Jail и сокеты.

Непрочитанное сообщение ike » 2009-12-17 16:51:06

Есть машина с установленной FreeBSD 7.2

Код: Выделить всё

ant# uname -a
FreeBSD ant.xxx.xx 7.2-RELEASE-p5 FreeBSD 7.2-RELEASE-p5 #0: Sat Dec 12 19:03:40 EET 2009     ike@ant.xxx.xx:/usr/obj/usr/src/sys/MyKRNL00  amd64
На ней висят две клетки (пока две, предполагается больше) web и sql. Думаю их предназначение очевидно. На web висит apache, на sql MySQL

Код: Выделить всё

web# pkg_info | egrep "apache|mysql"
apache-2.2.14_5     Version 2.2.x of Apache web server with prefork MPM.
mysql-client-5.0.88 Multithreaded SQL database (client)
php5-mysql-5.2.11_1 The mysql shared extension for php
php5-mysqli-5.2.11_1 The mysqli shared extension for php

Код: Выделить всё

sql# pkg_info | grep mysql
mysql-client-5.1.41 Multithreaded SQL database (client)
mysql-scripts-5.1.41 Multithreaded SQL database (scripts)
mysql-server-5.1.41 Multithreaded SQL database (server)
p5-DBD-mysql51-4.012 MySQL 5.1 driver for the Perl5 Database Interface (DBI)
Хочу заставить их дружить через сокет (MySQL сеть не слушает). Сокет находится /tmp/mysql/mysql.sock, он примонтирован к web.

Код: Выделить всё

ant# mount
/dev/da0s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/da0s1e on /tmp (ufs, local, soft-updates)
/dev/da0s1f on /usr (ufs, local, soft-updates)
/dev/da0s1d on /var (ufs, local, soft-updates)
devfs on /usr/jails/web/dev (devfs, local)
devfs on /usr/jails/sql/dev (devfs, local)
/usr/jails/sql/tmp/mysql on /usr/jails/web/tmp/mysql (nullfs, local)
Проблема в следующем

Код: Выделить всё

sql# mysql -u test
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.1.41-log FreeBSD port: mysql-server-5.1.41

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Код: Выделить всё

web# mysql -u test
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql/mysql.sock' (61)
Понимаю, что я анонимный извращенец, и проблема в моём непонимании работы сокетов (знаю что они есть, догадываюсь для чего они нужны и всё) и абсурдности идеи их монтирования. Но к сожалению мне не с кем проконсультироваться, гугл ничего вменяемого тоже не подсказал. Вот. Благодарю за любые ответы.
P.S. Я считаю различные версии клентов не при чём, ветка-то одна. Да, и ещё, доступ к сокетам клеткам открыт (но те ли сокеты... пинг работает)

Код: Выделить всё

ant# sysctl -a | grep jail
security.jail.jailed: 0
security.jail.jail_max_af_ips: 255
security.jail.mount_allowed: 0
security.jail.chflags_allowed: 0
security.jail.allow_raw_sockets: 1
security.jail.enforce_statfs: 2
security.jail.sysvipc_allowed: 0
security.jail.socket_unixiproute_only: 1
security.jail.set_hostname_allowed: 1

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
ike
проходил мимо
Сообщения: 5
Зарегистрирован: 2009-08-20 17:22:46
Откуда: Брест, Беларусь
Контактная информация:

Re: Jail и сокеты.

Непрочитанное сообщение ike » 2009-12-17 20:14:23

Продолжаю ковыряние...
Установка MySQL клиента на родительскую систему показала что тут всё хорошо.

Код: Выделить всё

ant# mysql -u test
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.1.41-log FreeBSD port: mysql-server-5.1.41

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Обновил клиет не web до последней версии - не помогло (что есть не удивительно).
Заметил следующее

Код: Выделить всё

web# netstat -f unix
netstat: kvm not available: /dev/mem: No such file or directory
Active UNIX domain sockets
Address  Type   Recv-Q Send-Q    Inode     Conn     Refs  Nextref Addr
ffffff005ceffba0 stream      0      0        0 ffffff0003f378b8        0        0
ffffff0003f378b8 stream      0      0        0 ffffff005ceffba0        0        0
ffffff005ceff3e0 dgram       0      0        0 ffffff00038d23e0        0 ffffff005ceff9b0
ffffff005ceff9b0 dgram       0      0        0 ffffff00038d23e0        0 ffffff00038646c8
ffffff00038646c8 dgram       0      0        0 ffffff00038d23e0        0 ffffff0003864ba0
ffffff0003864ba0 dgram       0      0        0 ffffff00038d23e0        0 ffffff0003864000
ffffff0003864000 dgram       0      0        0 ffffff00038d23e0        0        0
ffffff00038d23e0 dgram       0      0 ffffff0003cf83f0        0 ffffff005ceff3e0        0 /var/run/logpriv
ffffff0003bfb0f8 dgram       0      0 ffffff0003dcbbd0        0        0        0 /var/run/log

Код: Выделить всё

sql# netstat -f unix
netstat: kvm not available: /dev/mem: No such file or directory
Active UNIX domain sockets
Address  Type   Recv-Q Send-Q    Inode     Conn     Refs  Nextref Addr
ffffff005ceff7c0 stream      0      0        0 ffffff005cf642e8        0        0
ffffff005cf642e8 stream      0      0        0 ffffff005ceff7c0        0        0
ffffff00038d22e8 stream      0      0 ffffff0003e433f0        0        0        0 /tmp/mysql/mysql.sock
ffffff005ceffaa8 dgram       0      0        0 ffffff00038640f8        0 ffffff005ceff5d0
ffffff005ceff5d0 dgram       0      0        0 ffffff00038640f8        0 ffffff00038d27c0
ffffff00038d27c0 dgram       0      0        0 ffffff00038640f8        0 ffffff00038d25d0
ffffff00038d25d0 dgram       0      0        0 ffffff00038640f8        0 ffffff0003864c98
ffffff0003864c98 dgram       0      0        0 ffffff00038640f8        0        0
ffffff00038640f8 dgram       0      0 ffffff005cd503f0        0 ffffff005ceffaa8        0 /var/run/logpriv
ffffff0003bfb000 dgram       0      0 ffffff005cd505e8        0        0        0 /var/run/log
Ну и на последок на родительской системе

Код: Выделить всё

ant# netstat -f unix
Active UNIX domain sockets
Address  Type   Recv-Q Send-Q    Inode     Conn     Refs  Nextref Addr
ffffff005ceffba0 stream      0      0        0 ffffff0003f378b8        0        0
ffffff0003f378b8 stream      0      0        0 ffffff005ceffba0        0        0
ffffff005ceff2e8 stream      0      0        0 ffffff005ceffc98        0        0
ffffff005ceffc98 stream      0      0        0 ffffff005ceff2e8        0        0
ffffff005ceff7c0 stream      0      0        0 ffffff005cf642e8        0        0
ffffff005cf642e8 stream      0      0        0 ffffff005ceff7c0        0        0
ffffff00038d22e8 stream      0      0 ffffff0003e433f0        0        0        0 /tmp/mysql/mysql.sock
ffffff00038648b8 stream      0      0 ffffff00039609d8        0        0        0 /var/run/devd.pipe
ffffff005cf645d0 dgram       0      0        0 ffffff00038d2c98        0        0
ffffff005ceffaa8 dgram       0      0        0 ffffff00038640f8        0 ffffff005ceff5d0
ffffff005ceff3e0 dgram       0      0        0 ffffff00038d23e0        0 ffffff005ceff9b0
ffffff005ceff9b0 dgram       0      0        0 ffffff00038d23e0        0 ffffff00038646c8
ffffff002632ac98 dgram       0      0        0 ffffff00038d2ba0        0 ffffff005cf54000
ffffff005cf54000 dgram       0      0        0 ffffff00038d2ba0        0 ffffff00038643e0
ffffff005ceff5d0 dgram       0      0        0 ffffff00038640f8        0 ffffff00038d27c0
ffffff00038d27c0 dgram       0      0        0 ffffff00038640f8        0 ffffff00038d25d0
ffffff00038d25d0 dgram       0      0        0 ffffff00038640f8        0 ffffff0003864c98
ffffff0003864c98 dgram       0      0        0 ffffff00038640f8        0        0
ffffff00038640f8 dgram       0      0 ffffff005cd503f0        0 ffffff005ceffaa8        0 /var/run/logpriv
ffffff0003bfb000 dgram       0      0 ffffff005cd505e8        0        0        0 /var/run/log
ffffff00038646c8 dgram       0      0        0 ffffff00038d23e0        0 ffffff0003864ba0
ffffff0003864ba0 dgram       0      0        0 ffffff00038d23e0        0 ffffff0003864000
ffffff0003864000 dgram       0      0        0 ffffff00038d23e0        0        0
ffffff00038d23e0 dgram       0      0 ffffff0003cf83f0        0 ffffff005ceff3e0        0 /var/run/logpriv
ffffff0003bfb0f8 dgram       0      0 ffffff0003dcbbd0        0        0        0 /var/run/log
ffffff00038643e0 dgram       0      0        0 ffffff00038d2ba0        0 ffffff00038d26c8
ffffff00038d26c8 dgram       0      0        0 ffffff00038d2ba0        0 ffffff00038d28b8
ffffff00038d28b8 dgram       0      0        0 ffffff00038d2ba0        0        0
ffffff00038d2ba0 dgram       0      0 ffffff0003c077e0        0 ffffff002632ac98        0 /var/run/logpriv
ffffff00038d2c98 dgram       0      0 ffffff0003c079d8        0 ffffff005cf645d0        0 /var/run/log
Процессы вне клетки полностью изолированы (для чего собственно и нужны клетки). Возможно кто-нибудь знает способ реализации моей задумки (монтировать /usr/ports ведь получается...). Как "примонтировать" сокет. :st:

Аватара пользователя
ike
проходил мимо
Сообщения: 5
Зарегистрирован: 2009-08-20 17:22:46
Откуда: Брест, Беларусь
Контактная информация:

Re: Jail и сокеты.

Непрочитанное сообщение ike » 2009-12-17 21:21:42

http://www.lissyara.su/articles/freebsd/tuning/jail/
Спасибо lissyara за статью, maslivets за комент, ну и гуглу за то, что дал возможность благодарить предыдущих людей :smile:
Думаю тему можно считать закрытой.