
Quero melhorar a segurança do meu servidor Apache.
Abrir:
/etc/apache2/conf.d/security
Editar:
Produção de ServerTokens Assinatura do servidor desativada
Recarregar/Reiniciar:
/etc/init.d/apache2 recarregar /etc/init.d/apache2 reiniciar
Os valores Prod e Off devem estar corretos, mas recebo estes erros:
ServerTokens leva um argumento, Determine os tokens exibidos no servidor: cabeçalho - Min(imal), OS ou Full A ação 'configtest' falhou.
ServerSignature recebe um argumento, Ativar/desativar assinatura do servidor (on|off|email) A ação 'configtest' falhou.
Onde encontro a declaração configtest do Apache, para que eu possa dizer para aceitar Prod e Off?
Solução do problema:
Eu tinha comentários embutidos em meu arquivo de configuração, que não são permitidos.
Então NÃO faça isso:
ServerTokens Prod # Adicionado em 20/10/2012
Em vez disso, faça desta forma:
# Adicionado em 20/10/2012: Produção de ServerTokens
Porém, as mensagens de erro me confundiram, pois tinham apenas três opções (Min, OS e Full) e estavam todas em letras minúsculas (on|off|email) enquanto no arquivo de configuração havia mais opções e ucfirst.
Responder1
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 Prod (já o faz) e não deveria ser necessário.
A mensagem de erro é bastante clara. ServerTokens takes one argument ...
Só posso receber esta mensagem de erro se fornecer à diretiva ServerTokens 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 usá- :set invlist
los para mostrar quaisquer caracteres ocultos em seu arquivo.
Responder2
Não tenho certeza do que você quer dizer.
apache2 configtest
(em uma caixa redhat) executa o apachectl. Se você olhar para o apachectl, que é um script fornecido pelo apache, ele está basicamente executando o 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 negated ifdefine
s em torno das estrofes de configuração ofensivas
por exemplo: No seu arquivo de configuração:
<ifdefine ! DONTRUNMYBADCONFIG >
ServerTokens Prod
ServerSignature Off
</ifdefine>
Então corra
httpd -t -DDONTRUNMYBADCONFIG
Para testar sua configuração. Acredito que todo o resto será testado normalmente, mas essas duas diretivas serão ignoradas enquanto -DDONTRUNMYBADCONFIG
estiverem na linha de comando do Apache.
Você pode adicionar -DDONTRUNMYBADCONFIG
o /etc/init.d/apache2
script na seção "confgitest" se desejar, para que ainda possa executar service httpd configtest
normalmente.