Baixe o app para aproveitar ainda mais
Prévia do material em texto
AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet SERVIDORES PARA INTERNET Aula 11: Serviços para intranet e internet 3 AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Conteúdo desta aula INTRODUÇÃO 1 SERVIDORES WEB 3 PRÓXIMOS PASSOS O HTTP 2 VIRTUAL HOSTS 4 IMPLEMENTANDO SEGURANÇA 5 AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Introdução A Web começou em 1989, no Centro Europeu de Pesquisa Nuclear (CERN), em Genebra, Suíça. Seu principal desenvolvedor foi Tim Berners-Lee, também criador do HTML. A complexidade das tecnologias vem crescendo a cada ano, a hospedagem Web pode ser realizada utilizando diferentes plataformas (SOs, Virtualização, Cloud, ...), no entanto, o conceito central é semelhante. Servidores web (também conhecidos como servidores HTTP) são os responsáveis por processar requisições HTTP (Hypertext Transfer Protocol) que, por sua vez, são as responsáveis pela troca de solicitações de páginas de internet entre um usuário e um servidor web. AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Introdução – Servidores WEB A WWW é baseada em relacionamento cliente/servidor. • Cliente: Navegador Web (Browser); • Servidor: Acesso via HTTP/HTTPS (Protocolo). O serviço é executado no servidor, em uma porta predeterminada. Sempre que um cliente realizar uma requisição naquela porta, o servidor responde de forma adequada. O servidor, ao iniciar o serviço, fica aguardando requisições de usuários. AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Introdução – Servidores WEB Um servidor pode hospedar uma ou mais páginas de internet, incluindo páginas de uso interno como por exemplo uma intranet. Em alguns casos, ele também armazena um servidor de banco de dados que armazenará as informações utilizadas por formulários do website. AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet HTTP (HyperText Transfer Protocol) É um protocolo cliente-servidor assimétrico. O cliente requisita informações do servidor (ao invés do servidor fazer o “push” de informações para o cliente). HTTP Request Message HTTP Response Message Clientes HTTP (Web Browser) Web Server Serviço HTTP porta 80/TCP AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet HTTP (HyperText Transfer Protocol) O HTTP opera na porta 80/TCP por padrão, no entanto, pode atender serviços HTTP em outras portas (1024-65535), como 8080, por exemplo. Já o HTTPS (SSL/TLS) opera na porta 443/TCP. AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidores WEB (1) Usuário acessa o http://portal.estacio.br) Web Server Serviço HTTP porta 80/TCP (2) Browser faz requisição ao servidor (3) Servidor mapeia a URL solicitada em um arquivo ou software (local ou remoto) de acordo com as configurações do serviço (4) Servidor responde a requisição (5) Browser formata a resposta e exibe ao usuário AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Topologia comum de um servidor web IP (.2) IP (.3) IP Virtual (.1) Serviço WEB + Aplicação (PHP, Java, ...) IP (.12) IP (.13) IP Virtual (.10) Serviço Banco de dados http://app.empresa.com.br DNS HTTP 80/TCP app.empresa.com.br Consulta ao BD AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet HTTP – URL (Uniform Resouce Locators) Um URL (Uniform Resource Locator), definido no RFC 2396, é usado para identificar de forma exclusiva um recurso na Web. O URL possui a seguinte sintaxe: • Protocolo: protocolo de camada de aplicação utilizado pelo cliente e servidor, por exemplo, HTTP, FTP e telnet; • Nome do host: o nome do domínio DNS (por exemplo, www.estacio.br) ou o endereço IP (por exemplo, 192.128.1.2) do servidor; • Porta: o número da porta TCP em que o servidor está ouvindo as solicitações recebidas dos clientes; • Path-and-file-name: O nome e a localização do recurso solicitado, no diretório base do documento do servidor. Protocolo: // hostname: port / path-and-file-name AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet HTTP – URL (Uniform Resouce Locators) Exemplo URL URL: http://inscricoes.estacio.br/novo/index.html Protocolo: o protocolo de comunicação é HTTP. Nome do host: inscrições.estacio.br. Porta: O número da porta não foi especificado no URL e assume o número padrão, que é a porta TCP 80 para HTTP. Path: O caminho e o nome do arquivo para o recurso a ser localizado é "/novo/index.html“. AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet HTTP – Tipos de URL URL Protocolo Servidor Domínio Porta Path Recurso http://www.estacio.br/faleconosco.php http www estacio.br 80 (padrão) / faleconosco.php http://www.estacio.br/docs/redes/calendario2017.pdf http www estacio.br 80 (padrão) /docs/redes calendario2017.p df ftp://docentes.estacio.br/~professor/aula01.pdf ftp docentes estacio.br 21 (padrão) /~professor aula01.pdf https://redes.estacio.br:8080/index.html https redes estacio.br 443 (padrão) / index.html AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet HTTP – Principais métodos GET busca um objeto definido em um URL. PUT indica os dados que devem ser armazenados na URL. POST cria um novo objeto ligado a um objeto especificado na URL. HEAD similar ao GET, retorna apenas o cabeçalho do servidor. DELETE solicita a remoção da informações especificada na URL. AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet HTTP – Códigos de retorno Os códigos de retorno HTTP são números com 3 dígitos que possuem um formato que auxilia na identificação do tipo de retorno. Os formatos e os respectivos tipos de retorno são: • 1xx (códigos iniciados em "1") – Resultados Informativos. • 2xx (códigos iniciados em "2") – Resultados de Sucesso. • 3xx (códigos iniciados em "3") – Instruções de Redirecionamento. • 4xx (códigos iniciados em "4") – Resultados de Erro do Cliente. • 5xx (códigos iniciados em "5") – Resultados de Erro do Servidor. A lista completa de códigos de retorno HTTP pode ser obtida no site do W3C: Status Code Definitions AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet HTTP – Códigos de retorno Os códigos de retorno HTTP mais conhecidos são: • 200 – Código de sucesso. • 301 – Conteúdo movido permanentemente. É usado quando um documento mudou de lugar (físico ou virtual). • 307 – Conteúdo temporariamente redirecionado. • 404 – Conteúdo não encontrado, deve ser usado quando a URL solicitada não representa um documento existente. • 500 – Erro interno do servidor. • 503 – Serviço temporariamente indisponível. AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidores WEB O Linux tornou-se a plataforma de hospedagem mais popular principalmente: • Baixo custo; • Velocidade; • Confiabilidade; • Flexibilidade. A chamada plataforma LAMP (Linux, Apache, MySQL/MariaDB, e PHP/Perl/Python), combina os principais serviços para hospedar um conteúdo na web. AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidores WEB Segundo dados da Netcraft, em maio de 2017, cerca de 49% dos domínios da internet respondem as requisições utilizando o Servidor Microsoft IIS e 21% o Servidor Web Apache.Fonte AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidores WEB Como apresentado na pesquisa, o Apache vem sendo o principal servidor web da internet ao longo dos anos. Recentemente, perdeu uma fatia de mercado, mas ainda é amplamente utilizado tanto em servidores web na internet como em servidores web utilizados internamente nas corporações. O Apache HTTP Server Project é um esforço colaborativo de desenvolvimento de software destinado a criar uma implementação de código-fonte robusta, comercial, funcional e livremente disponível em um servidor HTTP (Web). O Apache 1.0 foi lançado em 1 de dezembro de 1995. Atualmente, a versão estável é a 2.4. No Linux, o deamon do Apache é o httpd. AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Instalação do Servidor Web Apache • Preparação do servidor • Instalação do httpd • Iniciando o serviço httpd [root@localhost ~]# yum update [root@localhost ~]# yum install httpd [root@localhost ~]# service httpd start Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName [ OK ] AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Instalação do Servidor Web Apache Após a instalação e inicialização do serviço, o servidor já está pronto para receber conexões http. Para testar, digite o IP do servidor no browser: Atenção! Certifique-se que os serviços do firewall e selinux estejam desabilitados ou permitindo conexões AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidor Web – Configuração de Virtual Hosts O primeiro passo na criação de um host virtual é criar um diretório onde manteremos as informações do novo site. • Esta localização será o seu DocumentRoot no arquivo de configuração do Apache • Precisamos conceder a propriedade do diretório ao usuário • Ajustar permissões dos novos arquivos, permitindo a leitura de todos • Ps: Certifique-se que os serviços do firewall e selinux estejam desabilitados ou permitindo conexões [root@localhost ~]# mkdir -p /var/www/exemplo.br/public_html [root@localhost ~]# chown -R apache:apache /var/www/exemplo.br/public_html [root@localhost ~]# chmod 755 /var/www AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidor Web – Configuração de Virtual Hosts Precisamos criar um novo arquivo chamado index.html dentro do nosso diretório de configurações Vamos adicionar um texto ao arquivo, para que possamos visualizá-lo como um site [root@localhost ~]# vi /var/www/exemplo.br/public_html/index.html <Html> <Head> <Title> www.exemplo.br </title> </Head> <Body> <H1> Sucesso: Este eh o seu Virtual Host de exemplo.br </h1> <img src="http://portal.estacio.br/media/4093/sistemadeinforma%C3%A7%C3%A3o.jpg" title="Servidor Web"/> </Body> </Html> AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidor Web – Configuração de Virtual Hosts O próximo passo é configurar o servidor HTTP (Apache) Procurar pela linha Listen, que deve estar como a seguir [root@localhost ~]# vi /etc/httpd/conf/httpd.conf AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidor Web – Configuração de Virtual Hosts Definir o nome do servidor. Procure pela linha ServerName, ela deve estar configurada como no exemplo a seguir AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidor Web – Configuração de Virtual Hosts • Por fim, vamos inserir as informações do VirtualHost. • Vá até o final do arquivo de configuração, utilizando shift +G. • Adicione o seguinte conteúdo ao final do arquivo. <VirtualHost *: 80> ServerAdmin webmaster@exemplo.br DocumentRoot /var/www/exemplo.br/public_html ServerName www.exemplo.br ServerAlias exemplo.br ErrorLog /var/www/exemplo.br/error.log CustomLog /var/www/exemplo.br/requests.log combined </ VirtualHost> AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidor Web – Configuração de Virtual Hosts • Adicione um entrada no /etc/hosts, para informar ao SO quem é o nome exemplo.br 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 <Seu_IP> www.exemplo.br AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidor Web – Configuração de Virtual Hosts • Salve o arquivo e reinicie o serviço httpd. • Acesse o conteúdo web via browser digitando o IP do servidor HTTP. AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidor Web – Configuração de Virtual Hosts • Descrição das principais linhas de configuração utilizadas ServerAdmin: Email do administrador do servidor DocumentRoot: Diretório que conterá o site ServerName: Nome e porta que o servidor utiliza para se identificar ServerAlias: Alias para o nome do servidor (ServerName) ErrorLog: Local do arquivo de log CustomLog: Arquivo de log detalhado (detalhes em: https://httpd.apache.org) • Documentação oficial do apache disponível em: http://httpd.apache.org/docs/2.4/ AULA 05: ARQUIVOS DE LOG E BACKUP LABORATÓRIO PRÁTICO AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidor Web – Laboratório prático • Neste laboratório vamos praticar a instalação e configuração de um servidor web. • Será necessário utilizar o servidor DNS criado na aula anterior (ou atribuir estaticamente o IP e nome no /etc/hosts. 1. Subir novo servidor virtual. 2. Instalar o serviço http. 3. Realizar as configurações do serviço http. 4. Ativar o serviço e realizar testes. • Ao final do exercício, o serviço http do servidor web deve responder com sucesso ao domínio http://www.linux.com.br AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidor Web – Implementando segurança • O mod_ssl oferece uma criptografia forte usando os protocolos SSL (Secure Sockets Layer) e TLS (Transport Layer Security) na comunicação HTTP entre um cliente e o servidor Web. • Com SSL/TSL, é estabelecida uma conexão privada entre o servidor Web e o cliente. Com a integridade dos dados garantida, cliente e servidor são capazes de autenticar-se um ao outro. • Uma URL com o HTTPS significa que a comunicação http está criptografada, no entanto, é importante observar o certificado utilizado. AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidor Web – Criação e configuração de um certificado auto assinado • Um certificado SSL é uma maneira de criptografar as informações de um site e criar uma conexão mais segura. • Além disso, o certificado pode mostrar as informações de identificação do servidor e autoridade certificadora para os visitantes do site. • Autoridades de certificação podem emitir certificados SSL que verificam os detalhes do servidor enquanto um certificado auto assinado não possui a validação de terceiros. AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidor Web – Criação e configuração de um certificado auto assinado • Para configurar o certificado auto assinado, primeiro devemos instalar o Mod SSL. • A a instalação é feita como comando a seguir. • Usando o OpenSSL, geraremos um certificado auto assinado para fins didáticos. • Em um ambiente de produção, o correto é utilizar um certificado assinado por uma Autoridade Certificadora (CA). [root@localhost ~]# yum install mod_ssl AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidor Web – Criação e configuração de um certificado auto assinado • 1º Passo: Gerar a chave privada • 2º Passo: Gerar a chave pública (Certificate Signing Request – CSR) • A a instalação é feita com o comando abaixo: • Usando o OpenSSL, geraremos um certificado auto-assinado para fins didáticos • Em um ambiente de produção, o correto é utilizar um certificado assinado por uma Autoridade Certificadora (CA) [root@localhost ~]# openssl genrsa -out ca.key 2048 [root@exemplo ~]# openssl req -new -key ca.key -out ca.csr AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidor Web – Criação e configuração de um certificado auto assinado • 3º Passo: Responder perguntas para geração da chave [root@exemplo ~]# openssl req -new -key ca.key -out ca.csr You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:BR State or Province Name (full name) []:Sao Paulo Locality Name (eg, city) [Default City]:Sao Paulo Organization Name (eg, company) [Default Company Ltd]:Estacio Organizational Unit Name (eg, section) []:TI Common Name (eg, your name or your server's hostname) []:exemplo.br Email Address []:postmaster@exemplo.br Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidor Web – Criação e configuração de um certificado auto assinado • 4º Passo: Gerar chave autenticada • 5º Passo: Copiar os arquivos para o diretório correto [root@exemplo ~]# openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt Signature ok subject=/C=BR/ST=Sao Paulo/L=Sao Paulo/O=Estacio/OU=TI/CN=exemplo.br/emailAddress=postmaster@exemplo.br Getting Private key [root@exemplo ~]# cp ca.crt /etc/pki/tls/certs/ [root@exemplo ~]# cp ca.key /etc/pki/tls/private/ca.key [root@exemplo ~]# cp ca.csr /etc/pki/tls/private/ca.csr AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidor Web – Criação e configuração de um certificado auto assinado • 6º Passo: Atualizar o arquivo de configuração do Apache SSL • Altere o caminho para corresponder onde o arquivo da chave privada (ca.crt) está armazenado • Altere o caminho para corresponder onde o arquivo da chave do certificado está armazenado [root@exemplo ~]# vi +/SSLCertificateFile /etc/httpd/conf.d/ssl.conf SSLCertificateFile /etc/pki/tls/certs/ca.crt SSLCertificateKeyFile /etc/pki/tls/private/ca.key AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidor Web – Criação e configuração de um certificado auto assinado • 7º Passo: Configuração do Virtual Host. Assim como definimos os VirtualHosts para http na porta 80, precisamos defini-los para https na porta 443 • As configurações do HTTPS ficam em /etc/httpd/conf.d/ssl.conf. Adicione o seguinte conteúdo ao final do arquivo [root@exemplo ~]# vi /etc/httpd/conf.d/ssl.conf <VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/pki/tls/certs/ca.crt SSLCertificateKeyFile /etc/pki/tls/private/ca.key ServerAdmin webmaster@exemplo.br DocumentRoot /var/www/exemplo.br/public_html ServerName www.exemplo.br ServerAlias exemplo.br ErrorLog /var/www/exemplo.br/error.log CustomLog /var/www/exemplo.br/requests.log combined </VirtualHost> AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidor Web – Criação e configuração de um certificado auto assinado • 8º Passo: Reiniciar o apache • 9º Passo: Acessar o site via browser, utilizando o https + IP ou nome de domínio [root@exemplo ~]# service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ] AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet Servidor Web – Criação e configuração de um certificado auto assinado • Observe as informações sobre o certificado e os avisos de site não seguro AULA 11: SERVIÇOS PARA INTRANET E INTERNET 3 Servidores para internet VAMOS AOS PRÓXIMOS PASSOS? Conhecer as diretivas de controle de acesso do servidor web; Aprender a bloquear/liberar o acesso ao servidor web com base em filtragem de endereços IP; Aprender a bloquear/liberar o acesso ao servidor web com base em contas de usuários; Aprender a configurar servidores FTP em software livre. AVANCE PARA FINALIZAR A APRESENTAÇÃO.
Compartilhar