User Tools

Site Tools


cursos:if68e:proxy

Servidor Proxy HTTP

Os servidores proxy são usados tanto para fins legais e ilegais. Na empresa, um servidor proxy é usado para facilitar a segurança, serviços de controle ou de cache administrativos, entre outros fins. Em um contexto de computação pessoal, servidores proxy são usados para ativar a privacidade do usuário e navegação anônima. Os servidores proxy pode também ser utilizado para a finalidade contrária: monitorizar o tráfego e prejudicar a privacidade do usuário .

Para o usuário, o servidor proxy é invisível; todos as requisições para a Internet e respostas parece ser diretamente com o servidor Internet. (O proxy não é realmente invisível, normalmente seu endereço IP tem de ser especificado como uma opção de configuração para o navegador ou outro programa de protocolo.)

Este trabalho tem a finalidade de trazer o conhecimento do mecanismo de funcionamento do proxy.

Fluxo do trabalho:

  1. Configurar o servidor proxy
  2. No browser :
    1. Acessar um site
  3. No servidor TCP
    1. Aceita conexão do browser
    2. cria uma thread com a conexão do browser
      1. Na thread:
      2. Recebe requisição HTTP (do browser)
      3. armazena a requisição em um bloco de Bytes.
      4. Verifica se contem “monitorando”
        1. se sim: devolve pagina padrão com código HTML com mensagem de proibição
        2. finaliza conexão com o Browser
        3. Finaliza thread.
      5. senão:
        1. extrai o endereço do servidor requisitado(pelo browser).
        2. abre uma conexão com o servidor requisitado
        3. Repassa a requisição para o servidor
        4. Recebe a resposta do servidor
        5. envia a resposta do servidor para Browser.
        6. quando fechar a conexão com o servidor finaliza conexão com o Browser
        7. Finaliza thread.

O trabalho deve:

  1. Usar Sockets TCP Multi-thread
    1. Cliente e Servidor
  2. Receber requisições HTTP do Cliente
    1. Colocar no browser o servidor proxy como endereço onde roda o proxy (127.0.0.1 - local host)
  3. Enviar as requisições para o servidor
  4. Receber as resposta do servidor e repassar para o cliente
  5. Caso o nome do objeto requisitado contenha a palavra “monitorando” deve ser devolvido uma Pagina HTML com a mensagem “Acesso não autorizado!” - e mensagem deve ser gravada em um servidor SysLog em outra maquina (diferente da local Host)
  6. Fazer verificação de integridade do código.
  7. apresentar no proxy e no SysLog as informações:
    1. endereço IP do cliente e do servidor de cada requisição
    2. Código da resposta (Ex: 200 OK)
  • Este trabalho deverá ser defendido para o professor nas aulas definidas para este propósito para validar a nota.
  • O aluno deve usar a biblioteca SysLog para armazenar paginas acessadas e negadas.
    • Servidor SysLog deve estar em outra maquina.
  • O aluno deve fazer uma verificação de integridade antes do proxy executar e guardar armazenar no servidor SysLog.
    • Para agilizar a verificação de integridade são utilizadas somas de verificação (checksums) ou resumos criptográficos como o MD5 e SHA.
Veja o exemplo de uma página HTML simples:
<HTML> 
 <HEAD> 
  <TITLE>Título da página</TITLE> 
 </HEAD> 
     
 <BODY> 
  Conteúdo da página 
 </BODY> 
</HTML>
Requisições HTTP :
     
   GET /pagina.html HTTP/1.0
   Host: www.UTFPR.edu.br
   Accept: text/plain; text/html 
   Accept-Language: en-gb 
   Connection: Keep-Alive 
   Host: localhost 
   Referer: http://localhost/ch8/SendDetails.htm 
   User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98) 
   Content-Length: 33 
   Content-Type: application/x-www-form-urlencoded 
   Accept-Encoding: gzip, deflate 

Respostas HTTP:

  HTTP/1.1 200 OK
  Server: Microsoft-IIS/4.0
  Date: Mon, 3 Jan 2016 17:13:34 GMT
  Content-Type: text/html
  Last-Modified: Mon, 11 Jan 2016 17:24:42 GMT
  Content-Length: 112
  <html>
  <head>
    <title>Exemplo de resposta HTTP </title>
  </head>
    <body>
    Acesso não autorizado!
    </body>
  </html>
cursos/if68e/proxy.txt · Last modified: 2023/09/04 18:47 by fonseca