Docker best practices

В данной записи я бы хотел подытожить тот опыт, что я получил при работе с Docker. Надеюсь, данная статья поможет тем, кто обдумывает его внедрение в своих проектах. Являясь низкоуровневым компонентом, который трудно заменить на боевой системе, знание определенных моментов поможет обойти некоторые грабли заранее.
Continue reading «Docker best practices»

LXC за обратным NAT (Reverse NAT). Пошаговая инструкция.

В связи с исчерпанием доступных ipv4 адресов все более актуальной становится тема размещения виртуальных машин за NAT. Таким образом можно добиться сразу нескольких преимуществ:
1. Экономия средств за счет использования только одного публичного адреса для множества машин;
2. Сокрытие внутреннего устройства публично доступных сервисов (т. е. ваша инфраструктура будет невидима для мира).
Однако, как и у любой технологии, у данного метода есть недостатки.
Continue reading «LXC за обратным NAT (Reverse NAT). Пошаговая инструкция.»

PHP-FPM в chroot окружении.

Одна из «фич» PHP-FPM — возможность запуска дочерних процессов в chroot окружении. В теории, это должно значительно увеличить безопасность системы засчет изоляции процесса исполняющего скрипт, т. е. если злоумышленник получит контроль над системой используя уязвимость PHP, то он выше той папки, в которой запущен процесс PHP-FPM, он не уйдет.

На практике, к сожалению, все далеко не столь радужно.
Continue reading «PHP-FPM в chroot окружении.»

Docker. Немного теории и практики.

В последнее время набирает обороты использование контейнерной виртуализации для изоляции приложений. Зачем это нужно? Во-первых — безопасность. Приложение не может получить доступ к системе за пределы выделенного контейнера. Во-вторых — управление зависимостями. Все необходимые библиотеки устанавливаются в контейнер, а не на хост-систему и версии данных библиотек могут быть любыми, а не только теми, что доступны в хост-системе. В-третьих управление доступом к файловым системам и не только. Раздел или каталог могут быть примонтированы к разным контейнерам с разными опциями (например, каталог, в который пользователи сайта загружают файлы имеет смысл монтировать с опцией noexec, для того, чтобы из него было невозможно запустить исполняемые файлы).

Дальше всех в данном вопросе продвинулся инструментарий Docker. Попробуем в нем немного разобраться для того, чтобы вывести возможные области применения.
Continue reading «Docker. Немного теории и практики.»

Советы по написанию bash-скриптов

Bash по-прежнему остается важным инструментом в работе системного администратора. Обычно он применяется для скриптов автоматизации и парсинга текстовой информации (да простят меня адепты Perl и Python).

Несмотря на то, что для написания действительно больших серьезных проектов Bash мало пригоден, это не означает, что скрипты можно писать «лишь бы работало». Следующие советы облегчат жизнь вам (и тем, кто будет вынужден их поддерживать).

Continue reading «Советы по написанию bash-скриптов»