On 2016-04-13, Max Dmitrichenko wrote: > 12 апреля 2016 г., 10:47 пользователь Oleksandr Gavenko <gaven...@gmail.com> > написал: > > desktop:/# ps -e > ... > > и увидел все пользователькие процесы вне chroot. > > И совершенно справедливо, потому chroot - это не jail какой-нибудь и не > контейнер. Это просто возможность исключить определенную область файловой > иерархии из видимости процесса. Не самая секьюрная вещь, если честно. Больше > подходит для разработки, где вам надо что-то проверить в чистом окружении, > например. > > А всё остальное как: возможность видеть и посылать сигналы другим процессам, > открывать соединения, слушать порты и прочим образом мешать не чрутованной > части системы - всё это остаётся доступным. > Уже почитал chroot(2), но от schroot(1) ожидал большего.
Правильно ли я понимаю что выполднять от root недоверенное приложение в chroot нельзя? > Если хочется более серьезной изоляции, то нужно капать в сторону cgroups, > namespaces, containers, virtualization (как-то в порядке возрастания > overhead, на моё ИМХО). Я почитал про lxc, namespaces(7). Образы предоставляют проекты: * http://images.linuxcontainers.org/ * https://www.flockport.com/store/ Если нет к ним доверия, то можно изучить скрипты из /usr/share/lxc/templates. Для Debian берется обычный debootstrap. Хотя я полагаю Debian слишком "толстым": bash# sudo debootstrap --variant=minbase stable minbase/ bash# sudo du -s -m ./minbase/ 204 ./minbase/ lxc идет со скриптом для развертывания alpine, у меня вышло: $ sudo du -s -m /var/lib/lxc/alpine 9 alpine против: $ sudo du -s -m /var/lib/lxc/debian 287 debian Но с системой пакетов alpine еще нужно разбираться. Плюс пока не выработалось доверие к их репозиториям. На btrfs lxc умеет делать снапшоты. Я не понял будет ли клонирование контейнера отжирать место на ext4. Кажись да. ================================================================ Мне совсем не ясна изолирующая сила cgroups + namespaces. В отличии от openvz у меня есть ощущение что chroot + cgroups + namespaces создавалось для изоляции а не для безопасности. Т.е. руткиты скорее всего будут вырываться из контейнера и без виртуализации не обойтись. В итоге только доверенный код можно выполнять в контейнере chroot + cgroups + namespaces. ================================================================ Почитал критику про Docker и CoreOS. В общем для хобби и для себя стоит разбираться с lxc. Docker и CoreOS предназначены для зарабатывания денег и тянут за собою политики/соглашения и перозитории. По отзывам использование Docker чревато протискиванием вызовов их API в прикладной код. А CoreOS наверно скоро наймут Поттеринга, т.к. systemd - сердце их продукта (для экономии времени вместо своей реализации восмользовались всем арсеналом сервисов из зонтика systemd). Вот пример как запуститься в изолированом namespaces: $ sudo ip netns exec test unshare -fp --mount-proc chroot rootfs /bin/bash -c "mount -t proc proc /proc && /bin/bash" https://www.flockport.com/how-linux-containers-work/ Это делает с разной степенью автоматизации lxctl, Docker, rkt. ================================================================ Что то не понял заявление что LXC гарантировано будет поддерживаться 5 лет (с 2014 по 2019, на wikipedia). Потом что то новое придет? -- http://defun.work/