У нас была та же проблема: после успешного развертывания на Plesk Onyx 17.5 наш хостер объявил о принудительном обновлении до 17.8, оправданном требованиями GDPR Plesk. Зная, что это нарушит нашу производственную среду, мы установили новую машину, чтобы проверить наши возможности. Я был очень рад найти вашу идею здесь @ThirstForKnowledge, что звучит прекрасно для меня, но Docker не был для нас вариантом, поскольку наша виртуализированная среда хостинга не позволяла запускать хост Docker. Поэтому мы придумали еще одну идею, которая может быть полезна для других, сталкивающихся с такими же трудностями.
1. Идея
Установите Tomcat как отдельное приложение и разверните .war вместе с Tomcat Manager, поставляемым по умолчанию. Создайте скрипт cron, проверяющий наличие обновлений в ZIP-архиве Tomcat, и установите JRE с помощью диспетчера пакетов, который регулярно автоматически обновляется по инициативе Plesks.
2. Решение
- Установите JRE с помощью диспетчера пакетов
- Установите Tomcat, используя .zip с их зеркал.
- Защитите его от атак, следуя одному из различных онлайн-руководств.
- Сделайте его сервисом и включите его для запуска при загрузке
- Настройте приложение менеджера Tomcat (только для локального хоста, смотрите на три шага вперед)
- Заблокировать порт Tomcats по умолчанию с помощью брандмауэра Plesk
- Настройте подписку Plesks с шифрованием и автоматическим перенаправлением на HTTPS
- Используйте возможности Plesks для изменения конфигурации Apache и настройки обратного прокси-сервера на порт Tomcats.
- Проверьте домен на наличие работающего сервера Tomcat и действительного шифрования
- Войдите в менеджер Tomcat
- Отмените развертывание всех демонстрационных приложений и разверните свой .war
- Деактивируйте доступ менеджера для предотвращения атак (или настройте Fail2Ban соответствующим образом) (может не понадобиться, если вы выполните все следующие шаги, но безопасность есть безопасность)
- Измените конфигурацию обратного прокси-сервера, чтобы указать / на ваше приложение
- Создайте скрипт для обновления Tomcat и запустите его с помощью Plesk.
3. Объяснение
Подключения пользователей будут направляться к вашему приложению Tomcat/Java, но шифрование и все остальные операции хостинга могут выполняться через интерфейс Plesk. Обновления будут запускаться средством обновления пакетов Plesks для Java и сценарием cron для Tomcat. Развертывание и отмена развертывания действительно упрощается менеджером Tomcat, который лишь на короткое время открывается в WWW, когда это необходимо, а учетные данные передаются безопасным образом. Tomcat нужно было установить вручную, потому что у нашего менеджера пакетов в репозиториях был только Tomcat 7, это может зависеть от вашей установки, поэтому проверьте это заранее!
4. Открытые вопросы
Кто-нибудь имеет больше опыта или находит слабые места или утечки безопасности с этим подходом? Есть ли у кого-нибудь более приятная идея для выполнения этой задачи? Мы что-то упускаем? Я рад всем соображениям :)
person
schiegg
schedule
16.07.2019