Apache 2.0 - Desabilitando os métodos HTTP TRACE e TRACK

3

Eu uso o Apache 2.0 como servidor HTTP e clientes HTTP baseados em Perl de finalidade específica. Até agora eu desabilitei os métodos TRACE e TRACK usando a seguinte configuração no arquivo httpd.conf:

RewriteEngine on

RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)

RewriteRule .* - [F]

Perguntas

1) Para aumentar o desempenho, posso substituir a configuração anterior pelo seguinte?

traceEnable off

2) O comando "traceEnable off" pode garantir que os métodos TRACE e TRACK sejam desativados?

3) Por fim, preciso anexar a configuração de desativação do TRACE / TRACK no arquivo httpd.conf, já que o servidor HTTP pode ser acessado apenas por clientes HTTP baseados em Perl?

    
por funk 07.10.2013 / 13:53

2 respostas

2
  1. De acordo com a documentação, o link TraceEnable Off desativará somente o HTTP Método TRACE. Não faz nada ao método TRACK.

  2. Veja 1.

  3. Se o seu servidor for público, provavelmente você deverá desabilitar esses métodos.

Além disso: como você parece ser paranóico (o que pode ser uma coisa boa !), eu atualizaria para uma versão posterior do Apache já que a versão final 2.0 foi feita e nenhum novo bugs - incluindo falhas de segurança serão corrigidos.

    
por 08.10.2013 / 10:39
4

Caso A: diretiva TRACE

Usando o comando "traceEnable on" no arquivo httpd.conf e executando o seguinte comando curl:

SITE=http://www.server.my; curl $SITE -X TRACE

A resposta é:

TRACE / HTTP/1.1 User-Agent: curl/7.29.0 Host: http://www.server.my Accept: */*

Por outro lado, se "traceEnable off" o comando anterior curl retornar:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /
on this server.</p>
<hr>
<address>Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.7d DAV/2 Server at http://www.server.my Port 80</address>
</body></html>

, o que significa que a diretiva TRACE enable está desativada. Então, acho que o comando "traceEnable off" está funcionando corretamente.

Caso B: diretiva TRACK

Usando o comando "traceEnable on" no arquivo httpd.conf e executando o seguinte comando curl:

SITE=http://www.server.my; curl $SITE -X TRACK

A resposta é:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>501 Method Not Implemented</title>
</head><body>
<h1>Method Not Implemented</h1>
<p>TRACK to / not supported.<br />
</p>
<hr>
<address>Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.7d DAV/2 Server at http://www.server.my Port 80</address>
</body></html>

Aqui está a conclusão do testcase anterior: 501 Method Not Implemented . Se você enviar uma solicitação TRACE para o Apache, ele retornará que este método não está implementado. Então, acho que não precisamos nos preocupar ... Isso é confirmado pelo próximo teste.

Se "traceEnable off", a solicitação TRACK anterior retorna a mesma mensagem "não implementada".

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>501 Method Not Implemented</title>
</head><body>
<h1>Method Not Implemented</h1>
<p>TRACK to / not supported.<br />
</p>
<hr>
<address>Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.7d DAV/2 Server at http://www.server.my Port 80</address>
</body></html>

De acordo com o link , embora o servidor apache não suporte o método TRACK nativamente, É possível que os módulos de plug-in forneçam suporte para isso. Para desabilitar esse recurso para módulos de plug-in, além de desabilitar o método TRACE, talvez tenhamos que desabilitar o método TRACK usando o módulo Rewrite.

Mas se você não instalar um plug-in TRACK no Apache, não haverá problemas de segurança. Esta suposição é válida?

    
por 10.10.2013 / 09:58