¿Dónde encuentro la declaración de configuración de Apache?

¿Dónde encuentro la declaración de configuración de Apache?

Quiero mejorar la seguridad de mi servidor web Apache.

  1. Abierto:

    /etc/apache2/conf.d/seguridad
  2. Editar:

    Producción de ServerTokens
    Firma del servidor desactivada
  3. Recargar/Reiniciar:

    /etc/init.d/apache2 recargar
    /etc/init.d/apache2 reiniciar

Los valores Prod y Off deberían estar bien, pero recibo estos errores:

ServerTokens toma un argumento, determina los tokens que se muestran en el servidor: encabezado: mínimo (imal), sistema operativo o completo
La acción 'configtest' falló.
ServerSignature toma un argumento, Activar/desactivar la firma del servidor (activado|desactivado|correo electrónico)
La acción 'configtest' falló.

¿Dónde encuentro la declaración de prueba de configuración de Apache para poder indicarle que acepte Prod y Off?

Solución del problema:

Tenía comentarios en línea en mi archivo de configuración, que no están permitidos.

Entonces NO hagas esto:

ServerTokens Prod # Añadido esto el 20/10/2012

En lugar de eso, hazlo de esta manera:

# Añadido esto el 20/10/2012:
Producción de ServerTokens

Sin embargo, los mensajes de error me confundieron, ya que solo tenían tres opciones (Min, OS y Full) y estaban todos en minúsculas (on|off|email) mientras que en el archivo de configuración había más opciones y ucfirst.

Respuesta1

Parece que estás usando un sistema Debian/Ubuntu o similar. Puedes ejecutar una prueba de configuración con

apache2ctl configtest

No puede cambiar su declaración para aceptar Prod (ya lo hace) y no debería ser necesario.

El mensaje de error es bastante claro. ServerTokens takes one argument ... Solo puedo recibir este mensaje de error si proporciono a la directiva ServerTokens más de un parámetro, por lo que

 ServerTokens Prod 1

falla de la misma manera que observas. Debe descubrir por qué sus directivas ServerTokens y ServerSignature tienen más de un parámetro. Lo primero que intentaría es cargar los archivos en vim y usarlos :set invlistpara mostrar los caracteres ocultos en su archivo.

Respuesta2

No estoy seguro de lo que quieres decir. apache2 configtest(en un cuadro Redhat) ejecuta apachectl. Si observa apachectl, que es el script proporcionado por Apache, básicamente ejecuta httpd -t.

Entonces, httpd en sí es lo que prueba la configuración cuando ejecuta una prueba de configuración.

Una forma de evitar esto sería poner algunos ifdefinemensajes negados alrededor de las estrofas de configuración ofensivas.

por ejemplo: en su archivo de configuración:

<ifdefine ! DONTRUNMYBADCONFIG >
ServerTokens Prod
ServerSignature Off
</ifdefine>

Entonces corre

httpd -t -DDONTRUNMYBADCONFIG

Para probar su configuración. Creo que todo lo demás se probará normalmente, pero esas dos directivas se ignorarán siempre que -DDONTRUNMYBADCONFIGestén en la línea de comando de Apache.

Puede agregarlo -DDONTRUNMYBADCONFIGal /etc/init.d/apache2script en la sección "confgitest" si lo desea, para poder ejecutarlo service httpd configtestnormalmente.

información relacionada