¿Se puede condicionar la ejecución de cgi a ServerName?

¿Se puede condicionar la ejecución de cgi a ServerName?

Configuré varias entradas de VirtualHost.

<VirtualHost *:80>
        ServerName subdomain1.domain.tld
        [...]
        DocumentRoot /var/www/html/subdomain1
        [...]
</VirtualHost>

<VirtualHost *:80>
        ServerName subdomain2.domain.tld
        [...]
        DocumentRoot /var/www/html/subdomain2
        [...]
</VirtualHost>

Más tarde habilité cgi (cgid) por alguna razón. Desde entonces ese CGIse activapreguntando en algún camino domain.tld/a_path_for_a_cgi/. Hasta donde puedo ver, no depende de los subdominios configurados para las entradas de VirtualHost.

Me gustaría que eso estuviera deshabilitado para la mayoría de los subdominios:

subdomain1.domain.tld/a_path_for_a_cgi/ => disallow or not to find
subdomain2.domain.tld/a_path_for_a_cgi/ => disallow or not to find
subdomain3.domain.tld/a_path_for_a_cgi/ => allow

¿Es esto posible en el servidor Apache o debería bifurcar el escenario para tener dos servidores Apache? ¿Debería bifurcar el escenario de todos modos por seguridad ya que cgi se envió deshabilitado (Debian Stretch)?

Respuesta1

Si desea habilitar CGI solo en un archivo específico VirtualHost, mueva sus directivas específicas de cgi ( ScriptAliaso el <Directory/>bloque que contiene Options +ExecCGI, lo que esté configurado) desde la configuración del servidor principal al destino VirtualHost.

Por supuesto, el módulo mod_cgi(o mod_cgid) está activo en todos los vhosts si está habilitado en el servidor, pero no es necesario usarlo en todos los vhosts.

Es cierto que la mayoría de los módulos están deshabilitados de forma predeterminada por razones de seguridad y rendimiento, pero en mi opinión, no necesita configurar un segundo servidor solo porque necesita este módulo en un vhost. Debería ser suficiente si no puede ejecutar ningún script en los otros vhosts (falta ScriptAliaso ExecCGIacceso prohibido al script <Directory/>).

Enlaces:

información relacionada