Назад | Перейти на главную страницу

Сервер Tornado на порту 80/443, есть проблемы?

Я хочу запустить приложение на основе веб-сервера Tornado в производственной среде. Требования к производительности низкие.

Поскольку мне не нужен балансировщик нагрузки, мне интересно, можно ли иметь к нему прямой доступ через порты 80 и 443. Нормально ли это с точки зрения безопасности и есть ли другие проблемы? Это, конечно, при условии, что я найду способ запустить его как пользователь без полномочий root (authbind недоступен в RHEL).

Прямая демонстрация торнадо по HTTPS будет означать, что шифрование TLS обрабатывается ssl-модулем Python.

Вероятно, это нормально, если:

  • распространение python достаточно недавнее (python <2.7.9 имеет много проблем с SSL. python> = 2.7.9 или> = 3.4 намного лучше)

  • python и libssl предоставляются через дистрибутивы Linux.

  • у вас есть тщательная политика обновления для пакетов распространения

Конечно, если ваше приложение содержит очень конфиденциальную информацию, лучше всего будет запустить прокси (как nginx) с усиленным стеком TLS перед вашим приложением. Например, запуск nginx на обратном прокси OpenBSD, который использует LibreSSL.

Для предотвращения отказа в обслуживании, если ваше приложение закодировано для приложений торнадо (никогда не блокируйте ioloop), тогда асинхронный балансировщик нагрузки перед приложением мало что дает.

И, наконец, большинство проблем безопасности в любом случае в основном коренится в самом приложении ... Аутентификация, контроль доступа, XSRF, XSS ... Балансировщик нагрузки не предотвращает их.