SlideShare a Scribd company logo
1 of 58
Download to read offline
Infraestrutura de Internet e
      Servidores Web




                André Frederico Lucas da Silva
                andresilva@utfpr.edu.br
•   Arquitetura Cliente / Servidor
•   Protocolo TCP/IP
•   Protocolo HTTP
•   Servidores WEB
     •   Apache
     •   Nginx
     •   Varnish
•   Módulos para Servidores WEB
•   Banco de Dados – MySQL e PostgreSQL
•   Ferramentas
•   Segurança
“É uma arquitetura onde o processamento da informação é
  dividido em módulos ou processos distintos. Um processo é
   responsável pela manutenção da informação (Servidor),
  enquanto que outro é responsável pela obtenção dos dados
              (Cliente)”. BATTISTI, (2001, pág. 38).

 “É uma abordagem da computação que separa os processos em
  plataformas independentes que interagem, permitindo que os
recursos sejam compartilhados enquanto se obtém o máximo de
benefício de cada dispositivo diferente, ou seja, Cliente/Servidor
       é um modelo lógico”. VASKEVITCH, (1995, pág. 375).
Cliente:
• Inicia e termina as conversações com os Servidores;
• Não se comunica com outros Clientes;
• Normalmente responsável pela entrada e saída de dados e
     comunicação com o usuário;
• Torna a rede ‘transparente’ ao usuário;
• Hardware: pode ser um micro simples;
Servidor:
• Execução contínua;
• Recebe e responde a solicitações dos Clientes;
• Pode se comunicar com outros Servidores;
• Presta serviços distribuídos;
• Atende a diversos Clientes simultaneamente;
• Exige máquinas mais robustas, com grande capacidade de
processamento;
• Software em constante execução, aguardando ser chamado pelo
Cliente.
Confiabilidade
     Se uma máquina apresenta algum problema, ainda que seja um dos
     Servidores, parte do Sistema continua ativo.
Centralização e Segurança
     Dados são armazenados no servidor, que geralmente possuem
     controles de segurança muito maior do que a maioria dos clientes.
O Sistema cresce facilmente
     Torna-se fácil modernizar o Sistema quando necessário.
O Cliente e o Servidor podem possuir ambientes operacionais individuais e
heterogêneos
     Pode-se misturar várias plataformas para melhor atender às
     necessidades individuais de diversos setores e usuários.
Sobrecarga
     Um servidor poderá ficar sobrecarregado caso receba mais solicitações
     simultâneas dos clientes do que pode suportar.
O Cliente e o Servidor podem possuir ambientes operacionais individuais e
heterogêneos
     Necessidade da programação se adequar aos diversos sistemas
     operacionais, tanto no lado Cliente como no lado Servidor
Denominado anteriormente de Internet Protocol Suite, o TCP teve
origem em maio de 1974, quando pesquisadores do IEEE
apresentaram um protocolo de compartilhamento de pacotes em
rede.
O TCP (acrônimo para o inglês Transmission Control Protocol) é
um dos protocolos sob os quais a internet é sustentada. A
versatilidade e robustez deste protocolo tornou-o adequado a
redes globais, já que este verifica se os dados são enviados de
forma correta, na sequência apropriada e sem erros, pela rede.
O TCP é um protocolo de nível da camada de transporte (camada
4) do Modelo OSI e é sobre o qual que se assentam a maioria das
aplicações, como o SSH, FTP, HTTP
Orientado à conexão - A aplicação envia um pedido de conexão
para o destino e usa a "conexão" para transferir dados.
Ponto a ponto - uma conexão TCP é estabelecida entre dois
pontos.
Confiabilidade - O TCP usa várias técnicas para proporcionar uma
entrega confiável dos pacotes de dados, que é a grande
vantagem que tem em relação ao UDP. O TCP permite a
recuperação de pacotes perdidos, a eliminação de pacotes
duplicados, a recuperação de dados corrompidos, e pode
recuperar a ligação em caso de problemas no sistema e na rede.
Full duplex - É possível a transferência simultânea em ambas
direções (cliente-servidor) durante toda a sessão.
Handshake - Mecanismo de estabelecimento e finalização de
conexão a três e quatro tempos, respectivamente, o que permite
a autenticação e encerramento de uma sessão completa. O TCP
garante que, no final da conexão, todos os pacotes foram bem
recebidos.
Controle de fluxo - O TCP usa o campo janela ou window para
controlar o fluxo. O receptor, à medida que recebe os dados,
envia mensagens ACK (=Acknowledgement), confirmando a
recepção de um segmento. Em resumo, elimina a possibilidade
do remetente sobrecarregar o destinatário.
O TCP/IP, é formado por um grande conjunto de diferentes
protocolos de rede. Ele deriva dos dois protocolos mais importantes
e mais utilizados, que são os seguintes:

TCP: O TCP é um protocolo de transporte e executa importantes
funções para garantir que os dados sejam entregues de uma
maneira confiável, ou seja, sem que os dados sejam corrompidos
ou alterados.
IP: É um protocolo de endereçamento, um protocolo de rede.
Podermos afirmar que as principais funções do protocolo IP são
endereçamento e roteamento, ou de uma maneira mais simples,
fornecer uma maneira para identificar unicamente cada máquina
da rede (endereço IP) e uma maneira de encontrar um caminho
entre a origem e o destino (Roteamento).
Cabeçalho TCP
Cabeçalho IPv4
• O HTTP - HyperText Transfer Protocol / Protocolo de Transferência
  de Hipertexto - é um protocolo de comunicação, mantido pelo W3C
  utilizado para sistemas de informação de hipermídia distribuídos e
  colaborativos. Seu uso para a obtenção de recursos interligados levou
  ao estabelecimento da World Wide Web.

• Ele surgiu da necessidade de distribuir informações pela rede, e para
  isso, foi necessário criar uma forma padronizada de comunicação entre
  os clientes e os servidores da Web e entendida por todos os
  computadores ligados à Internet.

• O HTTP é um protocolo de aplicação responsável pelo tratamento de
  pedidos e respostas entre cliente e servidor na Internet. Com isso, o
  protocolo HTTP passou a ser utilizado para a comunicação entre
  computadores na Internet e a especificar como seriam realizadas as
  transações entre clientes e servidores, através do uso de regras
  básicas.
• HTTP utiliza o modelo cliente-servidor, baseando-se no
  paradigma de requisição e resposta.
• Um programa requisitante (cliente) estabelece uma conexão
  com um outro programa receptor (servidor) e envia-lhe uma
  requisição, contendo a URI, a versão do protocolo, uma
  mensagem MIME (padrão utilizado para codificar dados em
  formato de textos ASCII para serem transmitidos pela Internet)
  contendo os modificadores da requisição, informações sobre o
  cliente e, possivelmente, o conteúdo no corpo da mensagem.
• GET
   •    Solicita algum recurso por meio do protocolo HTTP
