Onde encontro a declaração de configuração do Apache?

4

Eu quero melhorar a segurança do meu servidor web Apache.

  1. Aberto:

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

    ServerTokens Prod
    ServerSignature Off
  3. Recarregar / Reiniciar:

    /etc/init.d/apache2 reload
    /etc/init.d/apache2 restart

Os valores Prod e Off devem estar bem, mas recebo esses erros:

ServerTokens takes one argument, Determine tokens displayed in the Server: header - Min(imal), OS or Full
Action 'configtest' failed.
ServerSignature takes one argument, En-/disable server signature (on|off|email)
Action 'configtest' failed.

Onde eu encontro a declaração de configuração do Apache, então posso dizer para aceitar Prod e Off?

Solução do problema:

Eu tinha comentários in-line no meu arquivo de configuração, o que não é permitido.

NÃO faça isso:

ServerTokens Prod # Added this on 10/20/2012

Em vez disso, faça assim:

# Added this on 10/20/2012:
ServerTokens Prod

No entanto, as mensagens de erro me confundiram, pois tinham apenas três opções (Min, OS e Full) e eram todas minúsculas (on | off | email) enquanto no arquivo de configuração havia mais opções e primeiras.

    
por user1438038 20.10.2012 / 21:40

2 respostas

4

Parece que você está usando um sistema Debian / Ubuntu ou similar. Você pode executar um configtest com

apache2ctl configtest

Você não pode alterar sua declaração para aceitar o Prod (já faz) e você não precisa fazer isso.

A mensagem de erro é bastante clara ServerTokens takes one argument ... Eu só posso receber essa mensagem de erro se eu fornecer a diretiva ServerTokens com mais de um parâmetro, então

 ServerTokens Prod 1

falha da mesma maneira que você observa. Você precisa descobrir por que suas diretivas ServerTokens e ServerSignature têm mais de um parâmetro. A primeira coisa que eu tentaria é carregar os arquivos no vim e usar :set invlist , que mostrará todos os caracteres ocultos no seu arquivo.

    
por 22.10.2012 / 22:58
0

Não tenho certeza do que você quer dizer. apache2 configtest (em uma caixa de redhat) executa o apachectl. Se você olhar para o apachectl, que é um script fornecido pelo apache, ele está rodando httpd -t.

Então o próprio httpd é o que está testando a configuração quando você executa um configtest.

Uma maneira de contornar isso seria colocar alguns ifdefine s negados em torno das sub-rotinas de configuração offeneding

por exemplo: No seu arquivo de configuração:

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

Em seguida, execute

httpd -t -DDONTRUNMYBADCONFIG

Para testar sua configuração. Acredito que todas as outras coisas serão testadas normalmente, mas essas duas diretivas serão ignoradas, contanto que -DDONTRUNMYBADCONFIG esteja na linha de comando do apache.

Você pode adicionar o -DDONTRUNMYBADCONFIG ao script /etc/init.d/apache2 na seção "confgitest", se quiser, e ainda poderá executar service httpd configtest normalmente.

    
por 22.10.2012 / 07:39

Tags