View previous topic :: View next topic |
Author |
Message |
[clu] Apprentice
Joined: 23 Feb 2004 Posts: 160 Location: 127.0.0.1
|
Posted: Tue May 17, 2005 12:12 pm Post subject: chroot: cannot run command `/bin/sh': No such file or direct |
|
|
привет
всё делалось по доке http://butsugenjitemple.org/~ka0ttic/docs/apache_chroot/
после
# mkdir /chroot
# mkjailenv /chroot/apache
# addjailsw /chroot/apache
решил проверить -получилось али нет:
Code: |
caps linux # mkdir /chroot
caps linux # mkjailenv /chroot/apache
mkjailenv
A component of Jail (version 1.9 for linux)
http://www.gsyc.inf.uc3m.es/~assman/jail/
Juan M. Casillas <assman@gsyc.inf.uc3m.es>
Making chrooted environment into /chroot/apache
Doing preinstall()
Doing special_devices()
Doing gen_template_password()
Doing postinstall()
Done.
caps linux #
caps linux # addjailsw /chroot/apache/
addjailsw
A component of Jail (version 1.9 for linux)
http://www.gsyc.inf.uc3m.es/~assman/jail/
Juan M. Casillas <assman@gsyc.inf.uc3m.es>
Guessing mv args()
Guessing ls args()
Guessing ln args()
Guessing grep args()
Guessing cat args()
Guessing rmdir args()
Guessing vi args(-c q)
Guessing tail args()
Guessing sh args()
Guessing id args()
Guessing rm args()
Guessing head args()
Guessing cp args()
Guessing pwd args()
Guessing mkdir args()
Guessing touch args()
Guessing more args()
Warning: not allowed to overwrite /chroot/apache//etc/passwd
Warning: not allowed to overwrite /chroot/apache//etc/group
Warning: can't create /proc/meminfo from the /proc filesystem
Warning: file /chroot/apache//usr/share/vim/vimfiles/ exists. Overwritting it
Warning: file /chroot/apache//usr/share/vim/vimfiles/ exists. Overwritting it
Warning: file /chroot/apache//usr/share/vim/vim63/ exists. Overwritting it
/bin/mknod: `/chroot/apache//dev/urandom': File exists
Done.
caps linux # chroot /chroot/apache/ /bin/sh
chroot: cannot run command `/bin/sh': No such file or directory
|
что за лажа - подозреваю, не хватает млиб или файлов... |
|
Back to top |
|
|
bukazoid Tux's lil' helper
Joined: 21 Jan 2005 Posts: 86
|
Posted: Tue May 17, 2005 2:03 pm Post subject: Re: chroot: cannot run command `/bin/sh': No such file or di |
|
|
Quote: |
chroot /chroot/apache/ /bin/sh
|
вроде не влияет но,
там вроде написано
chroot /chroot/apache /bin/sh
_________________^
Quote: | что за лажа - подозреваю, не хватает млиб или файлов... |
ls -l /chroot/apache/bin/sh |
|
Back to top |
|
|
viy Veteran
Joined: 03 Jul 2004 Posts: 1580 Location: Riga, Latvia
|
Posted: Tue May 17, 2005 2:30 pm Post subject: |
|
|
Должен быть файлик /chroot/apache/bin/sh. Если в той же папке есть bash, то можно симлинк сделать.
Я так думаю... |
|
Back to top |
|
|
YD Guru
Joined: 30 Oct 2004 Posts: 466 Location: Riga, Latvia
|
Posted: Tue May 17, 2005 2:58 pm Post subject: |
|
|
Но это нахер не надо, mod_chroot делает свою работу добротно. Только запускать серв надо через apache2ctl самому или же сделать startup script. Для рестарта юзать stop -> start, иначе траблы будут. |
|
Back to top |
|
|
bukazoid Tux's lil' helper
Joined: 21 Jan 2005 Posts: 86
|
Posted: Wed May 18, 2005 6:23 am Post subject: |
|
|
YD wrote: | .....
mod_chroot делает свою работу добротно. ...
|
он загоняет в chroot весь апач или только запущенные в нём сервлеты ? |
|
Back to top |
|
|
[clu] Apprentice
Joined: 23 Feb 2004 Posts: 160 Location: 127.0.0.1
|
Posted: Wed May 18, 2005 6:40 am Post subject: |
|
|
viy wrote: | Должен быть файлик /chroot/apache/bin/sh. Если в той же папке есть bash, то можно симлинк сделать.
Я так думаю... |
ну конечно же он там лежит! помимо того, система его видит
caps ~ # chroot /chroot/apache/ /bin/sh
chroot: cannot run command `/bin/sh': No such file or directory
caps ~ # chroot /chroot/apache/ /bin/sh/
chroot: cannot run command `/bin/sh/': Not a directory
caps ~ # ls -l /chroot/apache/bin/sh
-rwxr-xr-x 1 root root 665380 May 17 15:09 /chroot/apache/bin/sh |
|
Back to top |
|
|
bukazoid Tux's lil' helper
Joined: 21 Jan 2005 Posts: 86
|
Posted: Wed May 18, 2005 7:03 am Post subject: |
|
|
Quote: |
...
caps ~ # chroot /chroot/apache/ /bin/sh/
...
|
такая строка много говорит о написавшем её ....
chroot /chroot/apache /bin/sh
-
проверить либы
ldd /bin/sh
покажет нужные либы
ищем их в /chroot/apache/lib
пример:
iam:# ldd /bin/sh
libdl.so.2 => /lib/libdl.so.2 (0x4001e000)
libc.so.6 => /lib/libc.so.6 (0x40022000)
/lib/ld-linux.so.2 (0x40000000)
==> должны быть
/chroot/apache/lib/libdl.so.2
/chroot/apache/lib/libc.so.6
/chroot/apache/lib/ld-linux.so.2
P.S. jail собирался без ошибок ? |
|
Back to top |
|
|
[clu] Apprentice
Joined: 23 Feb 2004 Posts: 160 Location: 127.0.0.1
|
Posted: Wed May 18, 2005 7:49 am Post subject: |
|
|
[quote="bukazoid"] Quote: |
...
caps ~ # chroot /chroot/apache/ /bin/sh/
...
|
такая строка много говорит о написавшем её ....
chroot /chroot/apache /bin/sh
дядя, если ты не понял - это было сделан для проверки - как ругнётся, и я выделил чернём статус- специально что бы понятно было что находит и говорит что это не директория :\ |
|
Back to top |
|
|
YD Guru
Joined: 30 Oct 2004 Posts: 466 Location: Riga, Latvia
|
Posted: Wed May 18, 2005 1:38 pm Post subject: |
|
|
Народ мало того, что вы сейчас заепётесь делать chroot environment. Мало того, что в вы не static скомпилили. Мало того, в chroot'e будет sh... Представьте теперь что вам придётся при каждом обновлении проделывать это ЗАНОГО и САМОМУ следить за версиями. Есть варианты.
1.
Code: | ROOT="/chroot/apache" emerge -Dpv apache |
2.
Поставьте mod_chroot, сразу столько гемора с плеч. Притом судя по поведению в chroot запирается апаче полностью Читайте доку, поймёте. + У вас в chroot'e не будет НИЧЕГО кроме самих сайтов (PHP и т.п. подобное собирайте как модуль), DB сокета и pid-файла.
з.ы. А вообще юзать апаче для chroot'a нелогично, ибо chroot апаче не брат, есть замечательный web-сервер lighttpd. |
|
Back to top |
|
|
bukazoid Tux's lil' helper
Joined: 21 Jan 2005 Posts: 86
|
Posted: Wed May 18, 2005 2:21 pm Post subject: |
|
|
YD wrote: |
Code: | ROOT="/chroot/apache" emerge -Dpv apache |
|
chroot для безопасности, ROOT= зделает так что поставится масса потенциально опасных програм
Last edited by bukazoid on Wed May 18, 2005 2:30 pm; edited 1 time in total |
|
Back to top |
|
|
YD Guru
Joined: 30 Oct 2004 Posts: 466 Location: Riga, Latvia
|
Posted: Wed May 18, 2005 2:30 pm Post subject: |
|
|
Да хоть сотня, через ROOT делается своя мини-Gentoo и она не зависит от материнской ОС. записи об установленных пакетах пишутся туда же в chroot. Надо тогда скрипт и рекурсивно обходить все подкаталоги chroot. У меня установлены все сервисы, которые нативно делают chroot, такие как djbdns (через daemontools), vsftpd и другие. Искуственно вешать BIND или там другие сервисы в chroot =/ Ну блин, каменный век. |
|
Back to top |
|
|
bukazoid Tux's lil' helper
Joined: 21 Jan 2005 Posts: 86
|
Posted: Wed May 18, 2005 2:31 pm Post subject: |
|
|
bukazoid wrote: | YD wrote: |
Code: | ROOT="/chroot/apache" emerge -Dpv apache |
|
нет не согласен
chroot для безопасности, ROOT= зделает так что поставится масса потенциально опасных програм |
__
edited |
|
Back to top |
|
|
YD Guru
Joined: 30 Oct 2004 Posts: 466 Location: Riga, Latvia
|
Posted: Wed May 18, 2005 2:32 pm Post subject: |
|
|
некрасиво делать edit и полностью менять пост =/
[edit]
Да и насчёт безопасности, я на это намекнул в том же посте, где написал ROOT=.. emerge .. |
|
Back to top |
|
|
bukazoid Tux's lil' helper
Joined: 21 Jan 2005 Posts: 86
|
Posted: Wed May 18, 2005 2:36 pm Post subject: |
|
|
YD wrote: | некрасиво делать edit и полностью менять пост =/
|
извеняй думал успею пока никто не прочитал .... |
|
Back to top |
|
|
bukazoid Tux's lil' helper
Joined: 21 Jan 2005 Posts: 86
|
Posted: Wed May 18, 2005 2:48 pm Post subject: |
|
|
chroot - the mod_chroot way
mod_chroot allows you to run Apache in a chroot jail with no additional files. The chroot() system call is performed at the end of startup procedure - when all libraries are loaded and log files open. There are still some things you have to keep in mind - see below.
не совсем понял, говорится что:
1 грузятся libs
2 открываются logs
3 делается chroot
4 запускается apache
?
add
P.S. вообще проблема была что chroot не работает .... |
|
Back to top |
|
|
YD Guru
Joined: 30 Oct 2004 Posts: 466 Location: Riga, Latvia
|
Posted: Wed May 18, 2005 5:05 pm Post subject: |
|
|
1. инициализация апаче и модулей
2. последним в списке LoadModule должен быть mod_chroot, подгружается mod_chroot.
3. вызывается системный вызов chroot и попадаем в "тюрьму"
4. Вот теперь apache слушает на сокете и принимает вызовы, запущенные child'ы тоже работают в chroot'e.
P.S. Добавлю от себя.
Для нескольких сайтов систему надо строить на VHost'ах. Для этого в главном конфиге пишем:
Quote: |
DocumentRoot / #(не охота гадить реальный / линками на chroot)
Listen 127.0.0.1:80 |
В конфиге vhost'ов
Quote: |
#network IP
NameVirtualHost a.b.c.d:80
#Obrazec VHOSTA
<VirtualHost a.b.c.d:80 _default_>
ServerName defaultvhost
DocumentRoot /defaultvhost
<Directory /defaultvhost>
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
|
При старте будут ворнинги, что у vhost'ов не существует DocumentRoot, но это понятно почему.
делаем
Code: | mkdir -p /chroot/apache/var/run && touch /chroot/apache/var/run/apache2.pid && ln -sfn /chroot/apache/var/run/apache2.pid /var/run/apache2.pid && apache2ctl start |
Писал по памяти, мог где-то ошибиться.
Note: /etc/init.d/apache2 на сколько помню глючит с таким конфигом & /var/run/apache2.pid линк может пропадать, желательно в скрипт записать принудительно делать перед apache2ctl. |
|
Back to top |
|
|
[clu] Apprentice
Joined: 23 Feb 2004 Posts: 160 Location: 127.0.0.1
|
Posted: Thu May 19, 2005 9:30 am Post subject: |
|
|
как бы пологичнее организвать
chroot для vsftpd,apache+php,mysql,bind ? я вижу ты дока в этом деле, было бы приятно получить инфу
получше своместить ? |
|
Back to top |
|
|
YD Guru
Joined: 30 Oct 2004 Posts: 466 Location: Riga, Latvia
|
Posted: Thu May 19, 2005 11:46 am Post subject: |
|
|
vsftpd - достаточно секьюрный, сам входит в chroot после того, как юзер залогинится.
apache+mod_php - уже говорил mod_chroot (есть mod_security, но я решил что он пока не требуется мне).
mysql - есть конечно вариант, что кто-то может получить достаточный доступ к публичному сервису, чтобы ломать mysql с него. Но в принципе PAX + grsec делают своё дело и mysql можно оставить как есть, главное чтоб PHP мог приконнектиться к сокету.
bind - не произноси даже это слово djbdns ОЧЕНЬ прост в настройке. По дефолту сделан для работы в chroot'e (его туда daemontools загоняют). |
|
Back to top |
|
|
[clu] Apprentice
Joined: 23 Feb 2004 Posts: 160 Location: 127.0.0.1
|
Posted: Thu May 19, 2005 1:18 pm Post subject: |
|
|
ls /var/run/ -l
lrwxrwxrwx 1 root root 34 May 19 16:03 apache2.pid -> /chroot/apache/var/run/apache2.pid
caps run # apache2ctl start
(20014)Error string not specified yet: Error retrieving pid file /var/run/apache2.pid |
|
Back to top |
|
|
YD Guru
Joined: 30 Oct 2004 Posts: 466 Location: Riga, Latvia
|
Posted: Thu May 19, 2005 2:43 pm Post subject: |
|
|
Извиняюсь, я ступил. Мне просто вспомнился мануал по mod_chroot. Тогда давно тоже наткнулся на эту траблу.
Code: | rm /chroot/apache/var/run/apache2.pid && apache2ctl -k start |
NOTE: symlink в /var/run должен остаться, хотя он будет ссылатся на несуществующий файл. |
|
Back to top |
|
|
[clu] Apprentice
Joined: 23 Feb 2004 Posts: 160 Location: 127.0.0.1
|
Posted: Thu May 19, 2005 2:51 pm Post subject: |
|
|
UPDATE: я опечатлся с симлинком )
Code: |
caps run # ls -l /var/run/
total 24
lrwxrwxrwx 1 root root 28 May 20 10:10 apache2.pid -> /var/www/var/run/apache2.pid
|
я сделал так:
mkdir -p /var/www/var/run
ln -sf /var/www/var/run/apache.pid /var/run/apache.pid
в конфиге httpd.conf подравил всё что было /var/www/localhost/htdocs/ на /localhost/htdocs
в vhosts.conf всё что было /var/www/vhostX.com на /vhostX.com (соответсвенно
/var/www/vhost1.com/htdocs => /vhost1.com/htdocs
/var/www/vhost1.com/cgi-bin/ => //vhost1.com/cgi-bin)
тепрь не работает пхп
модуль подгружает а в ответ пустоту - будем колупать
Apache/2.0.54 (Gentoo/Linux) mod_ssl/2.0.54 OpenSSL/0.9.7e Hardened-PHP/4.3.11 mod_chroot/0.4 Server at 10.10.0.1 Port 80
Last edited by [clu] on Fri May 20, 2005 7:13 am; edited 2 times in total |
|
Back to top |
|
|
YD Guru
Joined: 30 Oct 2004 Posts: 466 Location: Riga, Latvia
|
Posted: Thu May 19, 2005 4:50 pm Post subject: |
|
|
ёпрст ты всё наоборот сделал :> |
|
Back to top |
|
|
[clu] Apprentice
Joined: 23 Feb 2004 Posts: 160 Location: 127.0.0.1
|
Posted: Fri May 20, 2005 7:09 am Post subject: |
|
|
YD wrote: | ёпрст ты всё наоборот сделал :> |
бл.... да как это ? %\
вроде всё по логие и правильно. напиши плз что не так ^_^ |
|
Back to top |
|
|
YD Guru
Joined: 30 Oct 2004 Posts: 466 Location: Riga, Latvia
|
Posted: Fri May 20, 2005 9:04 am Post subject: |
|
|
Quote: | Last edited by [clu] on Fri May 20, 2005 2:13 am; edited 2 times in total | %)
Сейчас норм? Помнится у меня были небольшие траблы с PHP, но уже не помню в чём у меня загвоздка была. |
|
Back to top |
|
|
[clu] Apprentice
Joined: 23 Feb 2004 Posts: 160 Location: 127.0.0.1
|
Posted: Fri May 20, 2005 9:50 am Post subject: |
|
|
нет
запускает и фунциклиурет с вхостами нормально, но ни пхп ни перл не выполняет.
перл - понятно ( как боротся ещё нет) почему. а вот пхп - темная лошадка - даже в access_log Не пишет обращения. |
|
Back to top |
|
|
|