chroot во FreeBSD

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
schmel
рядовой
Сообщения: 46
Зарегистрирован: 2010-02-28 22:28:09

chroot во FreeBSD

Непрочитанное сообщение schmel » 2013-04-23 16:37:31

Есть хостинг Apache-mpm+nginx+Mysql+php на FreeBSD 9.1. Мне необходим chroot для виртуальных хостов, что бы пускать пользователей через ssh и полностью отказаться от ftp. Возможно ли как нибудь настроить пользователя, чтобы он не поднимался выше своей домашней директории? Сейчас если пользователю виртуального хоста апача vu2001 (к примеру) дать доступ по ssh, то он сможет просматривать список каталогов, выше своей директории, хотя и не сможет прочитать другие файлы, просто видит папки.
Последний раз редактировалось f_andrey 2013-04-23 19:40:33, всего редактировалось 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/

ChihPih
ст. прапорщик
Сообщения: 568
Зарегистрирован: 2009-09-04 12:23:30
Откуда: Где-то в России...
Контактная информация:

Re: chroot во FreeBSD

Непрочитанное сообщение ChihPih » 2013-04-23 18:34:26

Тогда придется для каждого пользователя делать свое окружение (иерархия папок + системные тулзы в них). Оно вам надо?
www.info-x.org - информационный ресурс о ОС FreeBSD.

Аватара пользователя
schmel
рядовой
Сообщения: 46
Зарегистрирован: 2010-02-28 22:28:09

Re: chroot во FreeBSD

Непрочитанное сообщение schmel » 2013-04-23 21:19:19

Надо. Нашел статейку про chroot через ssh. http://www.lissyara.su/articles/freebsd ... tp+chroot/
Вот только как это сделать для моего случая? Если апач создает каждый раз пользователей и группу с одним названием. Например vu2003:vu2003

ChihPih
ст. прапорщик
Сообщения: 568
Зарегистрирован: 2009-09-04 12:23:30
Откуда: Где-то в России...
Контактная информация:

Re: chroot во FreeBSD

Непрочитанное сообщение ChihPih » 2013-04-23 21:28:44

Апач создает или вы? Настройте так, чтоб по шаблоны создавало или еще как?
www.info-x.org - информационный ресурс о ОС FreeBSD.

Аватара пользователя
schmel
рядовой
Сообщения: 46
Зарегистрирован: 2010-02-28 22:28:09

Re: chroot во FreeBSD

Непрочитанное сообщение schmel » 2013-04-23 22:34:35

Апач создает по шаблону используемой панели ispcp omega.

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

APACHE_SUEXEC_USER_PREF = vu
APACHE_SUEXEC_MIN_GID = 2000
APACHE_SUEXEC_MAX_GID = 29999
APACHE_SUEXEC_MIN_UID = 2000
APACHE_SUEXEC_MAX_UID = 29999
APACHE_USER = www
APACHE_GROUP = www
Для начала хотелось бы сделать алгоритм действий хотя бы при ручном добавлении пользователей, вида vu200x:vu200x, потом буду искать как внедрить это в шаблоны.
Как можно задать

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

ChrootDirectory
для папок вида /usr/local/www/data/virtual/example.org (если example.org принадлежит vu2002:vu2002)?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35466
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: chroot во FreeBSD

Непрочитанное сообщение Alex Keda » 2013-04-24 0:01:40

однако, я непонимаю - зачем chroot?
права на хомяки раздать и всё.
и пусть шарятся где хотят...
вот вам ссылочка: http://www.host-food.ru/
возьмите пробник, попросите ssh в тикетнице - его нет на пробнике по дефолту
пошарьтесь, посмотрите...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: chroot во FreeBSD

Непрочитанное сообщение manefesto » 2013-04-24 8:59:15

suexec + fcgid в лапки
я такой яростный шо аж пиздеЦ
Изображение

Аватара пользователя
schmel
рядовой
Сообщения: 46
Зарегистрирован: 2010-02-28 22:28:09

Re: chroot во FreeBSD

Непрочитанное сообщение schmel » 2013-04-24 15:21:04

manefesto писал(а):suexec + fcgid в лапки
Уже и так использую suexec + FastCGI (fcgid панелью под фряху не рекомендуется).
однако, я непонимаю - зачем chroot?
права на хомяки раздать и всё.
и пусть шарятся где хотят...
С правами все впорядке, просто не хочу, чтобы юзер выходил за пределы своей виртуальной директории. Зачем ему видеть какие еще сайты хостятся рядом. Ну и полностью хочу перевести всех на sftp, дать возможность использовать tar, unzip и прочее.

