
Trabalho com ColdFusion há muito tempo. Algo que foi pensado em meu cérebro é que, para segurança máxima, você deve separar fisicamente o servidor Web do servidor ColdFusion. Sempre fiz isso usando o que a Adobe chama de "modo distribuído". O IIS está em um servidor e o ColdFusion está em um servidor diferente. Eles se comunicam via conector da web normalmente, embora pela rede.
Há vários anos, tenho encontrado postagens que mencionam que o uso de um proxy reverso é tão seguro quanto a execução em modo distribuído. Com a configuração do proxy reverso, o servidor web e o servidor ColdFusion estão na mesma máquina física, mas há um servidor proxy que trata das solicitações e funciona como o servidor web (basicamente). Ainda na minha cabeça vejo a separação física como sendo mais segura.
É difícil encontrar alguma recomendação definitiva na internet. O modo distribuído ainda é mencionado mesmo noDocumentação do ColdFusion 11-Para obter mais informações sobre a ferramenta de configuração do servidor Web, incluindo informações sobre multihoming e uso distribuído, consulte o guia Configurando e administrando o ColdFusion. (Embora não haja muitas informações sobre isso na página referenciada.) Ambas as configurações parecem ser mencionadas em vários blogs e postagens, mas acho mais comum que as pessoas usem a configuração de proxy reverso em vez da configuração de modo distribuído. Nada de concreto, apenas minha percepção enquanto vasculhei a web. A execução em modo distribuído, com o servidor Web e o servidor ColdFusion em servidores separados, definitivamente adiciona uma camada de complexidade ao configurar as coisas. Os arquivos estáticos residem no servidor web e os arquivos CFML no servidor ColdFusion. Etc. Quando você usa produtos de terceiros, pode ser difícil configurar corretamente.
Então, minha pergunta é: supondo que todo o resto seja igual, para segurança máxima, você usa o modo distribuído ou uma configuração de proxy reverso? E algumas razões pelas quais você faz isso.
Infelizmente, os guias de bloqueio do ColdFusion estão confundindo o assunto. Aqui está o que encontrei.
NoGuia de bloqueio do ColdFusion 9(páginas 14-15) afirma:
Você também pode considerar instalar o ColdFusion no modo distribuído. Isso permite que o servidor Web resida em um servidor fisicamente separado do servidor ColdFusion. Você também pode conectar vários servidores Web a um único servidor ColdFusion (isso é chamado de multihoming na documentação do ColdFusion 9). Esta separação pode proporcionar segurança adicional e deve ser considerada em ambientes que exigem segurança máxima. Para instalar o modo distribuído, selecione a opção de servidor web integrado. Para obter informações sobre como configurar o modo distribuído, consultehttp://www.adobe.com/support/coldfusion/administration/cfmx_in_distributed_mode/cfmx_in_distributed_mode02.html. Para obter detalhes sobre multihoming, consultehttp://help.adobe.com/en_US/ColdFusion/9.0/Admin/WSc3ff6d0ea77859461172e0811cbf364104-7fc3.html.
Outra maneira de separar o servidor da Web público e o servidor ColdFusion é usar um proxy reverso. Em uma configuração de proxy reverso, o servidor ColdFusion ainda possui um servidor Web instalado, mas todas as solicitações de clientes externos são tratadas pelo servidor proxy e determinadas solicitações são enviadas ao servidor ColdFusion para processamento.
NoGuia de bloqueio do ColdFusion 10(página 27) essa afirmação foi reduzida a isto:
Para segurança máxima, considere executar o servidor Web e o ColdFusion em servidores físicos separados. Uma maneira de separar o servidor da Web público e o servidor ColdFusion é usar um proxy reverso.
Em uma configuração de proxy reverso, o servidor ColdFusion ainda terá um servidor Web instalado; no entanto, todas as solicitações de clientes externos serão tratadas pelo servidor proxy e apenas solicitações específicas serão enviadas ao servidor ColdFusion para processamento. Consulte a documentação do seu servidor web para configurar um proxy reverso.
E noGuia de bloqueio do ColdFusion 11não há menção a nenhum dos dois. Parece que deveria estar na página 11 ou próximo a ela, onde as instruções estavam localizadas nos outros documentos, juntamente com a execução da ferramenta de configuração do servidor web. Estou muito curioso para saber por que Pete retirou isso do documento mais recente.
Enquanto uso o Adobe ColdFusion, marquei esta pergunta com Railo também para obter mais informações.
Responder1
Você está confundindo o "modo distribuído" (ter o servidor web e o servidor CF em caixas separadas) como sendo mutuamente exclusivo com o uso de um proxy reverso. Na realidade, são duas preocupações distintas. Um proxy reverso é simplesmente uma alternativa ao uso do conector da web padrão. Ele simplesmente faz com que seu servidor web (IIS, Apache, Nginx) redirecione solicitações de páginas CFML para uma porta HTTP/HTTPS ou AJP em um determinado host/porta em sua caixa CF. Você pode configurar um proxy reverso para fazer proxy para localhost OU para qualquer outro servidor em sua rede, desde que as portas apropriadas estejam abertas.
Ex. Você pode ativar o ouvinte AJP no Tomcat na porta 8009. Em seguida, no seu servidor web Apache (que pode estar em qualquer lugar da sua rede), você reverte as solicitações de proxy para arquivos .cfm para essa porta usando o módulo proxy_ajp.
Nunca lidei pessoalmente com o modo distribuído, pois parece haver um número muito menor de vetores de ataque direcionados aos meus servidores web. Mas se você optar por usar um "modo distribuído", poderá fazê-lo com o conector padrão OU um proxy reverso. Você decide.
Responder2
O modo DISTRIBUIDO ou a configuração REVERSE PROXY forneceriam um nível de segurança semelhante, mas o modo DISTRIBUIDO teria cenários adicionais de servidor de ALTA DISPONIBILIDADE E CONFIABILIDADE.