
Quiero mejorar la seguridad de mi servidor web Apache.
Abierto:
/etc/apache2/conf.d/seguridad
Editar:
Producción de ServerTokens Firma del servidor desactivada
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 invlist
para 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 ifdefine
mensajes 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 -DDONTRUNMYBADCONFIG
estén en la línea de comando de Apache.
Puede agregarlo -DDONTRUNMYBADCONFIG
al /etc/init.d/apache2
script en la sección "confgitest" si lo desea, para poder ejecutarlo service httpd configtest
normalmente.