ChihPih
ст. прапорщик
Сообщения: 568
Зарегистрирован: 2009-09-04 12:23:30
Откуда: Где-то в России...
Контактная информация:

Re: chroot во FreeBSD

Непрочитанное сообщение ChihPih » 2013-04-24 18:12:17

С правами все впорядке, просто не хочу, чтобы юзер выходил за пределы своей виртуальной директории. Зачем ему видеть какие еще сайты хостятся рядом.
Все это правами решается.
Ну и полностью хочу перевести всех на sftp, дать возможность использовать tar, unzip и прочее.
Панелька какая-нибудь (тот же ISPmanager) для работы с архивами и т.п.
www.info-x.org - информационный ресурс о ОС FreeBSD.

Аватара пользователя
schmel
рядовой
Сообщения: 46
Зарегистрирован: 2010-02-28 22:28:09

Re: chroot во FreeBSD

Непрочитанное сообщение schmel » 2013-04-24 19:07:44

ChihPih писал(а): Все это правами решается.
Как? только не говорите, что chmod'ом =)
Как правами сделать так, чтобы пользователь при логине через ssh вообще не видел папки выше своей директории?

Ок, начну исследования, может кто нибудь подскажет.
И так...
В OpenSSH есть поддержка chroot.
То есть мне нужно сделать так, что бы пользователь подключившийся по ssh видел только свое домашнее окружение и не мог выйти в каталоги других пользователей.
Панель создает директории в /usr/local/www/data/virtual/name_site.ru
Тоесть для начала мне нужно назначить домашнюю директорию пользователю владельцу папки name_site.ru. Ок, назначу, в handbook видел где-то как это делается.

Исследую настройки в /etc/ssh/sshd_config.

AllowGroups wheel (и тут перечисляем названия групп vu2001 vu2002 vu2003 и тд.) Трудоемко, не правдали, возможно ли это автоматизировать или сделать алиас для всех этих vu?

мой /etc/group

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

...........
vu2018:*:2018:
vu2019:*:2019:
vu2020:*:2020:
vu2022:*:2022:
vu2023:*:2023:
..........
Далее, есть такой пункт как ChrootDirectory.

Match group vu2001 vu2002 vu2003 (в правильности этого пункта сомневаюсь)
ChrootDirectory %h (тут как я понял при логине будет использоваться домашняя директория в качестве корня, поправьте если не прав)
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no

Далее по статье:
Создадим будущему пользователю домашний каталог, куда он и будет кидать свои файлы
# mkdir /usr/local/www/example
А внутри этого каталога еще один
# mkdir /usr/local/www/example/www
У меня панель и так создает каталог /usr/local/www/data/virtual/example.ru
Вместо /usr/local/www/example/www у меня /usr/local/www/data/virtual/example.ru/htdocs
Теперь надо правильно добавить пользователя через adduser. Надо включить его в группу sftponly, дать реальную оболочку(например sh),указать правильный домашний каталог(мы его уже создали), ну естественно, пароль.
Думаю это можно сделать шаблоном самой панели, поковырявшись в коде. Ок, допустим сделал.
# chown -R root /usr/local/www/example
# chown -R our_user /usr/local/www/example/www
А вот это не совсем понял, зачем ставить владельцем root? И давать права только на одну папку в домашней директории? Можно ли дать права на все папки? У меня там хранятся еще бекапы и логи, иногда это полезно пользователям.

Буду благодарен за любую помощь.

ChihPih
ст. прапорщик
Сообщения: 568
Зарегистрирован: 2009-09-04 12:23:30
Откуда: Где-то в России...
Контактная информация:

Re: chroot во FreeBSD

Непрочитанное сообщение ChihPih » 2013-04-24 19:38:19

Как? только не говорите, что chmod'ом
Как правами сделать так, чтобы пользователь при логине через ssh вообще не видел папки выше своей директории?
На корневую папку для домашних директорий поставить права 751
www.info-x.org - информационный ресурс о ОС FreeBSD.

Аватара пользователя
schmel
рядовой
Сообщения: 46
Зарегистрирован: 2010-02-28 22:28:09

Re: chroot во FreeBSD

Непрочитанное сообщение schmel » 2013-04-25 11:24:39

ChihPih писал(а):На корневую папку для домашних директорий поставить права 751
Поставил, пользователь теперь просто не видит папки других сайтов, но по системе может шариться. И читать конфиги из /etc

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

[vu2010@hosting:/usr/local] $ls
bin     etc     info    libdata man     share   var
build-1 include lib     libexec sbin    src     www

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