• HEAD
   •    Variação do GET. Obtém somente o cabeçalho da resposta
• POST
   •    Envia dados para serem processados para o recurso especificado
• PUT
   •    Envia certo recurso (Upload).
• DELETE
   •    Exclui o recurso.
• TRACE
   •    Ecoa o pedido, de maneira que o cliente possa saber o que os servidores
        intermediários estão mudando em seu pedido.
• OPTIONS
   •    Recupera os métodos HTTP que o servidor aceita.
• CONNECT
   •    Serve para uso com um proxy que possa se tornar um túnel SSL (um túnel
        pode ser usado, por exemplo, para criar uma conexão segura).
telnet www.google.com 80
Trying 64.233.163.104...
Connected to www.l.google.com.
Escape character is '^]'.
GET / HTTP/1.1

HTTP/1.1 302 Found
Location: http://www.google.com.br/
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Set-Cookie: PREF=ID=c828845416419fb6:TM=1271466117:LM=1271466117:S=xWBi4aTDqXGboVMI;
expires=Mon, 16-Apr-2012 01:01:57 GMT; path=/; domain=.google.com
Set-Cookie:
NID=33=rLLQbMPjTqBPKgAPbtfIs4AvjR4umT7D9zd4Qj_nev7qqyHdsqb9gq9DkDRzljiLAFMtdvCPcHfu6TFzdt
ZAcxCciOwt4s9gxsD96Ya1myHU93tJiTIHJZs0zbCoUdZy; expires=Sun, 17-Oct-2010 01:01:57 GMT; path=/;
domain=.google.com; HttpOnly
Date: Sat, 17 Apr 2010 01:01:57 GMT
Server: gws
Content-Length: 222

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8“>
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF=http://www.google.com.br/>here</A>.
</BODY></HTML>
POST /diretorio/arquivo.html HTTP/1.1
Host: www.exemplo.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; pt-BR; rv:1.9.2b5)
Gecko/20091204 Firefox/3.6b5
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-alive: 115
Cookie: nome=valor; nome2=valor2
Connection: keep-alive
Content-Length: 28

usuario=exemplo&senha=123456
• HTTP / 1.0 – Stateless
       Isto significa que as conexões entre um cliente e um servidor são
      encerradas após o envio de cada requisição ou resposta. Cada vez
      que uma conexão é estabelecida ou encerrada, é consumida uma
      grande quantidade de tempo da CPU, de largura de banda e de
      memória.

• HTTP / 1.1 – Persistent
      Possibilita que uma conexão seja estabelecida para enviar várias
      requisições em seqüência sem a necessidade de esperar por cada
      resposta, no qual serão recebidas na mesma ordem em que as
      solicitações foram enviadas, um processo chamado de pipelining.
CLIENTE              SERVIDOR


OPEN
                                           CLIENTE     SERVIDOR
                                         OPEN




CLOSE
OPEN




                                                           TEMPO
CLOSE                           TEMPO
OPEN
                                         CLOSE



                                        HTTP / 1.1 – Persistent

CLOSE



       HTTP / 1.0 – Stateless
principal.jpg = 245KB         principal.jpg = 45KB
www.utfpr.edu.br -> 580.5KB   www.utfpr.edu.br -> 380KB

1 requisições/seg.:           1 requisições/seg.:
1 Segundo: 580 KB             1 Segundo: 380 KB
1 Minuto: 33 MB               1 Minuto: 22 MB
1 Hora: 1.9 GB                1 Hora: 1.3 GB
1 Dia: 47 GB                  1 Dia: 31 GB
1 Mês: 1.4 TB                 1 Mês: 950 GB
1 Ano: 17 TB                  1 Ano: 11 TB

Tempo Carregamento: 1,54 s    Tempo Carregamento (Previsto): 1,14s
Tempo Carregamento            Tempo Carregamento principal.jpg
principal.jpg: 1,16s          (previsto): 400ms
Are
                    You
               Kidding
              Me
                    ???
½ segundo a menos faz tanta
     diferença assim???
   O que é ½ segundo???
Em 2009 o Google fez um experimento onde expôs a um grupo de
                 usuários uma busca mais lenta.

  “No experimento, o resultado por página aumentou de 10 para 30.
Essa alteração, aumentou o tempo de carregamento de 0.4s para 0.9s.
              Resultado: As buscas diminuíram em 20%.




                           0,5s
O Yahoo! descobriu que, para cada 400ms de melhora na performance,
                   seu tráfego aumentava em 9%

                           400ms

   A Amazon concluiu que apenas 100ms de melhora em seu site,
                aumentou 1% seu faturamento.

                           100ms
    1º Trimestre de 2012 = U$ 13,2 Bilhões – 1% = U$132 Milhões
    2º Trimestre de 2012 = U$ 12,8 Bilhões – 1% = U$128 Milhões
"If it is fast and ugly, they will use it
and curse you; if it is slow, they will
                not use it"

                    David Cheriton
                    Computer Science Professor
                    Stanford University
"Performance golden rule: Optimize
 front-end performance first, that's
   where 80/90% of the end-user
     response time is spent.""

                      Steve Souders
                      High Performance Web Sites
Um software responsável por aceitar pedidos HTTP de clientes, e servi-los
   com as respectivas respostas, incluindo opcionalmente dados, que
geralmente são páginas web, tais como documentos (html, php, etc) com
                  objetos embutidos (imagens, etc.);




                       Timothy John Berners-Lee
Criado em 1995
Responsável por 58% dos sites ativos no mundo.
Aproximadamente 102 Mi de sites ativos.

Implementa 100% do padrão HTTP/1.1;
Disponível para diversos SO's, além do Linux, para qual foi criado;
Bastante estável e seguro;
Suporte ao protocolo HTTPS;
Facilmente extensível (PHP, JSP, Perl, Python etc.) por meio de
módulos extras;
Suporte a VirtualHosts, possibilitando a hospedagem várias páginas
no mesmo servidor.
IIS – Internet Information Service
Criado em 1996 – Windows NT 3.51
Responsável por aproximadamente 23 Mi de sites ativos
Muito utilizado para aplicações em ambientes MS
Criado em 2005
3% de sites ativos em 2008
Ultrapassou o IIS em 2012 ficando em 2º lugar no ranking, com
12.18% de sites ativos
Hoje é responsável por aproximadamente 22 Mi de sites ativos em
3º lugar.
root - (root)

https://www.virtualbox.org/wiki/Downloads
ENDEREÇO IP                                 SERVIDOR DNS

nano /etc/network/interfaces                nano /etc/resolv.conf

auto ethX
iface ethX inet static(ou           dhcp)

                                            nameserver            XXX.XXX.XXX.XXX
address 172.17.X.X
netmask 255.255.0.0
gateway 172.17.250.1
                                            Pressionar CTRL + X

                                            Pressionar Y

                                            Pressionar Enter (Salvar o arquivo no
Pressionar CTRL + X                         caminho indicado)

