SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS Unidade Curricular – Redes III Prof. Eduardo Maroñas Monks Roteiro de Laboratório HTTP (HyperText Transfer Protocol) Objetivo: Utilizar e descrever as características de funcionamento dos protocolos HTTP/HTTPS e as suas aplicações. Ferramentas: Wireshark, Vmware Player, Putty, OpenSSH, WinSCP, Apache Web Server, Squid, CentOS, Windows XP, MS IIS, Httperf, Navegadores Diversos Introdução: Neste roteiro de laboratório, serão utilizados os protocolos HTTP/HTTPS e suas funcionalidades. O protocolo HTTP é atualmente o mais utilizado na Internet para serviços, perdendo para os protocolos P2P (Peer to Peer) em volume de dados trafegados (IPOQUE,2010). O HTTP é um protocolo universal, disponível em qualquer sistema operacional que suporte o TCP/IP. A forma de interação com o protocolo é por meio de navegadores (browsers) e servidores. Tanto os navegadores como os servidores estão disponíveis em todos os sistemas operacionais atuais. Tarefas: 1) Instalar o MS IIS (Internet Information Server) e o IIS6 Resource Kit, disponível em http://192.168.200.3/emmonks/redesiii/HTTP/iis60rkt.exe , na máquina virtual Windows XP. 2) Criar um diretório virtual senac no IIS apontando para o diretório c:\senac na máquina virtual (Painel de Controle->Ferramentas Administrativas->Internet Information Services). 1. Criar o subdiretório c:\senac\restrito. 2. Habilitar o HTTPS no servidor. Para isto, deve ser utilizada a ferramenta selfssl disponível no IIS6 Resource Kit. 3. Modificar o arquivo padrão para index.html no diretório virtual senac 4. Ativar a autenticação de usuário no diretório restrito. 5. Modificar as páginas de erros 403, 401 e 404 que deverão conter imagens. Em Faculdade de Tecnologia SENAC PELOTAS Credenciado pela Portaria nº 3.071, de 01 de outubro de 2004. Rua Gonçalves Chaves, 602 A – Centro. CEP 96015-560. Pelotas/RS–Brasil. Fone (053)3225-6918 - www.senacrs.com.br 1 SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS c:\windows\help\iishelp podem ser encontrados as páginas de erro padrão para serem editadas. 6. Trocar a porta de escuta 80 do servidor, para a porta 8900. 7. Criar um diretório virtual meudrivec apontando para c:\ e habilitar a visualização de arquivos do diretório. 8. Utilizar a ferramenta de análise de logs Deep Log Analyzer (http://192.168.200.3/emmonks/redesiii/HTTP/dlafree.exe) para gerar relatórios de acesso do servidor. Os arquivos de logs estão disponíveis em c:\windows\system32\logfiles\W3SVC1 3) Na máquina virtual WindowsXP, instalar os seguintes navegadores: 1. Mosaic – Disponível em: http://192.168.200.3/emmonks/redesiii/HTTP/Navegadores/ncsamosaicv1_0.zip 2. SpyGlass (precursor do IE) - Disponível em: http://192.168.200.3/emmonks/redesiii/HTTP/Navegadores/sm211_5.zip 3. Netscape Navigator - Disponível em: http://192.168.200.3/emmonks/redesiii/HTTP/Navegadores/n32e407.exe 4. Amaya - Disponível em: http://192.168.200.3/emmonks/redesiii/HTTP/Navegadores/amaya-WinXP-11.3.1.exe 5. Google Chrome - Disponível em: http://192.168.200.3/emmonks/redesiii/HTTP/Navegadores/ChromeSetup.exe 6. Apple Safari - Disponível em: http://192.168.200.3/emmonks/redesiii/HTTP/Navegadores/SafariSetup.exe 7. Opera - Disponível em: http://192.168.200.3/emmonks/redesiii/HTTP/Navegadores/Opera_951_in_Setup.exe 8. SeaMonkey - Disponível em: http://192.168.200.3/emmonks/redesiii/HTTP/Navegadores/SeaMonkey Setup 2.0.7.exe 1. Acessar o servidor IIS do colega com cada um dos navegadores e utilizar a ferramenta Wireshark para capturar os cabeçalhos com a descrição de cada agente (browser). 2. Acessar com os navegadores Mosaic, SpyGlass e Netscape Navigator os sites http://www.terra.com.br, http://www.microsoft.com, http://www.google.com e http://192.168.200.3/ e http://192.168.200.3/wiki/ Faculdade de Tecnologia SENAC PELOTAS Credenciado pela Portaria nº 3.071, de 01 de outubro de 2004. Rua Gonçalves Chaves, 602 A – Centro. CEP 96015-560. Pelotas/RS–Brasil. Fone (053)3225-6918 - www.senacrs.com.br 2 SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS 3. Utilizar o cliente de HTTP wget, disponível em http://192.168.200.3/emmonks/redesiii/HTTP/Navegadores/wget.exe, para acessar os mesmos sites da tarefa anterior. 4. Comente a respeito dos resultados obtidos utilizando um navegador e um cliente de HTTP para acesso a estes sites. 5. Apontar os principais avanços da tecnologia de navegadores, comparando Mosaic e o Opera Browser. 4) Ativar o repositório Rpmforge na máquina virtual CentOS e instalar o Apache Web Server, o Squid Proxy/Cache, a ferramenta Httperf e a ferramenta Awstats. 1. Modificar no arquivo /etc/httpd/conf/httpd.conf, as seguintes diretivas: 1. AllowOverride none → AllowOverride All (Para habilitar o uso de autenticação) 2. UTF-8 → ISO-8859-1 (Para possibilitar a acentuação nas páginas HTML) 3. Recarregar as configurações do Apache: /etc/init.d/httpd reload 2. Criar os diretórios /var/www/senac, /var/ww/senac/erros, /var/ww/senac/sarg, /var/ww/senac/imagens e /var/ww/senac/restrito 3. Copiar o arquivo de /etc/httpd/conf.d/senac.conf configuração /etc/httpd/conf.d/webalizer.conf para 4. Editar o arquivo /etc/httpd/conf.d/senac.conf e fazer as seguintes alterações: 5. Criar um arquivo index.html em /var/www/senac que mostre links para os diretórios erros, imagens, restrito, mirror e sarg e alguma imagem (use a sua criatividade!). Um exemplo de como deverá ficar a página: Faculdade de Tecnologia SENAC PELOTAS Credenciado pela Portaria nº 3.071, de 01 de outubro de 2004. Rua Gonçalves Chaves, 602 A – Centro. CEP 96015-560. Pelotas/RS–Brasil. Fone (053)3225-6918 - www.senacrs.com.br 3 SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS 6. Copiar duas imagens no diretório /var/www/senac/imagens para serem apresentadas quando houverem os erros 404 e 403 no diretório /senac. 7. Criar os arquivos em HTML 403.html e 404.html, no diretório /var/www/senac/erros e utilizar as imagens disponíveis em /var/www/senac/imagens para incrementar a página. 8. Criar o diretório /etc/senhas e um arquivo /etc/senhas/senac com o utilitário do Apache htpasswd da seguinte forma: 1. htpasswd -c /etc/senhas/senac admin (Será criado o usuário admin. Quando pedir a senha colocar senac2010) 2. Criar um segundo usuário visitante e senha 2010senac. 1. Atenção: Para criar mais de um usuário, deverá ser usado o comando sem o parâmetro -c. 9. No diretório /var/www/senac/restrito deverá ser criado o arquivo que possibilitará a solicitação de usuário e senha quando acessado. O nome do arquivo deverá ser .htaccess (definido no arquivo /etc/httpd/conf/httpd.conf por padrão)e o formato segue o exemplo da figura abaixo: Faculdade de Tecnologia SENAC PELOTAS Credenciado pela Portaria nº 3.071, de 01 de outubro de 2004. Rua Gonçalves Chaves, 602 A – Centro. CEP 96015-560. Pelotas/RS–Brasil. Fone (053)3225-6918 - www.senacrs.com.br 4 SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS Ao acessar o link /senac/restrito deverá aparecer a seguinte mensagem: 10. No diretório /var/www/senac/mirror, deverá ser feito um espelho do site do colega. Utilizando o cliente de HTTP wget, faça o espelhamento de dois sites de colegas. Crie um arquivo index.html dentro do diretório /var/www/senac/mirror para apontar para os sites que foram espelhados para o seu servidor. 1. Exemplo de uso do wget para espelhamento do diretório senac no servidor com o IP 192.168.200.56: wget -r http://192.168.200.56/senac/ 2. Fazer um espelhamento das fotos disponíveis no servidor Mussum no endereço http://192.168.200.3/fotos/ para o diretório diretório /var/www/senac/erros do seu servidor. 5) O serviço de HTTPS deve ser ativado no CentOS, instalado o módulo SSL no Apache. Para que este mecanismo funcione corretamente é necessária a a utilização de um certificado. O certificado pode ser fornecido por uma entidade certificadora tal como a Verisign (http://www.verisign.com.br/) ou RapidSSL (http://www.rapidssl.com/), que tornam o registro legítimo ou pode-se usar um certificado auto-assinado. A criptografia será aplicada em ambos os casos, entretanto, com o certificado pago o site é reconhecido como legítimo. 1. Instalar o módulo SSL com o comando yum install mod_ssl 2. Para gerar um certificado auto-assinado no Apache 2, devem ser feitos os seguintes procedimentos com o utilitário openssl: 1. Para criar a chave privada de 1042 bits usando algoritmo RSA. (Arquivo gerado: senac.key): openssl genrsa -out senac.key 1024 2. Para gerar o arquivo CSR. Na figura, um exemplo de preenchimento dos dados requisitados, não utilizar senha no certificado (challenge password). (Arquivo gerado: senac.csr): openssl req -new -key senac.key -out senac.csr Faculdade de Tecnologia SENAC PELOTAS Credenciado pela Portaria nº 3.071, de 01 de outubro de 2004. Rua Gonçalves Chaves, 602 A – Centro. CEP 96015-560. Pelotas/RS–Brasil. Fone (053)3225-6918 - www.senacrs.com.br 5 SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS 3. Para auto-assinar o certificado, que valerá por 365 dias (Arquivo gerado: senac.crt): openssl x509 -req -days 365 -in senac.csr -signkey senac.key -out senac.crt 4. Depois de criados os arquivos, copiá-los conforme as instruções abaixo: 1. Copiar o arquivo senac.crt para /etc/pki/tls/certs 2. Copiar o arquivo senac.csr para /etc/pki/tls/certs 3. Copiar o arquivo senac.key para /etc/pki/tls/private/ 5. Editar o arquivo /etc/httpd/conf.d/ssl.conf e modificar as seguintes linhas: 1. SSLCertificateFile /etc/pki/tls/certs/senac.crt 2. SSLCertificateKeyFile /etc/pki/tls/private/senac.key 6. Reiniciar o servidor Apache e acessar o site senac no seu servidor utilizando HTTPS. Exemplo: https://192.168.200.56/senac/ 1. Observar o certificado que foi gerado para o servidor. 7. Copiar um arquivo de 5MB para o diretório /senac no seu servidor. 8. Utilizar a ferramenta Wireshark e comparar os tempos de download do arquivo usando o http e o https. 6) O arquivo de configuração principal do servidor Apache é o httpd.conf. No CentOS, este arquivo fica em /etc/httpd/conf/httpd.conf. Neste arquivo é possível trocar a porta de escuta do servidor, modificar o caminho e o formato dos arquivos de logs, criar hosts virtuais e etc.. 1. Trocar a porta de escuta do servidor de 80 para 8080. 2. Adicionar o nome de arquivo index.mussum como índice de diretório no Apache (o nome da diretiva é DirectoryIndex Faculdade de Tecnologia SENAC PELOTAS Credenciado pela Portaria nº 3.071, de 01 de outubro de 2004. Rua Gonçalves Chaves, 602 A – Centro. CEP 96015-560. Pelotas/RS–Brasil. Fone (053)3225-6918 - www.senacrs.com.br 6 SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS 1. Criar um arquivo HTTML com o nome de index.mussum no diretório /var/www/senac/erros e verificar o efeito. 7) Para testar a persistência nas requisições dos clientes, desativar a diretiva KeepAlive no arquivo /etc/httpd/conf/httpd.conf. 1. Com o KeepAlive desativado, utilizar a ferramenta Wireshark para analisar o comportamento da requisição do espelhamento das fotos do Mussum feito em tarefa anterior. 2. Reativar o KeepAlive, e analisar o comportamento com a ferramenta Wireshark da requisição do espelhamento das fotos. 1. Modificar os valores das diretivas relacionadas ao KeepAlive e observar a influência disto na requisição da página com fotos. 1. MaxKeepAliveRequests 300 (Descrição: O número máximo de requisições permitidas durantes uma conexão persistente. O valor 0 permite quantidade ilimitada) 2. KeepAliveTimeout 15 (Descrição: Número de segundos para esperar até a próxima requisição do mesmo cliente na mesma conexão). 8) Os arquivos de logs são muito importante em qualquer tipo de serviço que envolva múltiplos usuários. No caso do servidor Apache no CentOS, os arquivos de logs ficam armazenados em /var/log/httpd e este local pode ser modificado pelos arquivos de configuração. Existem diversas ferramentas para análise de logs para Linux. Nesta tarefa, a ferramenta a ser utilizada é a Awstats. 1. Esta ferramenta está disponível no repositório RPMForge 2. Para instalar a ferramenta: yum install awstats 3. Copiar o arquivo /etc/awstats/awstats.conf de modelo /etc/awstats/awstats.model.conf para 4. Editar o arquivo /etc/httpd/conf.d/awstats.conf para permitir acesso ao IP do seu navegador. 5. Para rodar a análise dos -awstatsprog=/var/www/awstats/awstats.pl now logs: awstats_updateall.pl 6. Para acessar os resultados, acessar o página /awstats/awstats.pl do seu servidor. 9) Um servidor de páginas pode armazenar diversos sites diferentes. Por exemplo, um mesmo servidor de páginas poderia armazenar os sites http://www.mussum.com.br, http://www.dede.com.br, http://www.didi.com.br e http://www.zacarias.com.br. Todos estes nomes apontariam para o mesmo IP. A diferenciação para qual site direcionar a requisição á Faculdade de Tecnologia SENAC PELOTAS Credenciado pela Portaria nº 3.071, de 01 de outubro de 2004. Rua Gonçalves Chaves, 602 A – Centro. CEP 96015-560. Pelotas/RS–Brasil. Fone (053)3225-6918 - www.senacrs.com.br 7 SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS feita pelo servidor de páginas por meio dos cabeçalhos do HTTP. No Apache, esta configuração tem o nome de Virtual Hosts. 1. Na máquina virtual Windows XP, editar o arquivo c:\windows\system32\drivers\etc\hosts e apontar os nomes www.didi.com.br, www.dede.com.br, www.mussum.com.br e www.zacarias.com.br para o IP do seu servidor CentOS. Isto será uma simulação do serviço de DNS. Na figura abaixo, um exemplo do formato do arquivo hosts para o IP 192.168.200.56: 2. No servidor Apache, criar os seguintes diretórios e adicionar um arquivo index.html em cada um com uma imagem relacionada ao personagem do site: 1. /var/www/didi 2. /var/www/dede 3. /var/www/mussum 4. /var/www/zacarias 3. Criar o arquivo /etc/httpd/conf.d/virtuais.conf contendo as configurações dos domínios virtuais para cada um dos sites requisitados. Na figura abaixo, um exemplo para o site www.didi.com.br: 4. Utilizar os navegadores da máquina virtual WindowsXP para acessar os domínios virtuais criados. 5. Verificar nos arquivos de logs de cada Virtual Host os acessos feitos. 10) A utilização de Proxy/Cache HTTP é bastante comum em redes corporativas devido a otimização e ao melhor controle do link de acesso à Internet. O Proxy/Cache tem duas funções básicas que são a filtragem de conteúdo e o armazenamento em disco fazendo cache dos objetos HTTP acessados pelos usuários. A implementação de Proxy/Cache mais comum atualmente é o Squid. 1. Instalar o Proxy/Cache Squid com o comando yum install squid 2. Ativar o Squid no CentOS, com o comando /etc/init.d/squid start Faculdade de Tecnologia SENAC PELOTAS Credenciado pela Portaria nº 3.071, de 01 de outubro de 2004. Rua Gonçalves Chaves, 602 A – Centro. CEP 96015-560. Pelotas/RS–Brasil. Fone (053)3225-6918 - www.senacrs.com.br 8 SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS 3. Utilizar o arquivo exemplo de configuração disponível em http://192.168.200.3/emmonks/redesiii3/Pratica2/squid.conf. Para ativá-lo, transferir o arquivo para /etc/squid/squid.conf e executar a reconfiguração do Squid com o comando: squid -k reconfigure 4. Editar o arquivo /etc/squid/squid.conf e modificar as ACLS (Access Control Lists) para o proxy funcionar na rede do laboratório. 5. Verificar o arquivo de logs, com o comando tail -f /var/log/squid/access.log, para saber se o Squid está funcionando de acordo com a configuração pretendida. 6. Explorar as listas de acesso do arquivo de configuração para adicionar sites, palavras e tipos de arquivos a serem filtrados pelo proxy. 7. Instalar a ferramenta SARG de análise de logs para o Squid: 1. Pré-requisito (biblioteca gráfica GD): yum install gd 2. Copiar para o CentOS o arquivo do Sarg, disponível em http://192.168.200.3/emmonks/redesiii3/Pratica2/sarg-2.3.1-1.el6.rft.i686.rpm 3. Instalar o SARG: rpm -iv sarg-2.3.1-1.el6.rft.i686.rpm 8. Editar o arquivo /etc/sarg/sarg.conf e modificar a seguinte diretiva: output_dir /var/www/senac/sarg/ 9. Executar a ferramenta SARG em linha de comando, sarg, e verificar no diretório /senac/sarg/ os relatórios de acesso do Squid. 11) Uma das formas mais comuns de ataques a serviços de páginas é a negação de serviço (DOS – Denial of Service). Neste tipo de ataque, são geradas milhões de requisições não legítimas de acesso ao servidor o que acaba ocasionando a negação de serviço para qualquer novo cliente. A ferramenta Httperf tem a função de estressar o servidor de páginas por meio de parâmetros que podem ser passados em linhas de comando. 1. Instalar o Httperf no CentOS : yum install httperf 2. Por padrão, o httperf executa com estes parâmetros: 3. Para apontar para o servidor de IP 192.168.200.56, no diretório /senac, gerando 200 conexões simultâneas o comando seria o seguinte: httperf –server=192.168.200.56 --uri=/senac --num-conns=200 4. Disparar o Httperf para os servidores Windows e Linux dos colegas e observar os relatórios da ferramenta. No seu servidor, observar os arquivos de log. Faculdade de Tecnologia SENAC PELOTAS Credenciado pela Portaria nº 3.071, de 01 de outubro de 2004. Rua Gonçalves Chaves, 602 A – Centro. CEP 96015-560. Pelotas/RS–Brasil. Fone (053)3225-6918 - www.senacrs.com.br 9 SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS Referências: • Material no servidor Mussum • IPOQUE (2010). Internet Study 2008/2009. Disponível em: http://www.ipoque.com/resources/internet-studies/internet-study-2008_2009 • SCHRODER, Carla. Linux: Livro de Receitas. Alta Books, 2008. • MORIMOTO, Carlos. Servidores Linux – Guia Prático. GDH Press e Sul Editores , 2008. • HUSTON, Geoff. Web Caching.Disponível em: http://www.cisco.com/web/about/ac123/ac147/ac174/ac199/about_cisco_ipj_archive_articl e09186a00800c8903.html • GITE, Vitek. How To Lighttpd Create Self Signed SSL Certificates. Disponível em: http://www.cyberciti.biz/tips/howto-lighttpd-create-self-signed-ssl-certificates.html • ALVES, Thiago. Ativando SSL no Apache 2. Disponível em: http://www.vivaolinux.com.br/dica/Ativando-SSL-no-Apache-2/ • SQUID. Disponível em: http://www.squid-cache.org/ • HTTPERF. Disponível em:http://www.hpl.hp.com/research/linux/httperf/ • SARG. Disponível em: http://sarg.sourceforge.net/ • AWSTATS. Disponível em: http://awstats.sourceforge.net/ • APACHE. Disponível em: http://www.apache.org/ • MS IIS. Disponível em: http://www.iis.net/ • DEEP LOG ANALYZER. Disponível em: http://www.deep-software.com/ Faculdade de Tecnologia SENAC PELOTAS Credenciado pela Portaria nº 3.071, de 01 de outubro de 2004. Rua Gonçalves Chaves, 602 A – Centro. CEP 96015-560. Pelotas/RS–Brasil. Fone (053)3225-6918 - www.senacrs.com.br 10