[vu2010@hosting:/etc] $cat fstab
# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/ad0s1b             none            swap    sw              0       0
/dev/ad0s1a             /               ufs     rw              1       1
/dev/acd0               /cdrom          cd9660  ro,noauto       0       0
Надо полностью изолированное окружение. А ставить на все права 751 черевато неизвестными последствиями.

ChihPih
ст. прапорщик
Сообщения: 568
Зарегистрирован: 2009-09-04 12:23:30
Откуда: Где-то в России...
Контактная информация:

Re: chroot во FreeBSD

Непрочитанное сообщение ChihPih » 2013-04-25 11:37:28

то он сможет просматривать список каталогов, выше своей директории, хотя и не сможет прочитать другие файлы, просто видит папки.
Как бэ начальная задача вполне решаема chmod,ом. Юзверь не сможет узнать какие файлы/папки где есть, по сути этого хватит.
Если так сильно хочется поизвращаться то смотрите маны и доки на оф. сайте по MAC.
www.info-x.org - информационный ресурс о ОС FreeBSD.

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: chroot во FreeBSD

Непрочитанное сообщение icb » 2013-07-24 21:40:27

Alex Keda писал(а):однако, я непонимаю - зачем chroot?
права на хомяки раздать и всё.
и пусть шарятся где хотят...
вот вам ссылочка: http://www.host-food.ru/
возьмите пробник, попросите ssh в тикетнице - его нет на пробнике по дефолту
пошарьтесь, посмотрите...
Разве можно правами ограничить чтение rc.conf passwd groups named.conf и т.п.?

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1331
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

Re: chroot во FreeBSD

Непрочитанное сообщение dekloper » 2013-07-25 10:37:20

jail не?
там шас много че добавилось по части виртуализации стека..
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: chroot во FreeBSD

Непрочитанное сообщение icb » 2013-08-29 13:08:00

Т.е. как я понимаю нормально ограничить пользователя установкой прав нельзя?
Придется дальше копать chroot :(
jail не?
Более накладно (чем chroot) делать.
там шас много че добавилось по части виртуализации стека..
Там уже давно добавляют, правят и т.п. Но не совсем понятно на каком они этапе и какие перспективы.
jail - вика последний раз правилась в 2011 году (учитывая рынок VDS - похоже так оно и есть, многие предлагают только 8.х)
vImage - не очень понятно замена ли это jail и откажутся ли в ее пользу, но она вообще в 2010 зависла
Очень мало информации.

Да и вообще, в очередной раз наблюдается странное поведение админов проекта - информацию перестали выкладывать даже в вике по TODO релиза :(
Информация о 10.0 застыла по состоянию за май 2012 года.
А потом удивляются малой численностью сообщества - при таком подходе это не удивительно.

mikie
мл. сержант
Сообщения: 84
Зарегистрирован: 2012-11-21 18:33:03

Re: chroot во FreeBSD

Непрочитанное сообщение mikie » 2013-09-28 13:38:06

на все важные системные папки поставить права 750 (drwxr-x---) ну и не пускать простых пользователей в группу wheel + на каждую папку пользователя тоже поставить такие права, чтоб не могли лазить по папкам соседей (видить будут но зайти не смогут)... я не большой спец конечно, может это и чревато...но все же думаю что важные системные папки можна защитить таким способом

Ikinoki
мл. сержант
Сообщения: 70
Зарегистрирован: 2009-07-27 12:04:45

Re: chroot во FreeBSD

Непрочитанное сообщение Ikinoki » 2013-10-05 2:24:51

icb писал(а):Т.е. как я понимаю нормально ограничить пользователя установкой прав нельзя?
Придется дальше копать chroot :(
jail не?
Более накладно (чем chroot) делать.
там шас много че добавилось по части виртуализации стека..
Там уже давно добавляют, правят и т.п. Но не совсем понятно на каком они этапе и какие перспективы.
jail - вика последний раз правилась в 2011 году (учитывая рынок VDS - похоже так оно и есть, многие предлагают только 8.х)
vImage - не очень понятно замена ли это jail и откажутся ли в ее пользу, но она вообще в 2010 зависла
Очень мало информации.

Да и вообще, в очередной раз наблюдается странное поведение админов проекта - информацию перестали выкладывать даже в вике по TODO релиза :(
Информация о 10.0 застыла по состоянию за май 2012 года.
А потом удивляются малой численностью сообщества - при таком подходе это не удивительно.
Нужда в vImage отпала, поцоны юзают vnet+zfs+jail...

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: chroot во FreeBSD

Непрочитанное сообщение icb » 2013-10-14 14:27:30

но все же думаю что важные системные папки можна защитить таким способом
Как таким способом защитить /etc/passwd и т.п.?
Нужда в vImage отпала
Почему?