Докер только на виртуальных машинах, а не на физической машине?

У меня есть две физические машины в одном центре обработки данных, и я хочу использовать их как можно лучше. Я думаю об использовании Docker, Weave для запуска веб-приложения с высокой степенью защиты (Tomcat, Mysql, Mongodb) и хочу быть очень осторожным в отношении безопасности. Ниже моя архитектура. Могут ли люди с опытом развертывания докеров предоставить обратную связь?

a) Создайте ОС Centos 6 на обеих физических машинах с SSH и установите Shorewall. Shorewall FW ограничит ssh и порт только 80,443, а 80,443 перенаправит виртуальные машины, работающие с контейнером Tomcat. На этом физическом компьютере не установлен докер.

b) Установите Virtualbox на обеих физических машинах и запустите несколько виртуальных машин, и каждая виртуальная машина доступна через SSH-туннель на физической машине, что обеспечивает дополнительный уровень безопасности.

c) Построить Docker и сеть Weave на каждой виртуальной машине и, следовательно, построить сеть Weave на виртуальных машинах как хостах

d) Все контейнеры tomcat, mysql, mongodb запускаются только на виртуальных машинах.

Преимущество этой конфигурации в том, что мои физические машины и Docker отделены друг от друга и добавляют дополнительный уровень безопасности.

Я планирую создать это. Я хотел бы знать, предвидит ли кто-нибудь какие-либо проблемы или проблемы или предложения для более безопасного / надежного способа использования 2 серверов.

Любое руководство или ссылки для дальнейшего чтения высоко ценится.

Спасибо, Великобритания.

1 ответ

Решение

Ваша инфраструктура - хорошее начало, но только начало.

Вам необходимо правильно настроить эти приложения, чтобы они были более безопасными (независимо от того, как и где они выполняются, в докер-контейнерах или нет): например, убедитесь, что ваши ответы в заголовке не содержат название приложения и его версия (подробнее о безопасности Apache Tomcat 8 или " Улучшение безопасности Apache Tomcat")

Кроме того, проблема с контейнером Docker заключается в том, что процессы внутри этих контейнеров выполняются с правами root и выполняют системные вызовы непосредственно в ядро (по умолчанию без ограничения области действия, то есть все системные вызовы разрешены).
Это то, что Docker 1.9 начал делать с PR 12648 (Фаза 1 реализация пользовательских пространств имен как переназначенного корня контейнера) и выпустить 15187

  • Все контейнеры имеют свое собственное пространство имен пользователя (что эффективно предотвращает использование --net=host или же --net=container:<id>).
  • Настройка всего демона переопределяет root пользователь для всех контейнеров.
Другие вопросы по тегам