Pressionar Y                                APLICANDO AS CONFIGURAÇÕES
                                            /etc/init.d/networking restart
Pressionar Enter (Salvar o arquivo no
caminho indicado)
Atualizar pacotes informações sobre repositórios
apt-get update

Manter o S.O. sempre atualizado
apt-get upgrade

Instalando VIM
apt-get install vim

Comandos Básicos VIM
Pressionar INSERT 1x = Inserir
Pressionar INSERT 2x = Substituir
Pressionar SHIFT+Q = Abre modo de salvamento/saída
Digitar wq = w - Salva o arquivo / q - Fecha o editor
! = Forçar Ex: wq! (Salva e sai forçadamente) / q! (Sai forçadamente)
• Instalar pacote VIM: apt-get instal vim
• editar o arquivo /etc/vim/vimrc e descomentar a linha



           syntax on
• Instalar pacote NTPDATE: apt-get install ntpdate
• criar o arquivo ntp em /etc/cron.hourly


         #!/bin/sh
         #

         # ATUALIZACAO DA HORA
         ntpdate pool.ntp.br

         exit 0


• Reiniciar o serviço CRON
/etc/init.d/cron restart
• Instalar pacote SSH: apt-get instal ssh
• editar o arquivo /etc/ssh/sshd_config

          Port XXXX
          ...
          PermitRootLogin no
          ...
          PermitEmptyPassword no
          ...
          PasswordAuthentication yes

• Editar arquivo securetty
cp /etc/securetty /etc/securetty.ori
echo “## Arquivo modificado ##” > /etc/securetty

• Reiniciar o serviço SSH
/etc/init.d/ssh restart
• Instalar pacote SSH: apt-get instal ssh
• editar o arquivo /etc/ssh/sshd_config

          Port XXXX
          ...
          PermitRootLogin no
          ...
          PermitEmptyPassword no
          ...
          PasswordAuthentication yes

• Editar arquivo securetty
cp /etc/securetty /etc/securetty.ori
echo “## Arquivo modificado ##” > /etc/securetty

• Reiniciar o serviço SSH
/etc/init.d/ssh restart
WORKER (PHP através de CGI)

PREFORK (PHP como módulo do apache)
• Cada request é tratato por um processo separado
• Tolerante a falhas
• Problema no processo filho não implica no pai
• Estável
• Pode ser utilizado com módulos não thread-safe
WORKER (PHP através de CGI)
apt-get install apache2-mpm-worker
apt-get install php5 php5-cgi php5-cli
apt-get install libapache2-mod-fcgid

Adicionar as linhas abaixo dentro da seção Directory nos arquivos dos sites
/etc/apache2/sites-enabled/xxxxxxx

AddHandler fcgid-script .php
FCGIWrapper /usr/lib/cgi-bin/php5 .php
Options ExecCGI

Ativar o Módulo: a2enmod NOMEDOMODULO (fcgid)
Desativar o Módulo: a2dismod NOMEDOMODULO
Para retirar a mensagem “Could not reliably determine the server's
fully qualified domain name, using 127.0.1.1 for ServerName”

Editar o arquivo httpd.conf e Adicionar a seguinte linha:
ServerName NOMEDOSERVIDOR


MYSQL: apt-get install php5-mysql
POSTGRE: apt-get install php5-pgsql
VHOST
Criar o arquivo de configuração do site na pasta sites-available

Editar o arquivo criado com as seguintes linhas:
ServerAdmin email@admin.com.br
ServerName www.nomedosite.com.br
DocumentRoot /var/www/pastadosite
<Directory /var/www/pastadosite/>


Criar a pasta conforme indicado no arquivo de conf.

Logs:
ErrorLog ${APACHE_LOG_DIR}/error_nomedosite.log
CustomLog ${APACHE_LOG_DIR}/access_nomedosite.log vhost_combined
Certificado SSL
apt-get install openssl ca-certificates

Criar pasta cert dentro de /etc/apache2 e entrar na pasta criada
Gerar a chave privada (Private Key):
openssl genrsa -des3 -out nome_certificado.key 1024 (2048)
Retirar a Senha da chave privada:
openssl rsa -in nome_certificado.key -out nome_certificado_nopwd.key

                   *** IMPORTANTE: executar chmod 600 nome_certificado_nopwd.key ***


Gerar o pedido de certificação (Certificate Signing Request):
openssl req -new -key nome_certificado.key -out nome_certificado.csr


         *** O Comon Name, deverá ter o mesmo nome do servidor, exemplo: host.dominio.com.br***


Assinar o certificado (Self-Signed Certificate):
openssl x509 -req -days 365 -in nome_certificado.csr -signkey
nome_certificado.key -out nome_certificado.crt
Ativar o módulo SSL
a2enmod ssl

Editar o arquivo do site ssl com as seguintes linhas:
ServerAdmin email@admin.com.br
ServerName www.nomedosite.com.br
DocumentRoot /var/www/pastadosite
<Directory /var/www/pastadosite/>

Logs:
ErrorLog ${APACHE_LOG_DIR}/error_nomedosite.log
CustomLog ${APACHE_LOG_DIR}/access_nomedosite.log
vhost_combined

SSLCertificateFile    /etc/apache2/cert/cert_vhost1.crt
SSLCertificateKeyFile /etc/apache2/cert/cert_vhost1_nopwd.key
Páginas de erro personalizadas
/etc/apache2/conf.d/localized-error-pages

Melhorar Segurança Básica
/etc/apache2/conf.d/security
      ServerTokens Prod
      ServerSignature Off
      TraceEnabler Off
PREFORK (PHP como módulo do apache)

apt-get install apache2-mpm-prefork
apt-get install php5 libapache2-mod-php5

Para retirar a mensagem “Could not reliably determine the server's fully
qualified domain name, using 127.0.1.1 for ServerName”

Editar o arquivo httpd.conf e Adicionar a seguinte linha:
ServerName NOMEDOSERVIDOR


MYSQL: apt-get install php5-mysql
POSTGRE: apt-get install php5-pgsql
VHOST
Criar o arquivo de configuração do site na pasta sites-available

Editar o arquivo criado com as seguintes linhas:
ServerAdmin email@admin.com.br
ServerName www.nomedosite.com.br
DocumentRoot /var/www/pastadosite
<Directory /var/www/pastadosite/>

Criar a pasta conforme indicado no arquivo de conf.

Logs:
ErrorLog ${APACHE_LOG_DIR}/error_nomedosite.log
CustomLog ${APACHE_LOG_DIR}/access_nomedosite.log
vhost_combined
Certificado SSL
apt-get install openssl ca-certificates

Criar pasta cert dentro de /etc/apache2 e entrar na pasta criada
Gerar a chave privada (Private Key):
openssl genrsa -des3 -out nome_certificado.key 1024 (2048)
Retirar a Senha da chave privada:
openssl rsa -in nome_certificado.key -out nome_certificado_nopwd.key

           *** IMPORTANTE: executar chmod 600 nome_certificado_nopwd.key ***

