Servidor Tornado na porta 80/443, algum problema?

2

Eu gostaria de executar um aplicativo baseado no servidor da Web Tornado em um ambiente de produção. Os requisitos de desempenho são baixos.

Como não preciso de um balanceador de carga, gostaria de saber se é OK acessá-lo diretamente nas portas 80 e 443. Isso é aceitável do ponto de vista da segurança e há outros problemas? Isto é claro, supondo que eu encontre alguma maneira de executá-lo como um usuário não-root (authbind não disponível no RHEL).

    
por Marius Bjørnstad 05.04.2016 / 13:37

1 resposta

2

A exposição direta do tornado em HTTPS significaria que a criptografia TLS é manipulada pelo módulo ssl do Python.

Isso provavelmente é OK se:

  • a distribuição python é recente o suficiente (python < 2.7.9 tem muitos problemas SSL. python > = 2.7.9 ou > = 3.4 é muito melhor)

  • python e libssl são fornecidos através dos pacotes de distribuição do Linux

  • você tem uma política de atualização completa para os pacotes de distribuição

É claro que se o seu aplicativo envolver informações muito confidenciais, a melhor prática seria executar um proxy (como nginx) com uma pilha TLS protegida na frente do seu aplicativo. Por exemplo, executando nginx em um proxy reverso do OpenBSD, que usa LibreSSL.

Para prevenção de negação de serviço, se seu aplicativo for codificado em relação a aplicativos de tornado (nunca bloqueie o ioloop), há pouco a ganhar com um balanceador de carga assíncrono na frente do aplicativo.

E, finalmente, a maioria dos problemas de segurança está, de qualquer maneira, enraizada no próprio aplicativo ... Autenticação, controle de acesso, XSRF, XSS ... O balanceador de carga não os impede.

    
por 22.11.2016 / 04:23