1.1, Nicknnn (ok), 11:14, 19/10/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Ещё неплохо создать /etc/hosts
sys и proc нужно просто монтирвать без rbind
а также примонтировать devpts
proc /home/chroot_web/proc proc defaults 0 0
sys /home/chroot_web/sys sysfs defaults 0 0
/dev /home/chroot_web/dev none bind 0 0
devpts /home/chroot_web/dev/pts defaults,gid=5,mode=620 0 0
man debootstrap короче
| |
|
2.2, pavel_simple (ok), 13:21, 19/10/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Ещё неплохо создать /etc/hosts
>sys и proc нужно просто монтирвать без rbind
>а также примонтировать devpts
>
>proc /home/chroot_web/proc proc defaults 0 0
>sys /home/chroot_web/sys sysfs defaults 0 0
>/dev /home/chroot_web/dev none bind 0 0
>devpts /home/chroot_web/dev/pts defaults,gid=5,mode=620 0 0
>
>man debootstrap короче
итак, допустим apache таки ломанули
у нас dev есть? конечно, а даже если и нет, то мы себе сами сможем создать.
берем /dev/[sh]daXXX , монтируем его куда-нибудь, и из chroot'а пругаем chroot'ом в root.
зачем использовать полные слепки системы для изоляции сервисов ровным счётом не понятно.
к предыдущей заметке по RedHat-based системам критика такая-же.
(если виртуализация по тем или иным причинам не может быть использованна)
1. для изоляции сервисов нужно создавать минимальное окружение
2. использование chroot'а для изоляции всё-равно остаётся очень плохой идеей.
| |
|
|
4.5, Pilat (ok), 19:00, 19/10/2009 [^] [^^] [^^^] [ответить]
| +/– |
А чем плоха, к примеру, виртуалка под OpenVZ? chroot хорош для мелких задач, а тут практически вся система.
| |
|
5.6, pavlinux (ok), 19:54, 19/10/2009 [^] [^^] [^^^] [ответить]
| +/– |
>А чем плоха, к примеру, виртуалка под OpenVZ? chroot хорош для мелких
>задач, а тут практически вся система.
В применение изолированных сред, само название говорит за себя....
В изоляции должно сужествовать только то, что нужно, и не байта больше.
Приложение + Shared Objects (.so) и R/O данные.
Данные для записи складываются в SQL/CIFS/NFS итп, но в другом chroot.
База или каталоги для записи хранится на RAID1/5/10 c hourly/daily
incremental снапшотами и weekly TAPE/DVD-R/BD-R бакапом.
OpenVZ, как и любую другую виртуаль, очень накладно держать для каждого сервиса раздельно.
У виртуалок есть два приемущества - быстырый бэкап, и полная изоляция (SMM бэкдором не многие умеют пользоваться).
| |
|
6.7, Pilat (ok), 20:15, 19/10/2009 [^] [^^] [^^^] [ответить]
| +/– |
Не думаю что всё тка плохо. OpenVZ держать не очень накладно, там расходы копеечные.
Вопрос про chroot: а как обновлять в нём софт, если только библиотеки? В нашем примере там не только библиотеки - там всё.
| |
|
7.8, pavlinux (ok), 20:55, 19/10/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Не думаю что всё тка плохо. OpenVZ держать не очень накладно, там расходы копеечные.
>
>Вопрос про chroot: а как обновлять в нём софт, если только библиотеки?
Правильный chroot это runtime chroot, т.е. по мере необходимости...
Пришёл коннект, родил chroot и перенаправил туда.
LIMIT_PER_ONE_SERVER = 1024;
CONNECTIONS = 0;
EXTERN CONNECT();
MASTER_CONNECT(char *user) {
WHILE (ONLINE) {
IF ( CONNECTIONS % LIMIT_PER_ONE_SERVER == 0 )
{
THEN
FORK_IN_CHROOT_NEW_SERVER(CONNECT());
REDIRECT_TO_NEW_SERVER(user);
ELSE
REDIRECT_TO_NONBUSY_SERVER(user);
}
CONNECTIONS++
} // while
}
ну и так далее
| |
|
6.15, User294 (ok), 05:36, 23/10/2009 [^] [^^] [^^^] [ответить]
| +/– |
> OpenVZ, как и любую другую виртуаль, очень накладно держать для каждого
> сервиса раздельно.
И в чем эта накладность состоит? Оно не виртуаль в общем то, а просто резатель ресурсов крутой. Тот же чрут но только сильно более правильный. Поэтому просадка скорости от опенвзы - не больно какая заметная. А вот интересные фенечки оно зато умеет. Ну и можно содержать систему с 5 процессами - один из которых инит а второй sshd к тому же будет.Как раз по контейнеру на сервис. Нифига оно не накладно, строго говоря. Если задаться целью его минимизировать - это можно.Скажем нафиг в контейнере стандартные утилсы и прочая, если оно может жить на ФС хоста и управляться оттуда?Как бонус - если хакер сломает что-то, он попадет в вроде как машину но какую-то сильно неудобную и неполноценную, где вредительствовать особо не дают :)
Из плюсов - хаксор не сможет грузить модули ядра даже будучи рутом (вза сие отшивает) и дуракозащищенность - повыше.Например недавний сплойт повышающий права до рута на взе вообще не работал, что тоже некий плюс.
| |
|
|
|
|
|
1.12, mma (?), 07:56, 20/10/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
А зачем создавать полное окружение - нужно все-голишь чтобы сервис умел запускаться в чруте (стартует рутом, после того как все модели загрузит) переходит в чрут. Апач это умеет, в openbsd так работает без проблем даже с mod_php.
| |
|
2.13, mma (?), 07:58, 20/10/2009 [^] [^^] [^^^] [ответить]
| +/– |
но при этом чрут сам посебе не назовешь полноценной изоляцией, нужно как минимум запретить чрутитьтся всем кроме root (ну и еще какие то мелочи не помню), поэтому без grsecurity или selinux чрут сам по себе только усложняет жизнь взломщику но не предотращает взлом
| |
|
3.16, sjinks (?), 15:44, 23/10/2009 [^] [^^] [^^^] [ответить]
| +/– |
> нужно как минимум запретить чрутитьтся всем кроме root
А с каких пор CAP_SYS_CHROOT есть у кого-то, кроме рута?
| |
|
4.17, mma (?), 19:12, 23/10/2009 [^] [^^] [^^^] [ответить]
| +/– |
я не правильно выразился, но суть думаю понятна как можно выйти за пределы chroot и почему он не особо полезен без подсистем безопасности?
| |
|
5.18, sjinks (?), 17:11, 24/10/2009 [^] [^^] [^^^] [ответить]
| +/– |
>я не правильно выразился, но суть думаю понятна как можно выйти за
>пределы chroot
Без рутовых привилегий и при условии, что у демона нет открытых файлов/каталогов вне chroot это всё же проблематично.
>и почему он не особо полезен без подсистем безопасности?
chroot изначально не проектировался как средство безопасности. Тем не менее, chroot() + chdir() + setuid() = неплохой дополнительный барьер для хакера.
| |
|
6.19, mma (?), 19:36, 24/10/2009 [^] [^^] [^^^] [ответить]
| +/– |
chroot в chroot и fchdir
От этого ведб стандартными способами не защитишся
| |
|
7.20, sjinks (?), 20:02, 24/10/2009 [^] [^^] [^^^] [ответить]
| +/– |
>chroot в chroot и fchdir
>
>От этого ведб стандартными способами не защитишся
Да, только второй chroot() можно сделать, если у демона есть CAP_SYS_CHROOT (т.е. если демон под рутом сидит).
Обычный пользователь делать chroot() не умеет.
http://linux.die.net/man/2/chroot
| |
|
|
|
|
|
|
1.21, jura12 (??), 04:14, 13/11/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
вы не написали зачем все это надо, какие преимущества и недостатки. вкрадце вводную надо было дать.
| |
|