Это может показаться довольно странным, на первый взгляд, однако, в определенных случаях может быть весьма полезным. Например, в случае если необходимо на тестовом сервере выделить площадку для разработки с возможностью запускать привилегированные контейнеры Docker. В случае, если вся работа происходит на одном сервере, то пользователь получает доступ сразу ко всем контейнерам/образам на сервере, что неправильно с точки зрения безопасности. С другой стороны, такие системы виртуализации, как QEMU/KVM или Xen обладают определенным оверхедом по производительности и сложнее в настройке. LXC, в данном случае, позволяет обойти оба этих недостатка.
Рубрика: Virtualization
Docker best practices
В данной записи я бы хотел подытожить тот опыт, что я получил при работе с Docker. Надеюсь, данная статья поможет тем, кто обдумывает его внедрение в своих проектах. Являясь низкоуровневым компонентом, который трудно заменить на боевой системе, знание определенных моментов поможет обойти некоторые грабли заранее.
LXC за обратным NAT (Reverse NAT). Пошаговая инструкция.
В связи с исчерпанием доступных ipv4 адресов все более актуальной становится тема размещения виртуальных машин за NAT. Таким образом можно добиться сразу нескольких преимуществ:
1. Экономия средств за счет использования только одного публичного адреса для множества машин;
2. Сокрытие внутреннего устройства публично доступных сервисов (т. е. ваша инфраструктура будет невидима для мира).
Однако, как и у любой технологии, у данного метода есть недостатки.
Read More «LXC за обратным NAT (Reverse NAT). Пошаговая инструкция.»
PHP-FPM в chroot окружении.
Одна из «фич» PHP-FPM — возможность запуска дочерних процессов в chroot окружении. В теории, это должно значительно увеличить безопасность системы засчет изоляции процесса исполняющего скрипт, т. е. если злоумышленник получит контроль над системой используя уязвимость PHP, то он выше той папки, в которой запущен процесс PHP-FPM, он не уйдет.
На практике, к сожалению, все далеко не столь радужно.
Docker. Немного теории и практики.
В последнее время набирает обороты использование контейнерной виртуализации для изоляции приложений. Зачем это нужно? Во-первых — безопасность. Приложение не может получить доступ к системе за пределы выделенного контейнера. Во-вторых — управление зависимостями. Все необходимые библиотеки устанавливаются в контейнер, а не на хост-систему и версии данных библиотек могут быть любыми, а не только теми, что доступны в хост-системе. В-третьих управление доступом к файловым системам и не только. Раздел или каталог могут быть примонтированы к разным контейнерам с разными опциями (например, каталог, в который пользователи сайта загружают файлы имеет смысл монтировать с опцией noexec
, для того, чтобы из него было невозможно запустить исполняемые файлы).
Дальше всех в данном вопросе продвинулся инструментарий Docker. Попробуем в нем немного разобраться для того, чтобы вывести возможные области применения.