Este log do servidor pode significar que meu servidor está sendo usado como um proxy?

6

Me deparei com a seguinte entrada no meu access.log:

58.218.199.147 - - [05/Jun/2012:12:56:04 +1000] "GET http://proxyproxys.com/ HTTP/1.1" 200 183 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"

Normalmente, quando vejo uma entrada de URL completa no meu access.log, presumo que seja spam de log com pessoas que tentam me acessar o site. Essas entradas são normalmente seguidas com uma resposta 404.

A entrada acima é seguida com uma resposta de 200 'sucesso'! Fazendo algumas pesquisas, parece que isso pode ocorrer quando alguém está tentando usar seu servidor como um proxy. Isso me incomodou mais - especialmente porque a URL em questão tem a palavra proxy nela.

Indo para o site 'proxyproxys.com' (usando hidemyass.com para proteger minha própria identidade), o site retorna o que parece ser algum tipo de 'juiz de procuração'

----------------------------------------
HTTP_ACCEPT=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_ACCEPT_LANGUAGE=en-US,en;q=0.8
HTTP_USER_AGENT=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.53 Safari/536.5
HTTP_CONNECTION=close
REMOTE_PORT=56355

REMOTE_HOST=74.63.112.142
REMOTE_ADDR=74.63.112.142
----------------------------------------
CS_ProxyJudge Result=HIGH_ANONYMITY
----------------------------------------

Pergunta: 1) o 200 sucesso significa que alguém conseguiu sucesso usar meu servidor como proxy? 2) existem outros meios de confirmar se meu servidor está sendo usado como proxy 3) você pode me encaminhar para a documentação para ajudar a "fechar" minha lacuna de segurança se houver uma?

Obrigado.

    
por So Over It 05.06.2012 / 17:39

3 respostas

4

Uma maneira fácil de testar isso é configurar seu navegador para usar seu servidor da web como proxy. Qualquer domínio que aponta lá fará ou o endereço IP bruto. Escolha a porta 80 se ela pedir uma porta.

Se você ainda pode navegar na web e ver sua navegação aparecendo nos seus registros de acesso, sim, você está executando um proxy aberto.

    
por 05.06.2012 / 17:54
3

Isso aconteceu comigo também, encontrei algo interessante em documentos para o apache

My server is properly configured not to proxy, so why is Apache returning a 200 (Success) status code?

That status code indicates that Apache successfully sent a response to the client, but not necessarily that the response was retrieved from the foreign website.

RFC2616 section 5.1.2 mandates that Apache must accept requests with absolute URLs in the request-URI, even for non-proxy requests. This means that even when proxying is turned off, Apache will accept requests that look like proxy requests. But instead of retrieving the content from the foreign site, Apache will serve the content at the corresponding location on your website. Since the hostname probably doesn't match a name for your site, Apache will look for the content on your default host.

In the above example, since www.yahoo.com is obviously not a valid virtual host on your system, Apache will serve the homepage content from your default (virtual) host. The size of the response (1456 in the above example) can be compared to the size of the corresponding page on your default site to confirm that the response was served locally and no proxying was involved.

Como este parece ser um comportamento requerido pelo padrão, eu assumo que o nginx está fazendo algo similar. No meu caso, uma vez que ele está retornando a minha home page eu acho que está "falhando com sucesso", portanto, o código 200.

    
por 25.11.2012 / 12:23
1

Uma resposta de sucesso de 200 a uma solicitação significa apenas que seu servidor da Web acredita que ela forneceu uma resposta válida para a solicitação determinada. A entrada do log de solicitações que você vê significa apenas que alguém fez uma conexão HTTP com seu servidor e solicitou o (relativo) url http://proxyproxys.com/ .

Isso pode acontecer se alguém digitar incorretamente um URL: por exemplo, se eu estiver navegando http://www.google.com/ e de repente quiser ir para http://www.facebook.com , é possível eu esquecer de limpar a barra de URL no meu navegador e acabar navegando até http://www.google.com/http://www.facebook.com . O Google veria então uma solicitação de GET para http://www.facebook.com em seus registros. Normalmente, você exibe um erro 404 nesses casos, mas pode haver peculiaridades em sua configuração, o que significa que 200 é retornado, por qualquer motivo. A coisa mais fácil de fazer seria testar você mesmo, contra o seu próprio servidor. Navegue até http://[your-domain]/http://proxyproxys.com e veja o que é gerado no log de acesso.

Eu aposto que é difícil fazer com que um servidor típico como o nginx se comporte como um proxy de internet genérico, a menos que você configure especificamente um script ou outro aplicativo para se comportar dessa maneira. Não há nada na sua pergunta que me leve a acreditar que isso tenha acontecido, mas vale a pena ficar de olho em scripts / processos suspeitos / alterações na configuração. Se você tiver evidências razoáveis para suspeitar que seu servidor foi adulterado, coloque-o offline, limpe-o e restaure a partir do backup.

    
por 05.06.2012 / 17:51