Докер только на виртуальных машинах, а не на физической машине?
У меня есть две физические машины в одном центре обработки данных, и я хочу использовать их как можно лучше. Я думаю об использовании 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
пользователь для всех контейнеров.