
Llevo mucho tiempo trabajando con ColdFusion. Algo que se me ha sembrado en la cabeza es que para máxima seguridad debes separar físicamente el servidor web del servidor ColdFusion. Así que siempre he hecho esto usando lo que Adobe llama "modo distribuido". IIS está en un servidor y ColdFusion está en un servidor diferente. Se comunican a través del conector web como es habitual, aunque a través de la red.
Desde hace varios años me he encontrado con publicaciones que mencionan que usar un proxy inverso es tan seguro como ejecutarlo en modo distribuido. Con la configuración del proxy inverso, el servidor web y el servidor ColdFusion están en la misma máquina física, pero hay un servidor proxy que maneja las solicitudes y funciona como el servidor web (básicamente). Todavía en mi mente veo la separación física como algo más seguro.
Es difícil encontrar alguna recomendación definitiva en Internet. El modo distribuido todavía se menciona incluso en elDocumentación de ColdFusion 11-Para obtener más información sobre la herramienta de configuración del servidor web, incluida información sobre el uso distribuido y de alojamiento múltiple, consulte la guía Configuración y administración de ColdFusion.. (Aunque no hay mucha información al respecto en la página a la que se hace referencia). Ambas configuraciones parecen mencionarse en varios blogs y publicaciones, pero encuentro más común que las personas utilicen la configuración de proxy inverso en lugar de la configuración del modo distribuido. Nada concreto, sólo mi percepción mientras recorría la web. Ejecutarlo en modo distribuido, con el servidor web y el servidor ColdFusion en servidores separados, definitivamente agrega una capa de complejidad al configurar las cosas. Los archivos estáticos residen en el servidor web y los archivos CFML en el servidor ColdFusion. Etc. Cuando utiliza productos de terceros, esto puede resultar difícil de configurar correctamente.
Entonces mi pregunta es, suponiendo que todo lo demás sea igual, para máxima seguridad, ¿utiliza el modo distribuido o una configuración de proxy inverso? Y algunas razones por las que lo haces.
Lamentablemente, las guías de bloqueo de ColdFusion confunden el asunto. Esto es lo que he encontrado.
En elGuía de bloqueo de ColdFusion 9(páginas 14-15) dice:
También podría considerar instalar ColdFusion en modo distribuido. Esto permite que el servidor web resida en un servidor físicamente separado del servidor ColdFusion. También puede conectar varios servidores web a un único servidor ColdFusion (esto se denomina multihoming en la documentación de ColdFusion 9). Esta separación puede proporcionar seguridad adicional y debe considerarse en entornos que requieren máxima seguridad. Para instalar el modo distribuido, seleccione la opción de servidor web integrado. Para obtener información sobre la configuración del modo distribuido, consultehttp://www.adobe.com/support/coldfusion/administration/cfmx_in_distributed_mode/cfmx_in_distributed_mode02.html. Para obtener detalles sobre multihoming, consultehttp://help.adobe.com/en_US/ColdFusion/9.0/Admin/WSc3ff6d0ea77859461172e0811cbf364104-7fc3.html.
Otra forma de separar el servidor web público y el servidor ColdFusion es mediante el uso de un proxy inverso. En una configuración de proxy inverso, el servidor ColdFusion todavía tiene un servidor web instalado, pero todas las solicitudes de clientes externos son manejadas por el servidor proxy y ciertas solicitudes se envían al servidor ColdFusion para su procesamiento.
En elGuía de bloqueo de ColdFusion 10(página 27) esa declaración se redujo a esto:
Para máxima seguridad, considere ejecutar el servidor web y ColdFusion en servidores físicos separados. Una forma de separar el servidor web público y el servidor ColdFusion es mediante el uso de un proxy inverso.
En una configuración de proxy inverso, el servidor ColdFusion seguirá teniendo un servidor web instalado; sin embargo, todas las solicitudes de clientes externos serán manejadas por el servidor proxy y solo se enviarán solicitudes específicas al servidor ColdFusion para su procesamiento. Consulte la documentación de su servidor web para configurar un proxy inverso.
Y en elGuía de bloqueo de ColdFusion 11no se menciona ninguno de los dos. Parece que debería estar en la página 11 o alrededor de ella, que es donde se ubicaron las declaraciones en los otros documentos junto con la ejecución de la herramienta de configuración del servidor web. Tengo mucha curiosidad por saber por qué Pete eliminó esto del último documento.
Mientras uso Adobe ColdFusion, también etiqueté esta pregunta con Railo para obtener más información.
Respuesta1
Está confundiendo el "modo distribuido" (tener el servidor web y el servidor CF en cajas separadas) como mutuamente excluyente con el uso de un proxy inverso. En realidad, son dos preocupaciones distintas. Un proxy inverso es simplemente una alternativa al uso del conector web estándar. Simplemente hace que su servidor web (IIS, Apache, Nginx) redirija las solicitudes de páginas CFML a un puerto HTTP/HTTPS o AJP en un host/puerto determinado en su caja CF. Puede configurar un proxy inverso para que actúe como proxy en localhost O en cualquier otro servidor de su red, siempre que los puertos apropiados estén abiertos.
Ex. Puede habilitar el escucha AJP en Tomcat en el puerto 8009. Luego, en su servidor web Apache (que puede estar en cualquier lugar de su red), invierte las solicitudes de proxy para archivos .cfm a ese puerto usando el módulo proxy_ajp.
Nunca me he ocupado personalmente del modo distribuido, ya que parece haber una cantidad mucho menor de vectores de ataque dirigidos a mis servidores web. Pero si elige utilizar un "modo distribuido", puede hacerlo con el conector estándar O con un proxy inverso. Tu decides.
Respuesta2
El modo DISTRIBUIDO o la configuración de PROXY INVERSO proporcionarían un nivel de seguridad en su mayoría similar, pero el modo DISTRIBUIDO tendría escenarios de servidor adicionales de ALTA DISPONIBILIDAD Y CONFIABILIDAD.