Laboratório: Aplicação Web e Acesso Remoto: mudanças entre as edições
Linha 67: | Linha 67: | ||
;Instalação do servidor SSH: Obs: Instalar na Máquina Virtual. | ;Instalação do servidor SSH: Obs: Instalar na Máquina Virtual. | ||
Para instalar o '''servidor SSH''', digite: | Para instalar o '''servidor SSH''', digite: | ||
Linha 77: | Linha 74: | ||
ps -aux|grep ssh | ps -aux|grep ssh | ||
:Se o serviço estiver ativo, o processo '''sshd''' deve estar na lista dos processos rodando. | :Se o serviço estiver ativo, o processo '''sshd''' deve estar na lista dos processos rodando. | ||
;Testar o acesso remoto ao servidor SSH | ;Testar o acesso remoto ao servidor SSH | ||
Em outra máquina, que pode ser a máquina hospedeira da máquina virtual, fazer acesso remoto ao servidor | Em outra máquina, que pode ser a máquina hospedeira da máquina virtual, fazer acesso remoto ao servidor, por exemplo: | ||
ssh redes@192.168.10.X | |||
:onde X é o último byte do endereço IP do servidor. | |||
ssh redes@192.168.10. | |||
Execute comandos de arquivo e navegue na estrutura de diretórios do servidor, usando comandos como: | Execute comandos de arquivo e navegue na estrutura de diretórios do servidor, usando comandos como: | ||
ls | ls | ||
cd | cd | ||
;Cópia remota com servidor SSH (scp — ''secure copy'') | ;Cópia remota com servidor SSH (scp — ''secure copy'') | ||
Com o acesso remoto via SSH ao servidor, é possível ao cliente copiar arquivos do cliente para o servidor, e vice-versa: | Com o acesso remoto via SSH ao servidor, é possível ao cliente copiar arquivos do cliente para o servidor, e vice-versa: | ||
*Cópia de arquivos do cliente para o servidor | *Cópia de arquivos do cliente para o servidor, por exemplo: | ||
scp arquivo.html redes@192.168.10.X:. | |||
scp arquivo.html redes@192.168.10. | |||
:Obs: No exemplo acima pode-se especificar um caminho para o arquivo. O "." indica que o arquivo será copiado para o diretório home do usuário. | :Obs: No exemplo acima pode-se especificar um caminho para o arquivo. O "." indica que o arquivo será copiado para o diretório home do usuário. | ||
*Cópia de arquivos do servidor para o cliente | *Cópia de arquivos do servidor para o cliente, por exemplo: | ||
scp redes@192.168.10.X:/var/www/html/index.html . | |||
:Obs: No exemplo acima o arquivo index.html será copiado diretamente do diretório /var/www/html. O "." indica que o arquivo será copiado no diratório corrente do terminal do cliente. | |||
scp redes@192.168.10. | |||
:Obs: No exemplo acima o arquivo index.html será copiado diretamente do diretório /var/www. O "." indica que o arquivo será copiado no diratório corrente do terminal do cliente. | |||
;Exercícios: | ;Exercícios: | ||
#Use o '''SSH''' para copiar arquivos com '''páginas HTML''' do cliente para o '''servidor Web'''; | #Use o '''SSH''' para copiar arquivos com '''páginas HTML''' do cliente para o '''servidor Web'''; | ||
#Instale a página para o servidor como '''index.html''' no diretório '''/var/www'''. | #Instale a página para o servidor como '''index.html''' no diretório '''/var/www/html'''. | ||
#Verifique as '''permissões''' dos arquivos .html, pois estes arquivos devem ter acesso para leitura e execução por todos para poderem ser acessados via Web. | #Verifique as '''permissões''' dos arquivos .html, pois estes arquivos devem ter acesso para leitura e execução por todos para poderem ser acessados via Web. | ||
#Convide os colegas a visitarem sua página disponibilizada no seu servidor Web. | #Convide os colegas a visitarem sua página disponibilizada no seu servidor Web. |
Edição das 18h44min de 17 de abril de 2015
Laboratório: Aplicação Web e Acesso Remoto
Parte 1 - Laboratório sobre Aplicação Web
- Objetivos
Testar o funcionamento da aplicação Web e do protocolo HTTP e instalar um Servidor Web apache.
- Fundamentação
- A aplicação Web é uma aplicação que permite a um navegador (cliente) acessar páginas de hipertextos armazenadas em em servidor Web.
- Os navegadores e o servidor Web se comunicam através de mensagens do protocolo HTTP, utilizando como camada de transporte o protocolo TCP.
- Para que o navegador possa acessar uma página em um servidor Web o mesmo deve estar ativo, aguardando por pedidos de conexão TCP na porta 80.
- Uma vez aberta a conexão TCP entre o navegador e o servidor Web, o servidor será capaz de aceitar requisições HTTP vinda do navegador e servi-lo com respostas HTTP, incluindo dados, normalmente na forma de páginas HTML.
A parte cliente da aplicação Web é implementada pelos navegadores Web.
São exemplos de navegadores o Mozilla Firefox, o Google Chrome, o Safari padrão da Macintosh, o IExplorer padrão do Windows e outros.
Outro navegador interessante é o lynx que permite navegar na Web usando um terminal de textos.
- Instalação do lynx
- Obs: Instalar o lynx na máquina virtual.
sudo apt-get install lynx
- Testar o lynx
- Por exemplo, lendo as notícias de um jornal online
lynx www.folha.com.br
Servidores Web
Os servidores Web permitem armazenar as páginas Web e disponibilizá-las na Internet.
Um servidor Web bem conhecido é o apache, disponível como padrão nas versões do Linux e um dos mais utilizados na Internet.
- Instalação do apache
- Obs: Instalar o lynx na máquina virtual.
sudo apt-get install apache2
- Testar se o servidor Web está operando normalmente
- Em um navegador coloque no endereço da URL o endereço IP da máquina onde o apache foi instalado;
- Se tudo está funcionando, você verá a resposta padrão do apache.
- Armazenamento das páginas HTML no servidor apache
As páginas HTML a serem disponibilizadas pelo servidor apache ficam armazenadas do diretório:
/var/www/html
- Verificação da página padrão da instalação
cd /var/www/html ls cat index.html
Para que o servidor mostre uma página diferente deste padrão de instalação deve ser criada uma nova página index.html.
Parte 2 - Acesso remoto ao servidor
A aplicação de acesso remoto é uma aplicação cliente/servidor, na qual um programa cliente, através de um terminal, poderá fazer um login remoto no servidor.
O programa do lado cliente é diferente do programa do lado servidor, pois no servidor a aplicação de acesso remoto deve estar ativa e aguardando conexões por parte dos clientes.
Duas aplicações de acesso remoto bem conhecidas nos sistemas Linux são o SSH e o telnet, entretanto, dicilmente vamos encontrar servidores telnet ativos na Internet, pois no telnet as senhas trafegam em formato ASCII, sem criptografia, o que facilita o ataque de hackers visando obter a senha dos usuários.
Acesso remoto com SSH
O SSH (Secure Shell) possibilita acesso remoto seguro, através do uso de criptografia na conexão entre o cliente e o servidor.
O cliente e o servidor SSH se comunicam utilizando como camada de transporte o protocolo TCP e o servidor fica aguardando por pedidos de conexão na porta 22.
- Instalação do servidor SSH
- Obs: Instalar na Máquina Virtual.
Para instalar o servidor SSH, digite:
sudo apt-get install openssh-server
Para verificar se o serviço de acesso remoto com SSH está ativo, digite:
ps -aux|grep ssh
- Se o serviço estiver ativo, o processo sshd deve estar na lista dos processos rodando.
- Testar o acesso remoto ao servidor SSH
Em outra máquina, que pode ser a máquina hospedeira da máquina virtual, fazer acesso remoto ao servidor, por exemplo:
ssh redes@192.168.10.X
- onde X é o último byte do endereço IP do servidor.
Execute comandos de arquivo e navegue na estrutura de diretórios do servidor, usando comandos como:
ls cd
- Cópia remota com servidor SSH (scp — secure copy)
Com o acesso remoto via SSH ao servidor, é possível ao cliente copiar arquivos do cliente para o servidor, e vice-versa:
- Cópia de arquivos do cliente para o servidor, por exemplo:
scp arquivo.html redes@192.168.10.X:.
- Obs: No exemplo acima pode-se especificar um caminho para o arquivo. O "." indica que o arquivo será copiado para o diretório home do usuário.
- Cópia de arquivos do servidor para o cliente, por exemplo:
scp redes@192.168.10.X:/var/www/html/index.html .
- Obs: No exemplo acima o arquivo index.html será copiado diretamente do diretório /var/www/html. O "." indica que o arquivo será copiado no diratório corrente do terminal do cliente.
- Exercícios
- Use o SSH para copiar arquivos com páginas HTML do cliente para o servidor Web;
- Instale a página para o servidor como index.html no diretório /var/www/html.
- Verifique as permissões dos arquivos .html, pois estes arquivos devem ter acesso para leitura e execução por todos para poderem ser acessados via Web.
- Convide os colegas a visitarem sua página disponibilizada no seu servidor Web.
- Acesse sua página Web com o navegador lynx.
Acesso remoto com telnet
Devido a ausência de criptografia na comunicação entre o servidor e o cliente, o telnet não é utilizado para acesso remoto.
Por padrão, o telnet utiliza na camada de transporte o protocolo TCP e a porta 23, mas dificilmente encontraremos um servidor disponível para conexão.
Entretando, é possível utilizar o telnet para abrir conexões TCP em outras portas normalmente abertas a conexões, como por exemplo, a porta 80 de um Servidor Web ou a porta 25 de um Servidor de Email.
- Exercício
- Abra uma conexão TCP, usando telnet, na porta 80 do seu servidor Web, por exemplo:
telnet 192.168.10.50 80
- Envie via teclado uma mensagem ASCII de requisição HTTP ao seu servidor Web pedindo uma página HTML, por exemplo:
GET /index.html HTTP/1.0
- Obs: Note que foi incluído no pedido HTTP a versão do protocolo como HTTP/1.0. Isto é necessaŕio porque com o telnet na porta 80 não é possível implementar "conexões TCP persistentes", que os navegadores com a versão HTTP/1.1 conseguem implementar.
Análise:
- Verifique a resposta HTTP do servidor Web.
- Envie novamente uma mensagem de pedido HTTP e troque a versão do protocolo para HTTP/1.1 e veja a resposta.
- Envie outra mensagem de requisição HTTP e solicite outro arquivo, como teste.html, e veja a resposta.
--Evandro.cantu (discussão) 10h37min de 12 de junho de 2014 (BRT)