Gerar o pedido de certificação (Certificate Signing Request):
openssl req -new -key nome_certificado.key -out nome_certificado.csr

  *** O Comon Name, deverá ter o mesmo nome do servidor, exemplo: host.dominio.com.br***

Assinar o certificado (Self-Signed Certificate):
openssl x509 -req -days 365 -in nome_certificado.csr -signkey
nome_certificado.key -out nome_certificado.crt
Ativar o módulo SSL
a2enmod ssl

Editar o arquivo do site ssl com as seguintes linhas:
ServerAdmin email@admin.com.br
ServerName www.nomedosite.com.br
DocumentRoot /var/www/pastadosite
<Directory /var/www/pastadosite/>

Logs:
ErrorLog ${APACHE_LOG_DIR}/error_nomedosite.log
CustomLog ${APACHE_LOG_DIR}/access_nomedosite.log
vhost_combined

SSLCertificateFile    /etc/apache2/cert/cert_vhost1.crt
SSLCertificateKeyFile
/etc/apache2/cert/cert_vhost1_nopwd.key
Páginas de erro personalizadas
/etc/apache2/conf.d/localized-error-pages

Melhorar Segurança Básica
/etc/apache2/conf.d/security
      ServerTokens Prod
      ServerSignature Off
      TraceEnabler Off
Complementos Firefox
Firebug
PageSpeed



Apache Benchmarking
ab -k -n 50000 -c 2 -e apache.cvs http://202.54.200.1/snkpage.html

More Related Content

What's hot

Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linuxelliando dias
 
Linux Network Fault Tolerance
Linux Network Fault ToleranceLinux Network Fault Tolerance
Linux Network Fault ToleranceFrederico Madeira
 
funcionamento da internet
funcionamento da internetfuncionamento da internet
funcionamento da internetMarco Pinheiro
 
Implementação de Servidor Linux Ubuntu Server
Implementação de Servidor Linux Ubuntu ServerImplementação de Servidor Linux Ubuntu Server
Implementação de Servidor Linux Ubuntu ServerTiago Bezerra Dos Santos
 
Aula14 vsftp de-introopenldap
Aula14 vsftp de-introopenldapAula14 vsftp de-introopenldap
Aula14 vsftp de-introopenldapRoberto Castro
 
Trabalho Servidor FTP
Trabalho Servidor FTPTrabalho Servidor FTP
Trabalho Servidor FTPJunior Cesar
 
Samba, Squid, FTP, DHCP1
Samba, Squid, FTP, DHCP1Samba, Squid, FTP, DHCP1
Samba, Squid, FTP, DHCP1SoftD Abreu
 
Protocolos de aplicação
Protocolos de aplicaçãoProtocolos de aplicação
Protocolos de aplicaçãoJoel Saramago
 
7 - segurança - dmz vpn
7  - segurança -  dmz vpn7  - segurança -  dmz vpn
7 - segurança - dmz vpnAndre Peres
 
Tópicos - Cluster de Balanceamento de Carga com DNS
Tópicos - Cluster de Balanceamento de Carga  com  DNSTópicos - Cluster de Balanceamento de Carga  com  DNS
Tópicos - Cluster de Balanceamento de Carga com DNSLuiz Arthur
 
Samba, Squid, FTP, DHCP3
Samba, Squid, FTP, DHCP3Samba, Squid, FTP, DHCP3
Samba, Squid, FTP, DHCP3SoftD Abreu
 
pfSense - Proxy com arquivo arquivo pac e wpad
pfSense - Proxy com arquivo arquivo pac e wpadpfSense - Proxy com arquivo arquivo pac e wpad
pfSense - Proxy com arquivo arquivo pac e wpadCavalcante Treinamentos
 
Aula02 - protocolos de email
Aula02 -  protocolos de emailAula02 -  protocolos de email
Aula02 - protocolos de emailCarlos Veiga
 

What's hot (20)

Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linux
 
Dawi o protocolo-http
Dawi o protocolo-httpDawi o protocolo-http
Dawi o protocolo-http
 
Linux Network Fault Tolerance
Linux Network Fault ToleranceLinux Network Fault Tolerance
Linux Network Fault Tolerance
 
(14) ftp
(14) ftp(14) ftp
(14) ftp
 
Servidor ftp
Servidor ftp Servidor ftp
Servidor ftp
 
funcionamento da internet
funcionamento da internetfuncionamento da internet
funcionamento da internet
 
Implementação de Servidor Linux Ubuntu Server
Implementação de Servidor Linux Ubuntu ServerImplementação de Servidor Linux Ubuntu Server
Implementação de Servidor Linux Ubuntu Server
 
Aula14 vsftp de-introopenldap
Aula14 vsftp de-introopenldapAula14 vsftp de-introopenldap
Aula14 vsftp de-introopenldap
 
Trabalho Servidor FTP
Trabalho Servidor FTPTrabalho Servidor FTP
Trabalho Servidor FTP
 
Samba, Squid, FTP, DHCP1
Samba, Squid, FTP, DHCP1Samba, Squid, FTP, DHCP1
Samba, Squid, FTP, DHCP1
 
Protocolos de aplicação
Protocolos de aplicaçãoProtocolos de aplicação
Protocolos de aplicação
 
7 - segurança - dmz vpn
7  - segurança -  dmz vpn7  - segurança -  dmz vpn
7 - segurança - dmz vpn
 
Tópicos - Cluster de Balanceamento de Carga com DNS
Tópicos - Cluster de Balanceamento de Carga  com  DNSTópicos - Cluster de Balanceamento de Carga  com  DNS
Tópicos - Cluster de Balanceamento de Carga com DNS
 
Samba, Squid, FTP, DHCP3
Samba, Squid, FTP, DHCP3Samba, Squid, FTP, DHCP3
Samba, Squid, FTP, DHCP3
 
Filtro de conteúdo Proxy
Filtro de conteúdo   ProxyFiltro de conteúdo   Proxy
Filtro de conteúdo Proxy
 
pfSense - Proxy com arquivo arquivo pac e wpad
pfSense - Proxy com arquivo arquivo pac e wpadpfSense - Proxy com arquivo arquivo pac e wpad
pfSense - Proxy com arquivo arquivo pac e wpad
 
Aula02 - protocolos de email
Aula02 -  protocolos de emailAula02 -  protocolos de email
Aula02 - protocolos de email
 
Servidor proxy Squid
Servidor proxy SquidServidor proxy Squid
Servidor proxy Squid
 
Servidor Proxy Squid
Servidor Proxy SquidServidor Proxy Squid
Servidor Proxy Squid
 
Funções do
Funções doFunções do
Funções do
 

Viewers also liked

Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 
Projetos Web Por Maike Robert
Projetos Web   Por Maike RobertProjetos Web   Por Maike Robert
Projetos Web Por Maike Robertguest4d3fce
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidorMarcia Abrahim
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosFrederico Madeira
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídosEduardo de Lucena Falcão
 

Viewers also liked (6)

Aula 2
Aula 2Aula 2
Aula 2
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
Projetos Web Por Maike Robert
Projetos Web   Por Maike RobertProjetos Web   Por Maike Robert
Projetos Web Por Maike Robert
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
 

Similar to Infraestrutura de Internet e Servidores Web

Unidade1ainternet 110928173442-phpapp02
Unidade1ainternet 110928173442-phpapp02Unidade1ainternet 110928173442-phpapp02
Unidade1ainternet 110928173442-phpapp02DP7
 
[Antero Jesus] Principais Protocolos de Rede
[Antero Jesus] Principais Protocolos de Rede[Antero Jesus] Principais Protocolos de Rede
[Antero Jesus] Principais Protocolos de Redeajtr98
 
Artigo Denis Rebelo
Artigo Denis RebeloArtigo Denis Rebelo
Artigo Denis Rebelodenisbelo
 
Artigo Denis Rebelo
Artigo Denis RebeloArtigo Denis Rebelo
Artigo Denis RebeloDenis Rebelo
 
Tecnologia web aula 02
Tecnologia web  aula 02Tecnologia web  aula 02
Tecnologia web aula 02Manuel Ernesto
 
Aula03 - protocolo http
Aula03 -  protocolo httpAula03 -  protocolo http
Aula03 - protocolo httpCarlos Veiga
 
Conceito Básico sobre protocolos de rede
Conceito Básico sobre protocolos de redeConceito Básico sobre protocolos de rede
Conceito Básico sobre protocolos de redeGeorge Lucas
 
Conceito básico sobre Protocolos de Rede
Conceito básico sobre Protocolos de RedeConceito básico sobre Protocolos de Rede
Conceito básico sobre Protocolos de RedeElitexD
 
M4 tarefa video
M4 tarefa videoM4 tarefa video
M4 tarefa videogonxalox
 
Aula05 camada de aplicação
Aula05 camada de aplicaçãoAula05 camada de aplicação
Aula05 camada de aplicaçãoTiago Tda
 
Conceitos básicos de info
Conceitos básicos de infoConceitos básicos de info
Conceitos básicos de infoYASMIN ALVES
 
Http (hyper text transfer protocol)
Http (hyper text transfer protocol)Http (hyper text transfer protocol)
Http (hyper text transfer protocol)Liliana Costa
 
Definições E Correlações Dhcp dns smtp e ntp
Definições E Correlações Dhcp dns smtp e ntpDefinições E Correlações Dhcp dns smtp e ntp
Definições E Correlações Dhcp dns smtp e ntpRogleison Rabelo, ITIL ISO
 
Protocolos HTTP e HTTPS
Protocolos HTTP e HTTPSProtocolos HTTP e HTTPS
Protocolos HTTP e HTTPSTrabalhosCVIGR
 
Protocolos HTTP e HTTPS
Protocolos HTTP e HTTPSProtocolos HTTP e HTTPS
Protocolos HTTP e HTTPSTrabalhosCVIGR
 

Similar to Infraestrutura de Internet e Servidores Web (20)

Unidade1ainternet 110928173442-phpapp02
Unidade1ainternet 110928173442-phpapp02Unidade1ainternet 110928173442-phpapp02
Unidade1ainternet 110928173442-phpapp02
 
http
httphttp
http
 
[Antero Jesus] Principais Protocolos de Rede
[Antero Jesus] Principais Protocolos de Rede[Antero Jesus] Principais Protocolos de Rede
[Antero Jesus] Principais Protocolos de Rede
 
Principais protocolos de rede
Principais protocolos de redePrincipais protocolos de rede
Principais protocolos de rede
 
Artigo Denis Rebelo
Artigo Denis RebeloArtigo Denis Rebelo
Artigo Denis Rebelo
 
Artigo Denis Rebelo
Artigo Denis RebeloArtigo Denis Rebelo
Artigo Denis Rebelo
 
Tecnologia web aula 02
Tecnologia web  aula 02Tecnologia web  aula 02
Tecnologia web aula 02
 
Mini Curso - Redes de Computadores
Mini Curso - Redes de ComputadoresMini Curso - Redes de Computadores
Mini Curso - Redes de Computadores
 
Aula03 - protocolo http
Aula03 -  protocolo httpAula03 -  protocolo http
Aula03 - protocolo http
 
Conceito Básico sobre protocolos de rede
Conceito Básico sobre protocolos de redeConceito Básico sobre protocolos de rede
Conceito Básico sobre protocolos de rede
 
Conceito básico sobre Protocolos de Rede
Conceito básico sobre Protocolos de RedeConceito básico sobre Protocolos de Rede
Conceito básico sobre Protocolos de Rede
 
M4 tarefa video
M4 tarefa videoM4 tarefa video
M4 tarefa video
 
Cap 02.pdf
Cap 02.pdfCap 02.pdf
Cap 02.pdf
 
Aula05 camada de aplicação
Aula05 camada de aplicaçãoAula05 camada de aplicação
Aula05 camada de aplicação
 
Camada de aplicação parte1
Camada de aplicação parte1Camada de aplicação parte1
Camada de aplicação parte1
 
Conceitos básicos de info
Conceitos básicos de infoConceitos básicos de info
Conceitos básicos de info
 
Http (hyper text transfer protocol)
Http (hyper text transfer protocol)Http (hyper text transfer protocol)
Http (hyper text transfer protocol)
 
Definições E Correlações Dhcp dns smtp e ntp
Definições E Correlações Dhcp dns smtp e ntpDefinições E Correlações Dhcp dns smtp e ntp
Definições E Correlações Dhcp dns smtp e ntp
 
Protocolos HTTP e HTTPS
Protocolos HTTP e HTTPSProtocolos HTTP e HTTPS
Protocolos HTTP e HTTPS
 
Protocolos HTTP e HTTPS
Protocolos HTTP e HTTPSProtocolos HTTP e HTTPS
Protocolos HTTP e HTTPS
 

Infraestrutura de Internet e Servidores Web

  • 1. Infraestrutura de Internet e Servidores Web André Frederico Lucas da Silva andresilva@utfpr.edu.br
  • 2. Arquitetura Cliente / Servidor • Protocolo TCP/IP • Protocolo HTTP • Servidores WEB • Apache • Nginx • Varnish • Módulos para Servidores WEB • Banco de Dados – MySQL e PostgreSQL • Ferramentas • Segurança
  • 3. “É uma arquitetura onde o processamento da informação é dividido em módulos ou processos distintos. Um processo é responsável pela manutenção da informação (Servidor), enquanto que outro é responsável pela obtenção dos dados (Cliente)”. BATTISTI, (2001, pág. 38). “É uma abordagem da computação que separa os processos em plataformas independentes que interagem, permitindo que os recursos sejam compartilhados enquanto se obtém o máximo de benefício de cada dispositivo diferente, ou seja, Cliente/Servidor é um modelo lógico”. VASKEVITCH, (1995, pág. 375).
  • 4. Cliente: • Inicia e termina as conversações com os Servidores; • Não se comunica com outros Clientes; • Normalmente responsável pela entrada e saída de dados e comunicação com o usuário; • Torna a rede ‘transparente’ ao usuário; • Hardware: pode ser um micro simples; Servidor: • Execução contínua; • Recebe e responde a solicitações dos Clientes; • Pode se comunicar com outros Servidores; • Presta serviços distribuídos; • Atende a diversos Clientes simultaneamente; • Exige máquinas mais robustas, com grande capacidade de processamento; • Software em constante execução, aguardando ser chamado pelo Cliente.
  • 5. Confiabilidade Se uma máquina apresenta algum problema, ainda que seja um dos Servidores, parte do Sistema continua ativo. Centralização e Segurança Dados são armazenados no servidor, que geralmente possuem controles de segurança muito maior do que a maioria dos clientes. O Sistema cresce facilmente Torna-se fácil modernizar o Sistema quando necessário. O Cliente e o Servidor podem possuir ambientes operacionais individuais e heterogêneos Pode-se misturar várias plataformas para melhor atender às necessidades individuais de diversos setores e usuários.
  • 6. Sobrecarga Um servidor poderá ficar sobrecarregado caso receba mais solicitações simultâneas dos clientes do que pode suportar. O Cliente e o Servidor podem possuir ambientes operacionais individuais e heterogêneos Necessidade da programação se adequar aos diversos sistemas operacionais, tanto no lado Cliente como no lado Servidor
  • 7.
  • 8.
  • 9.
  • 10. Denominado anteriormente de Internet Protocol Suite, o TCP teve origem em maio de 1974, quando pesquisadores do IEEE apresentaram um protocolo de compartilhamento de pacotes em rede. O TCP (acrônimo para o inglês Transmission Control Protocol) é um dos protocolos sob os quais a internet é sustentada. A versatilidade e robustez deste protocolo tornou-o adequado a redes globais, já que este verifica se os dados são enviados de forma correta, na sequência apropriada e sem erros, pela rede. O TCP é um protocolo de nível da camada de transporte (camada 4) do Modelo OSI e é sobre o qual que se assentam a maioria das aplicações, como o SSH, FTP, HTTP
  • 11. Orientado à conexão - A aplicação envia um pedido de conexão para o destino e usa a "conexão" para transferir dados. Ponto a ponto - uma conexão TCP é estabelecida entre dois pontos. Confiabilidade - O TCP usa várias técnicas para proporcionar uma entrega confiável dos pacotes de dados, que é a grande vantagem que tem em relação ao UDP. O TCP permite a recuperação de pacotes perdidos, a eliminação de pacotes duplicados, a recuperação de dados corrompidos, e pode recuperar a ligação em caso de problemas no sistema e na rede. Full duplex - É possível a transferência simultânea em ambas direções (cliente-servidor) durante toda a sessão.
  • 12. Handshake - Mecanismo de estabelecimento e finalização de conexão a três e quatro tempos, respectivamente, o que permite a autenticação e encerramento de uma sessão completa. O TCP garante que, no final da conexão, todos os pacotes foram bem recebidos. Controle de fluxo - O TCP usa o campo janela ou window para controlar o fluxo. O receptor, à medida que recebe os dados, envia mensagens ACK (=Acknowledgement), confirmando a recepção de um segmento. Em resumo, elimina a possibilidade do remetente sobrecarregar o destinatário.
  • 13. O TCP/IP, é formado por um grande conjunto de diferentes protocolos de rede. Ele deriva dos dois protocolos mais importantes e mais utilizados, que são os seguintes: TCP: O TCP é um protocolo de transporte e executa importantes funções para garantir que os dados sejam entregues de uma maneira confiável, ou seja, sem que os dados sejam corrompidos ou alterados. IP: É um protocolo de endereçamento, um protocolo de rede. Podermos afirmar que as principais funções do protocolo IP são endereçamento e roteamento, ou de uma maneira mais simples, fornecer uma maneira para identificar unicamente cada máquina da rede (endereço IP) e uma maneira de encontrar um caminho entre a origem e o destino (Roteamento).
  • 14.
  • 17. • O HTTP - HyperText Transfer Protocol / Protocolo de Transferência de Hipertexto - é um protocolo de comunicação, mantido pelo W3C utilizado para sistemas de informação de hipermídia distribuídos e colaborativos. Seu uso para a obtenção de recursos interligados levou ao estabelecimento da World Wide Web. • Ele surgiu da necessidade de distribuir informações pela rede, e para isso, foi necessário criar uma forma padronizada de comunicação entre os clientes e os servidores da Web e entendida por todos os computadores ligados à Internet. • O HTTP é um protocolo de aplicação responsável pelo tratamento de pedidos e respostas entre cliente e servidor na Internet. Com isso, o protocolo HTTP passou a ser utilizado para a comunicação entre computadores na Internet e a especificar como seriam realizadas as transações entre clientes e servidores, através do uso de regras básicas.
  • 18. • HTTP utiliza o modelo cliente-servidor, baseando-se no paradigma de requisição e resposta. • Um programa requisitante (cliente) estabelece uma conexão com um outro programa receptor (servidor) e envia-lhe uma requisição, contendo a URI, a versão do protocolo, uma mensagem MIME (padrão utilizado para codificar dados em formato de textos ASCII para serem transmitidos pela Internet) contendo os modificadores da requisição, informações sobre o cliente e, possivelmente, o conteúdo no corpo da mensagem.
  • 19. • GET • Solicita algum recurso por meio do protocolo HTTP • HEAD • Variação do GET. Obtém somente o cabeçalho da resposta • POST • Envia dados para serem processados para o recurso especificado • PUT • Envia certo recurso (Upload). • DELETE • Exclui o recurso. • TRACE • Ecoa o pedido, de maneira que o cliente possa saber o que os servidores intermediários estão mudando em seu pedido. • OPTIONS • Recupera os métodos HTTP que o servidor aceita. • CONNECT • Serve para uso com um proxy que possa se tornar um túnel SSL (um túnel pode ser usado, por exemplo, para criar uma conexão segura).
  • 20. telnet www.google.com 80 Trying 64.233.163.104... Connected to www.l.google.com. Escape character is '^]'. GET / HTTP/1.1 HTTP/1.1 302 Found Location: http://www.google.com.br/ Cache-Control: private Content-Type: text/html; charset=UTF-8 Set-Cookie: PREF=ID=c828845416419fb6:TM=1271466117:LM=1271466117:S=xWBi4aTDqXGboVMI; expires=Mon, 16-Apr-2012 01:01:57 GMT; path=/; domain=.google.com Set-Cookie: NID=33=rLLQbMPjTqBPKgAPbtfIs4AvjR4umT7D9zd4Qj_nev7qqyHdsqb9gq9DkDRzljiLAFMtdvCPcHfu6TFzdt ZAcxCciOwt4s9gxsD96Ya1myHU93tJiTIHJZs0zbCoUdZy; expires=Sun, 17-Oct-2010 01:01:57 GMT; path=/; domain=.google.com; HttpOnly Date: Sat, 17 Apr 2010 01:01:57 GMT Server: gws Content-Length: 222 <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8“> <TITLE>302 Moved</TITLE></HEAD><BODY> <H1>302 Moved</H1> The document has moved <A HREF=http://www.google.com.br/>here</A>. </BODY></HTML>
  • 21. POST /diretorio/arquivo.html HTTP/1.1 Host: www.exemplo.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; pt-BR; rv:1.9.2b5) Gecko/20091204 Firefox/3.6b5 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-alive: 115 Cookie: nome=valor; nome2=valor2 Connection: keep-alive Content-Length: 28 usuario=exemplo&senha=123456
  • 22. • HTTP / 1.0 – Stateless Isto significa que as conexões entre um cliente e um servidor são encerradas após o envio de cada requisição ou resposta. Cada vez que uma conexão é estabelecida ou encerrada, é consumida uma grande quantidade de tempo da CPU, de largura de banda e de memória. • HTTP / 1.1 – Persistent Possibilita que uma conexão seja estabelecida para enviar várias requisições em seqüência sem a necessidade de esperar por cada resposta, no qual serão recebidas na mesma ordem em que as solicitações foram enviadas, um processo chamado de pipelining.
  • 23. CLIENTE SERVIDOR OPEN CLIENTE SERVIDOR OPEN CLOSE OPEN TEMPO CLOSE TEMPO OPEN CLOSE HTTP / 1.1 – Persistent CLOSE HTTP / 1.0 – Stateless
  • 24.
  • 25. principal.jpg = 245KB principal.jpg = 45KB www.utfpr.edu.br -> 580.5KB www.utfpr.edu.br -> 380KB 1 requisições/seg.: 1 requisições/seg.: 1 Segundo: 580 KB 1 Segundo: 380 KB 1 Minuto: 33 MB 1 Minuto: 22 MB 1 Hora: 1.9 GB 1 Hora: 1.3 GB 1 Dia: 47 GB 1 Dia: 31 GB 1 Mês: 1.4 TB 1 Mês: 950 GB 1 Ano: 17 TB 1 Ano: 11 TB Tempo Carregamento: 1,54 s Tempo Carregamento (Previsto): 1,14s Tempo Carregamento Tempo Carregamento principal.jpg principal.jpg: 1,16s (previsto): 400ms
  • 26. Are You Kidding Me ??? ½ segundo a menos faz tanta diferença assim??? O que é ½ segundo???
  • 27. Em 2009 o Google fez um experimento onde expôs a um grupo de usuários uma busca mais lenta. “No experimento, o resultado por página aumentou de 10 para 30. Essa alteração, aumentou o tempo de carregamento de 0.4s para 0.9s. Resultado: As buscas diminuíram em 20%. 0,5s
  • 28. O Yahoo! descobriu que, para cada 400ms de melhora na performance, seu tráfego aumentava em 9% 400ms A Amazon concluiu que apenas 100ms de melhora em seu site, aumentou 1% seu faturamento. 100ms 1º Trimestre de 2012 = U$ 13,2 Bilhões – 1% = U$132 Milhões 2º Trimestre de 2012 = U$ 12,8 Bilhões – 1% = U$128 Milhões
  • 29. "If it is fast and ugly, they will use it and curse you; if it is slow, they will not use it" David Cheriton Computer Science Professor Stanford University
  • 30. "Performance golden rule: Optimize front-end performance first, that's where 80/90% of the end-user response time is spent."" Steve Souders High Performance Web Sites
  • 31. Um software responsável por aceitar pedidos HTTP de clientes, e servi-los com as respectivas respostas, incluindo opcionalmente dados, que geralmente são páginas web, tais como documentos (html, php, etc) com objetos embutidos (imagens, etc.); Timothy John Berners-Lee
  • 32.
  • 33.
  • 34. Criado em 1995 Responsável por 58% dos sites ativos no mundo. Aproximadamente 102 Mi de sites ativos. Implementa 100% do padrão HTTP/1.1; Disponível para diversos SO's, além do Linux, para qual foi criado; Bastante estável e seguro; Suporte ao protocolo HTTPS; Facilmente extensível (PHP, JSP, Perl, Python etc.) por meio de módulos extras; Suporte a VirtualHosts, possibilitando a hospedagem várias páginas no mesmo servidor.
  • 35. IIS – Internet Information Service Criado em 1996 – Windows NT 3.51 Responsável por aproximadamente 23 Mi de sites ativos Muito utilizado para aplicações em ambientes MS
  • 36. Criado em 2005 3% de sites ativos em 2008 Ultrapassou o IIS em 2012 ficando em 2º lugar no ranking, com 12.18% de sites ativos Hoje é responsável por aproximadamente 22 Mi de sites ativos em 3º lugar.
  • 37.
  • 38.
  • 40. ENDEREÇO IP SERVIDOR DNS nano /etc/network/interfaces nano /etc/resolv.conf auto ethX iface ethX inet static(ou dhcp) nameserver XXX.XXX.XXX.XXX address 172.17.X.X netmask 255.255.0.0 gateway 172.17.250.1 Pressionar CTRL + X Pressionar Y Pressionar Enter (Salvar o arquivo no Pressionar CTRL + X caminho indicado) Pressionar Y APLICANDO AS CONFIGURAÇÕES /etc/init.d/networking restart Pressionar Enter (Salvar o arquivo no caminho indicado)
  • 41. Atualizar pacotes informações sobre repositórios apt-get update Manter o S.O. sempre atualizado apt-get upgrade Instalando VIM apt-get install vim Comandos Básicos VIM Pressionar INSERT 1x = Inserir Pressionar INSERT 2x = Substituir Pressionar SHIFT+Q = Abre modo de salvamento/saída Digitar wq = w - Salva o arquivo / q - Fecha o editor ! = Forçar Ex: wq! (Salva e sai forçadamente) / q! (Sai forçadamente)
  • 42. • Instalar pacote VIM: apt-get instal vim • editar o arquivo /etc/vim/vimrc e descomentar a linha syntax on
  • 43. • Instalar pacote NTPDATE: apt-get install ntpdate • criar o arquivo ntp em /etc/cron.hourly #!/bin/sh # # ATUALIZACAO DA HORA ntpdate pool.ntp.br exit 0 • Reiniciar o serviço CRON /etc/init.d/cron restart
  • 44. • Instalar pacote SSH: apt-get instal ssh • editar o arquivo /etc/ssh/sshd_config Port XXXX ... PermitRootLogin no ... PermitEmptyPassword no ... PasswordAuthentication yes • Editar arquivo securetty cp /etc/securetty /etc/securetty.ori echo “## Arquivo modificado ##” > /etc/securetty • Reiniciar o serviço SSH /etc/init.d/ssh restart
  • 45. • Instalar pacote SSH: apt-get instal ssh • editar o arquivo /etc/ssh/sshd_config Port XXXX ... PermitRootLogin no ... PermitEmptyPassword no ... PasswordAuthentication yes • Editar arquivo securetty cp /etc/securetty /etc/securetty.ori echo “## Arquivo modificado ##” > /etc/securetty • Reiniciar o serviço SSH /etc/init.d/ssh restart
  • 46. WORKER (PHP através de CGI) PREFORK (PHP como módulo do apache) • Cada request é tratato por um processo separado • Tolerante a falhas • Problema no processo filho não implica no pai • Estável • Pode ser utilizado com módulos não thread-safe
  • 47. WORKER (PHP através de CGI) apt-get install apache2-mpm-worker apt-get install php5 php5-cgi php5-cli apt-get install libapache2-mod-fcgid Adicionar as linhas abaixo dentro da seção Directory nos arquivos dos sites /etc/apache2/sites-enabled/xxxxxxx AddHandler fcgid-script .php FCGIWrapper /usr/lib/cgi-bin/php5 .php Options ExecCGI Ativar o Módulo: a2enmod NOMEDOMODULO (fcgid) Desativar o Módulo: a2dismod NOMEDOMODULO
  • 48. Para retirar a mensagem “Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName” Editar o arquivo httpd.conf e Adicionar a seguinte linha: ServerName NOMEDOSERVIDOR MYSQL: apt-get install php5-mysql POSTGRE: apt-get install php5-pgsql
  • 49. VHOST Criar o arquivo de configuração do site na pasta sites-available Editar o arquivo criado com as seguintes linhas: ServerAdmin email@admin.com.br ServerName www.nomedosite.com.br DocumentRoot /var/www/pastadosite <Directory /var/www/pastadosite/> Criar a pasta conforme indicado no arquivo de conf. Logs: ErrorLog ${APACHE_LOG_DIR}/error_nomedosite.log CustomLog ${APACHE_LOG_DIR}/access_nomedosite.log vhost_combined
  • 50. Certificado SSL apt-get install openssl ca-certificates Criar pasta cert dentro de /etc/apache2 e entrar na pasta criada Gerar a chave privada (Private Key): openssl genrsa -des3 -out nome_certificado.key 1024 (2048) Retirar a Senha da chave privada: openssl rsa -in nome_certificado.key -out nome_certificado_nopwd.key *** IMPORTANTE: executar chmod 600 nome_certificado_nopwd.key *** Gerar o pedido de certificação (Certificate Signing Request): openssl req -new -key nome_certificado.key -out nome_certificado.csr *** O Comon Name, deverá ter o mesmo nome do servidor, exemplo: host.dominio.com.br*** Assinar o certificado (Self-Signed Certificate): openssl x509 -req -days 365 -in nome_certificado.csr -signkey nome_certificado.key -out nome_certificado.crt
  • 51. Ativar o módulo SSL a2enmod ssl Editar o arquivo do site ssl com as seguintes linhas: ServerAdmin email@admin.com.br ServerName www.nomedosite.com.br DocumentRoot /var/www/pastadosite <Directory /var/www/pastadosite/> Logs: ErrorLog ${APACHE_LOG_DIR}/error_nomedosite.log CustomLog ${APACHE_LOG_DIR}/access_nomedosite.log vhost_combined SSLCertificateFile /etc/apache2/cert/cert_vhost1.crt SSLCertificateKeyFile /etc/apache2/cert/cert_vhost1_nopwd.key
  • 52. Páginas de erro personalizadas /etc/apache2/conf.d/localized-error-pages Melhorar Segurança Básica /etc/apache2/conf.d/security ServerTokens Prod ServerSignature Off TraceEnabler Off
  • 53. PREFORK (PHP como módulo do apache) apt-get install apache2-mpm-prefork apt-get install php5 libapache2-mod-php5 Para retirar a mensagem “Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName” Editar o arquivo httpd.conf e Adicionar a seguinte linha: ServerName NOMEDOSERVIDOR MYSQL: apt-get install php5-mysql POSTGRE: apt-get install php5-pgsql
  • 54. VHOST Criar o arquivo de configuração do site na pasta sites-available Editar o arquivo criado com as seguintes linhas: ServerAdmin email@admin.com.br ServerName www.nomedosite.com.br DocumentRoot /var/www/pastadosite <Directory /var/www/pastadosite/> Criar a pasta conforme indicado no arquivo de conf. Logs: ErrorLog ${APACHE_LOG_DIR}/error_nomedosite.log CustomLog ${APACHE_LOG_DIR}/access_nomedosite.log vhost_combined
  • 55. Certificado SSL apt-get install openssl ca-certificates Criar pasta cert dentro de /etc/apache2 e entrar na pasta criada Gerar a chave privada (Private Key): openssl genrsa -des3 -out nome_certificado.key 1024 (2048) Retirar a Senha da chave privada: openssl rsa -in nome_certificado.key -out nome_certificado_nopwd.key *** IMPORTANTE: executar chmod 600 nome_certificado_nopwd.key *** Gerar o pedido de certificação (Certificate Signing Request): openssl req -new -key nome_certificado.key -out nome_certificado.csr *** O Comon Name, deverá ter o mesmo nome do servidor, exemplo: host.dominio.com.br*** Assinar o certificado (Self-Signed Certificate): openssl x509 -req -days 365 -in nome_certificado.csr -signkey nome_certificado.key -out nome_certificado.crt
  • 56. Ativar o módulo SSL a2enmod ssl Editar o arquivo do site ssl com as seguintes linhas: ServerAdmin email@admin.com.br ServerName www.nomedosite.com.br DocumentRoot /var/www/pastadosite <Directory /var/www/pastadosite/> Logs: ErrorLog ${APACHE_LOG_DIR}/error_nomedosite.log CustomLog ${APACHE_LOG_DIR}/access_nomedosite.log vhost_combined SSLCertificateFile /etc/apache2/cert/cert_vhost1.crt SSLCertificateKeyFile /etc/apache2/cert/cert_vhost1_nopwd.key
  • 57. Páginas de erro personalizadas /etc/apache2/conf.d/localized-error-pages Melhorar Segurança Básica /etc/apache2/conf.d/security ServerTokens Prod ServerSignature Off TraceEnabler Off
  • 58. Complementos Firefox Firebug PageSpeed Apache Benchmarking ab -k -n 50000 -c 2 -e apache.cvs http://202.54.200.1/snkpage.html