Вы находитесь на странице: 1из 99

UFCD 0800

Serviços adicionais de rede

Curso de Programador/a de
Informática

Disciplina Redes de Comunicação


Sumário

Aula 1. Sistema Operacional Linux.............................................................................7


1.1 Introdução...........................................................................................................................7
1.2 Distribuição Debian GNU/Linux.......................................................................................8
1.3 Instalando o Debian..........................................................................................................8
1.3.1 Virtualização.........................................................................................................8
1.3.2 Configurando uma máquina virtual.................................................................13
1.3.3 Instalação do Debian na máquina virtual.......................................................17
1.4 Exercícios..........................................................................................................................32

Aula 2. Shell..................................................................................................................33
2.1 Introdução.........................................................................................................................33
2.2 Comandos para manipulação de diretório....................................................................34
2.2.1 Comando ls.........................................................................................................35
2.2.2 Comando cd........................................................................................................36
2.2.3 Comando pwd.....................................................................................................37
2.2.4 Comando mkdir..................................................................................................37
2.2.5 Comando rmdir..................................................................................................38
2.3 Comandos para manipulação de arquivo.....................................................................38
2.3.1 Comando cat.......................................................................................................38
2.3.2 Comando rm.......................................................................................................39
2.3.3 Comando cp.......................................................................................................39
2.3.3 Comando mv......................................................................................................40
2.4 Manipulação de contas...................................................................................................41
2.4.1 Comando groupadd...........................................................................................43
2.4.2 Comando useradd.............................................................................................43
2.4.3 Comando passwd..............................................................................................44
2.4.4 Comando userdel..............................................................................................45
2.4.5 Comando groupdel............................................................................................45
2.5 Manipulação de permissões..........................................................................................45
2.5.1 Comando chmod...............................................................................................47
2.5.2 Comando chown...............................................................................................49
2.5.3 Comando chgrp.................................................................................................50
2.6 Instalação de Programas................................................................................................50
2.7 Exercícios..........................................................................................................................54

Aula 3. Serviço DNS....................................................................................................56


3.1 Introdução.........................................................................................................................56
3.2 Tipos de consultas DNS..................................................................................................58
3.3 Instalando e configurando um servidor DNS................................................................62
3.4 Exercícios..........................................................................................................................68

Aula 4. Serviço WEB...................................................................................................69


4.1 Introdução..........................................................................................................................69
4.2 Instalando e Configurando o Servidor Web..................................................................70
4.3 Preparando o servidor web para hospedar um site.....................................................72
4.4 Analisando o log de acesso............................................................................................76
4.5 Exercícios..........................................................................................................................77

Aula 5. Serviço FTP.....................................................................................................78


5.1 Introdução.........................................................................................................................78
5.2 Instalando e Configurando o Servidor FTP..................................................................79
5.3 Criando usuário WebDesigner.......................................................................................81
5.4 Exercícios..........................................................................................................................83

Aula 6. Serviço E-Mail.................................................................................................84


6.1 Introdução..........................................................................................................................84
6.2 Instalando e Configurando o Servidor E-mail...............................................................85
6.3 Enviando um E-mail........................................................................................................87
6.4 Lendo um E-mail..............................................................................................................88
6.5 Exercícios..........................................................................................................................89

Aula 7. Acesso Remoto..............................................................................................90


7.1 Introdução.........................................................................................................................90
7.2 Instalando e Configurando o OpenSSH........................................................................91
7.3 Fazendo login remoto no OpenSSH.............................................................................92
7.4 Exercícios..........................................................................................................................93

Palavras finais...............................................................................................................94

Bibliografia básica........................................................................................................95

Currículo do professor-autor......................................................................................96
Aula 1. Sistema Operacional Linux

Objetivos

– Ter noções sobre a história do sistema operacional GNU/Linux


– Saber o que é uma distribuição
– Aprender sobre virtualização
– Instalar do GNU/Linux Debian

1.1 Introdução

Linux ou GNU/Linux é um sistema operacional que utiliza um kernel


(núcleo do sistema operacional) desenvolvido pelo finlandês Linus Torvalds. O
Linux pode ser usado como alternativa a outros sistemas operacionais como
MS Windows, Mac OS, MS-DOS, Solaris entre outros.
Quando Linus Torvalds era estudante da Universidade de Helsinki, ele
estava usando uma versão do sistema operacional UNIX chamado Minix. Linus
Torvalds e outros usuários enviaram pedidos de modificações e melhorias ao
criador do Minix, Andrew Tanenbaum, mas o mesmo disse que não havia
necessidade de alterações. Sendo assim, Linus Torvalds decidiu criar o próprio
sistema operacional que deveria ter sugestões e melhorias de outros usuários.
Esta filosofia de pedir sugestões, melhorias aos usuários e utilizá-los nos
programas de computadores não é novidade. Richard Stallman, que trabalhou
no Instituto de Tecnologia de Massachusetts, vem defendendo uma abordagem
para programas de computadores e seu uso deste 1970. Ele foi o pioneiro no
conceito do software livre1, sempre dizendo que livre significa liberdade, não a
custo zero. Encontrando dificuldades para continuar a trabalhar em condições
que era contra o seu conceito de "software livre", Richard Stallman deixou o
MIT em 1984 e fundou o projeto GNU General Public License (GNU GPL). O
objetivo do GNU GPL era produzir um software que era livre para usar,
distribuir e modificar. Objetivo de Linus Torvalds, seis anos mais tarde, foi
basicamente o mesmo: produzir um sistema operacional que levou em conta o
feedback do usuário.
O ponto principal de um sistema operacional é o seu kernel. Ele faz a
comunicação entre os programas e os processamentos feitos em nível de
hardware. As responsabilidades do kernel incluem gerenciamento de
processos, gerenciamento de memória, gerenciamento de dispositivos e
chamadas de sistema.

1 Software Livre: http://www.debian.org/intro/free

7
1.2 Distribuição Debian GNU/Linux

O projeto Debian GNU/Linux é uma associação de pessoas que tem


uma causa comum que é criar um sistema operacional livre, desta forma
surgindo este projeto. É desenvolvido por mais de mil programadores
espalhados pelo mundo. Estes programadores são voluntários em seus tempos
livres, sendo que poucos se conhecem pessoalmente. Trocas de informações
são feitas através de e-mails e IRC (Internet Relay Chat). Mesmo a distribuição
sendo feita se certa forma à distância, existe uma estrutura organizacional 2
bem definida.
O Debian utilizam o kernel do Linux ou do FreeBSD. Todavia, existem
esforços em prover outros kernels para o Debian como Hurd. Hurd é um
software livre produzido pelo projeto GNU.

1.3 Instalando o Debian

Antes de ser feita a instalação do Debian, é preciso entender que


existem alguns tipos de instalações como as citadas abaixo:
• Utilizando o disco rígido inteiro do computador, assim existirá
apenas o Debian em seu computador;
• Redimensionando a partição do disco rígido, ou seja, será
liberado um espaço no disco (utilizando ferramentas próprias)
para ser instalado o Debian nesta partição mantendo desta forma
o seu sistema operacional (ex. Windows) e o Debian instalados
juntos. Quando for ligado o computador aparecerá uma tela
perguntando em qual sistema será inicializado (Windows ou
Linux).
• Utilizando virtualização, desta forma será necessário instalar um
programa de virtualização em seu computador e dentro deste
programa será instalado qualquer sistema operacional. Desta
forma o sistema operacional que já existe em seu computador
não será alterado em nada.

1.3.1 Virtualização

A opção a ser adotada para instalar o Debian será fazendo o uso de


virtualização.
Mas por que utilizá-lo?
A criação de um ambiente virtual permite simular um ambiente real,
propiciando a utilização de diversos sistemas e aplicativos. A principal
vantagem é em termos econômicos pois assim podemos utilizar o máximo do
poder de processamento do hardware evitando desperdícios computacionais.

2 Estrutura Organizacional: http://www.debian.org/intro/organization

8
A virtualização consistem em executar vários sistemas operacionais no
mesmo computador de forma simultânea. Isto é possível com o uso de
programas específicos que geram máquinas virtuais: estas emulam os
componentes físicos do computador, possibilitando que um sistema
operacional diferente seja instalado em cada máquina virtual.
Há outras duas vantagens na adoção desta tecnologia: uma voltada a
usuários, outra a servidores.
No caso dos usuários consiste em eliminar a incompatibilidade entre
aplicativos e sistemas operacionais. Pense em um usuário cujo computador
tenha o Windows Vista instalado, mas que deseje executar um aplicativo que
só é compatível com o Windows XP. Isso é possível com a criação, neste
computador, de uma máquina virtual que execute o Windows XP, depois é só
instalar o aplicativo nesta máquina virtual e executá-lo normalmente (como se
fosse um computador dentro do outro).
Quanto aos servidores, sua virtualização permite que, ao invés de se ter
diversos servidores (que utilizam apenas uma porcentagem dos recursos), os
precessos sejam distribuídos de forma equilibrada entre um número menor de
computadores (assim chegam mais próximos do aproveitamento total de sua
capacidade). Isto reduz a quantidade de mão-de-obra técnicas, o espaço para
alocar os computadores e o gasto com eletricidade, permitindo assim
economia.
O programa a ser utilizado para fazer a virtualização é o VirtualBox3 que
é mantido pela Oracle4. Este programa está disponível como um software de
código aberto sob os termos do GNU GPL versão 2. Pode ser instalado em
vários sistemas operacionais como plataformas Windows, Linux, Macintosh e
Solaris.
Para poder fazer o download do programa acesse o site do VirtualBox,
sessão downloads e escolha o pacote para o seu sistema operacional. Ex.:
caso o seu computador tenha instalado o sistema operacional Windows, clique
na opção x86/amd64 referente a VirtualBox 4.2 for Windows hosts.
Após fazer o download do programa, faça a instalação do mesmo
clicando duas vezes no arquivo do programa e seguindo os passos abaixo.

4 Oracle: http://www.oracle.com/index.html

9
3 VirtualBox: https://www.virtualbox.org/

4 Oracle: http://www.oracle.com/index.html

1
0
Passo 1:
Quando aparecer a
tela mostrada pela
figura 1.1 clique no
botão Next para
proceder com a
instalação.

Pass
o 2:
Esta
tela
exibe
opçõ
es
Figura 1.1 – Tela inicial de instalação do VirtualBox para
pode
r
custo
mizar
sua
instal
ação.
Figura 1.2 – Tela
Não
de customização
altere da instalação do
nenh VirtualBox
uma
infor
maçõ
es e
cliqu
e no
botão
Next
para
conti
nuar
com
a
instal
ação.

Passo
3:
Esta tela permite
Área de Trabalho
computador, não
nenhuma opção
Next

10
Passo
6:
Figura 1.3 – Permite criar o ícone do programa na área de Lo
trabalho go
ap
ós
Passo 4: co
Esta tela m
permite instalar eç
as interfaces de ar
rede virtuais á
para as a
máquinas ins
virtuais Figura 1.6 – tal
poderem ter Tela de aç
acesso a rede. instalação das ão
Clique no botão interfaces de do
Yes para rede pr
aceitar a ob
instalação. ra
m
Figura 1.4 – Tela de instalação das
a
interfaces de rede
co
m
Passo 5: o
Esta tela permite m
instalar as os
interfaces de tra
rede virtuais do
para as na
máquinas fig
virtuais poderem ur
ter acesso a a
rede. Clique no 1.
botão Install 6.
para aceitar a
instalação.
Passo 7:
Figura 1.5 – Tela de instalação das E
interfaces de rede s
t
a

t
e
l
a
Figura 1.7 –
Tela de p
instalação do
módulo USB e
r

11
mite instalar o módulo computador.
USB para as máquinas Clique no
virtuais reconhecerem botão Passo
os dispositivos USB que Instalar. 10:
forem conectados no Depoi
s da
instal
ação
exec
ute o
Figura 1.10 – progr
Passo 8: Tela de ama.
Esta tela finalização da A
permite instalar instalação figura
o módulo 1.10
Serviço de 1.3.2 Configur mostr
Rede como por ando aa
exemplo serviço uma tela
DHCP para as máquina princi
máquinas virtual pal
virtuais do
receberem IP. Virtua
Clique no botão Figura 1.8 – Tela de instalação do serviço lBox.
Instalar. de rede

O processo de
criar uma máquina
virtual é como se
estivess montando
um computador
Passo 9: fisicamente, onde
Depois de terá que ter memória
terminar a principal (memória
instalação será RAM), disco rígido
mostrada a tela
(HD), unidade de
da figura 1.9.
Clique no botão
DVD-ROM dentre
Finish. outros dispositivos
comuns de um
computador. Sendo
assim, siga os passos
abaixo:
Pass para poder
o 1: começar a criar
Figura 1.9 – Tela de finalização da Após a máquina
instalação aces virtual. Como
sar o mostrado na
progr figura 1.11
ama coloque o nome
cliqu da máquina
e no virtual e escolha
botão qual o sistema
Novo operacional que
12
será mostrado.
Faça igual ao
da figura.
Passo
Depois clique
3:
no botão
Est
Próximo(N).
a
tel
a
per
mit
e
cri
ar
o
Figura 1.11 – Tela inicial de criação da dis
máquina virtual Figura 1.13 – co
Tela de criação rígi
Passo 2: do disco rígido do
A próxima tela da
(figura 1.12) má
mostra a qui
configuração do na
tamanho da virt
memória ual
principal que a .De
máquina virtual ixa
irá usar.O a
próprio co
VitualBox nfi
calcula o gur
Figura 1.12 – Tela configuração do tamanho ideal aç
tamanho da memória RAM com relação à ão
configuração do pa
seu drá
computador. e
Não altere o cliq
valor. Clique no ue
botão Próximo no
(N). bot
ão
Cri
ar.

Pass lher qual o tipo


o 4: de arquivo será
A criado para o
próxi dísco rígido.
ma Toda máquina
tela virtual criada será
per armazenada em
mite um diretório e o
esco disco rígido será

13
representado
por um arquivo.
Deixe a Passo
configuração 6:
padrão e clique Este
no botão pass
Próximo(N). o
per
mite
digit
ar
um
nom
e
Figura 1.14 – Tela de criação do disco rígido para
o
Figura 1.16 – disc
Passo 5: Tela de o
Esta tela localização e rígid
permite tamanho do oe
escolher qual disco rígido
ond
tipo de
e ele
armazemanto
será
será criado. A
arm
opção
azen
dinamicament
ado.
e alocado
Deix
permite que o
ea
arquivo criado
confi
cresça à
gura
medida que
ção
seja instalados
Figura 1.15 – Tela tipo de armazenamento padr
programas ou
em disco rígido físico ão e
copiados
cliqu
arquivos para
e no
dentro da
botã
máquina
o
virtual. Deixe a
Cria
configuração
r.
padrão e clique
no botão Passo 7:
Próximo(N). D
e
p
o
i
s

d
e

c
r
i
14
a d
r o

a V
i
m r
á t
q u
u a
i l
n B
a o
x
v
i c
r o
t m
u
a t
l o
, d
a
s s
e
r a
á s

m m
o á
s q
t u
r i
a n
d a
a s

a v
i
t r
e t
l u
a a
i
p s
r
i c
n r
c i
i a
p d
a a
l s
,
15
n
e
s
t
e F
igura 1.17 – Tela principal
c com a máquina virtual
a criada
s
o

s
o
m
e
n
t
e

m
á Figura 1.18 – Tela de
q configuração da imagem
ISO do Debian.
u
i
n
a

v
i
r
t
u
a
l

D
e
b
i
a
n

S
q
u
e
e
z
e
.
16
Passo 8: Para poder fazer a instalação de um sistema operacional,
utilizamos uma mídia DVD contendo o sistema e efetuamos a inicialização do
computador através deste DVD. Em nosso caso, como estamos fazendo uso
da virtualização temos a opção de fazer a instalação dos sistemas operacionais
nas máquinas virtuais através de imagens ISO5. Sendo assim, selecione a
máquina virtual Debian Squeeze na tela principal do VirtualBox e logo em
seguida clique na opção Configurações como mostrado na figura 1.17 (na
marcação em verde). Depois disso será mostrada a tela representada pela
figura 1.18 onde deve ser selecionado a opção Armazenamento,
Controladora IDE/Vazio, e no símbolo que represenda uma mídia de CD/DVD
(seta vermelha). Após selecionar esta opção clique em Selecione um arquivo
de CD/DVD virtual, assim irá aparecer uma tela de diálogo pedindo para
selecionar a imagem ISO de instalação do Debian. Para adquirir uma imagem
ISO do Debian é só fazer o download na página oficial6 do projeto.

Passo 9:
Após a seleção do
arquivo ISO a tela irá
ficar semelhante a da
figura 1.19. Sendo
assim, clique no botão
OK para voltar à tela
principal.

Figura 1.19 – Tela de configuração da imagem ISO do Debian.

5 Imagens ISO: é toda a informação de um CD/DVD contida em um único arquivo


com extensão ISO.
6 Página Oficial: http://cdimage.debian.org/debian-cd/6.0.6/amd64/iso-dvd/debian-
6.0.6-amd64-DVD-1.iso
1.3.3 Instalação do Debian na máquina virtual

Depois da máquina virtual criada basta seguir os passos abaixo para


poder fazer a instalação da distribuição Debian.
Passo 1:
Para iniciar a máquina
virtual, selecione
Debian Squeeze e
clique no botão Iniciar,
como indicado na
marcação verde.

Figura 1.20 – Tela principal

Passo 2:
Depois de ser iniciada a
máquina virtual, será
mostrada a tela de
instalação do Debian
(figura 1.21). Clique
dentro da tela de
instalação do Debian
para começar a fazer a
instalação.

Figura 1.21 – Tela principal de instalação do Debian


Passo 3:
Ao clicar dentro da tela
de instalação do
Debian, será mostrada
a tela da figura 1.22
dizendo que o mouse e
o teclado estarão
focados na máquina
virtual, clique no botão
Capturar. Para poder
liberar o mouse e o
teclado basta
pressionar a tecla Ctrl
do lado direito do
Figura 1.22 – Aviso de captura do mouse e teclado teclado.
Após a captura do mouse e teclado deixe selecionado a opção Install e
pressione a tecla Enter para começar a instalação do Debian.
Passo 4:
Será mostrada a tela
para escolher a
linguagem desejada.
Com a seta do teclado
navegue para baixo até
encontrar a opção
Portuguese (Brazil) –
Português do Brasil.
Depois pressione a
tecla Enter.

Figura 1.23 – Escolha da linguagem

Passo 5:
A próxima tela permite
selecionar a localidade.
Deixe marcada a opção
Brasil e pressione a
tecla Enter.

Figura 1.24 – Selecione sua localidade

Passo 6:
Selecione o layout do
teclado sendo
Português Brasileiro
(layout ABNT2). Este
layout é para os
teclados que possuem
a tecla ç. Caso seu
teclado não possua a
tecla ç escolha a opção
Português. Pressione
a tecla Enter.

Figura 1.25 – Escolha do layout do teclado


Passo 7:
Carregando
componentes adicionais
para a instalação do
Figura 1.26 – Componentes adicionais para instalação Debian.

Passo 8:
Tela para informar
o nome do
computador. Deixe
o nome Debian e
pressione Enter.

Figura 1.27 – Tela para informar o nome do computador

Passo 9:
Informe o domínio que o
computaor irá pertencer,
em nossa instalação
digite localhost. Isto
significa que o domínio é
o próprio computador e
depois pressione Enter.

Figura 1.28 – Tela para informar o domínio do computador

Passo 10:
Informe a senha do
usuário root
(administrador do
Linux). A senha será
123456 e depois
pressione a tecla
Enter.

Figura 1.29 – Tela para informar a senha do usuário root

Passo 11:
Confirme a senha do
usuário root 123456
e depois pressione a
tecla Enter.

Figura 1.30 – Tela para informar a senha do usuário root


Passo 12:
O próximo passo é
criar uma conta de
usuário comum (sem
muitos privilégios).
Digite o nome
completo da conta do
usuário chamado
usuario do curso de
redes e pressione a
tecla Enter.

Figura 1.31 – Tela para informar o nome completo do usuário


Pa rio e depois
ss pressione a
o tecla Enter.
13:
Est
a
tela
per
mit
e
digi
tar
o
no
me
da
con
ta
do
usu
ári
o
qu
e
est
á
sen
do
cria
do.
D
i
g
it
e
u
s
u
a
20
Figura 1.32 – Tela para informar o nome da conta escolher o fuso
do usuário horário

Pass
o 16:
L
o
g
o
e
Passo 14:
m
O próximo
passo é
s
digitar uma
e
senha para
g
a conta
u
usuario.
i
Digite a
d
senha
Figura 1.33 – Tela para informar a senha do a
123456 e
usuário e
depois
s
pressione a
c
tecla Enter.
o
l
Passo 15: h
Confirme a a
senha para o
a conta f
usuario. u
Digite a s
senha o
123456 e h
depois Figura 1.34 – Tela para confirmar a senha do o
pressione a usuário r
tecla Enter. á
ri
o
.
D
e
i
x
e
m
a
r
c
a
d
a
a
Figura 1.35 – o
Tela para p

21
ção São Paulo e depois pressione a tecla Enter. Figura 1.38 –
Tela de
particionamento
Passo 17: de discos
Pass
Carregand
o 19:
o os
E
component
st
es de
a
particiona
te
mento de Figura 1.36 – Tela carregando componentes
adicionais de discos la
discos.
m
o
Passo 18: st
Esta tela ra
permite o
escolher di
qual tipo s
padrão de c
particionam o
ento será q
feito. u
Escolha a e
opção fo
Manual e i
pressione a cr
tecla Enter. ia
Figura 1.37 – Tela de particionamento de discos d
o
Particionar um disco significa dividi-lo em partes n
lógicas, para o sistema operacional é como se a
existissem vários discos rígidos. No Linux, de uma m
forma padrão, existem duas partições que são á
criadas: a partição de troca7 (onde o sistema q
operacional faz troca de informações entre memória ui
principal e o disco rígido) e a partição onde será n
a
instalado o sistema operacional.
vi
rt
7 Partição de troca: conhecido também como partição de u
swap. al
.
S
el
e
ci
o
n
e
e
st
e
di
s

22
co e pressione a tecla Enter para criar a t
tabela de partição do disco. a

t
Passo 20: e
Selecione a l
opção Sim a
para aceitar
a criação da p
tabela de e
partição no r
disco e m
pressione a i
Figura 1.39 – Tela de particionamento de discos
tecla Enter. t
e

d
e
f
i
n
i
r

t
a
m
Figura 1.40 – Tela de particionamento de discos
a
n
Passo 21: A figura 1.40 mostra a tabela de h
partição criada. Agora basta pressionar a tecla Enter a
para começar a criar as partições necessárias para a
instalação do Linux. d
a

p
Passo 22: a
Esta tela r
permite criar t
uma nova i
partição para ç
o seu disco ã
rígido. o
Pressione a
tecla Enter a
Figura 1.41 – Tela de particionamento de para criar a
discos partição. s
e
Passo 23: r
E
s c
23
Figura 1.42 – Tela de particionamento de discos (tam. da partição)

r
i f
a i
d g
a u
. r
a
D
i 1
g .
i 4
t 2
e ,

o e
s
t t
a e
m
a t
n a
h m
o a
n
d h
e o

1 s
e
G r
B á
,
p
i a
g r
u a
a
l a

a p
o a
r
i t
n i
d ç
i ã
c o
a
d d
o e

n T
a r
24
o e a
c
a a E
. n
D t t
e e e
p c r
o l .
i
s
Pas
p
so
r
25:
e
Est
s
e
s
pon
i
to
o
per
n
mit
e
e
Figura 1.44 –
crai
a ra
Partição pode ser
criada no Início ou
part Fim do disco
t ição
e no
c iníci
l o
a ou
fim
E do
n disc
t o
e rígi
r do.
. Esc
A partição de troca (swap) permite estender o olh
aa
tamanho da memória principal (RAM) utilizando a
opç
memória secundária (disco rígido). ão
Iníc
io e
Passo 24: dep
Aqui ois
você vai pre
escolher ssio
o tipo de ne
partição a
a ser tecl
criado. a
Escolha Ent
Figura 1.43 – Tipo de partição
Primária er.
e depois
pression

25
Figura 1.45 – Configuração da partição

Passo 26: neste passo (figura 1.45) você poderá escolher qual o tipo de
sistemas de arquivos esta partição terá. Como estamos criando uma partição
de Troca, existe um sistema de arquivos específico para isto. Sendo assim,
selecione a opção Usar Como e pressione a tecla Enter para escolher o
sistema de arquivos correto.

Passo 27:
Esta tela permite você
escolher o sistema de
arquivos correto para a
partição que está sendo
criada. Escolha o sistema de
arquivos área de troca
(swap) e depois pressione a
tecla Enter.

Figura 1.46 – Escolha do tipo de partição


Passo 28:
Depois de escolhido
o sistema de
arquivos, será
mostrada esta tela
com as
configurações
corretas. Sendo
assim, selecione a
opção Finalizar a
configuração da
Figura 1.47 – Finaliza a configuração da partição partição e depois
pressione a tecla
Enter.

Figura 1.48 – Tela de particionamento de discos com partição de troca (swap) criada

Passo 29: neste passo você terá que criar outra partição. É nesta
partição que será feita a instalação do sistema operacional Linux. Sendo assim,
selecione a opção ESPAÇO LIVRE e pressione a tecla Enter.

Passo 30:
Esta tela permite criar uma nova
partição para o seu disco rígido.
Pressione a tecla Enter para
criar a partição.

Figura 1.49 – Tela de particionamento de discos


Passo 31:
Esta tela permite
definir o tamanho da
partição. Deixe o
tamanho total a ser
utilizado e depois
pressione a tecla
Enter.
Figura 1.50 – Tela de particionamento de discos (tam. da partição)

Passo 32:
Aqui você vai
escolher o tipo de
partição a ser criado.
Escolha Primária e
depois pressione a
tecla Enter.

Figura 1.51 – Tipo de partição

Figura 1.52 – Configuração da partição

Passo 33: esta tela mostra a configuração padrão da partição onde será
instalado o Linux. A opção Usar como mostra o tipo de sistema de arquivos
que será utilizado pelo Linux Sistema de arquivos com “journaling” ext3. O
Ponto de montagem: / refere-se onde será instalado o Linux. Fazendo uma
analogia com o sistema operacional da Microsoft (Windows), é como se fosse a
letra C:\ significando que o Windows foi instalado a partir deste ponto. No Linux
o símbolo Barra (/) significa que o sistema operacional é instalado a partir
deste ponto. Deixte estas configurações padrões (como mostrado na figura
1.52), selecione a opção Finalizar a configuração da partição e depois
pressione a tecla Enter.
Passo 34:
Esta tela mostra
todas as partições
criadas. Sendo assim,
selecione a opção
Finalizar o
particionamento e
escrever as
mudanças no disco.
Depois pressione a
tecla Enter.

Figura 1.53 – Tela de particionamento de discos

Passo 35:
Selecione a opção
Sim para aceitar as
modificações das
partições criadas e
depois pressione a
tecla Enter.

Figura 1.54 – Tela para aceitar as configurações de partição feitas

Figura 1.55 – Tela de formatação das partições criadas

Passo 36: fazendo a formatação das partições criadas. A formatação


serve para preparar a partição para receber a estrutura de diretórios e arquivos
do sistema operacional. Assim, o sistema operacional é capaz de ler e gravar
informações no disco.

Figura 1.56 – Tela de instalação do sistema básico

Passo 37: neste passo está sendo instalado o sistema básico do Linux.
Figura 1.57 – Tela de configuração do gerenciador de pacotes

Passo 38: esta tela permite ser catalogado outros CD/DVD's. Toda vez
que for instalado um novo programa no Linux, utilizando o comando aptitude
(mostrado na Aula 2), será pesquisado neste catálogo e o mesmo irá pedir o
CD/DVD correto que possui o programa. A imagem ISO que está sendo usada
para instalar o Linux já foi catalogada sendo assim escolha a opção Não (para
não catalogar outra imagem/cd) e pressione a tecla Enter.

Figura 1.58 – Tela de configuração do gerenciador de pacotes

Passo 39: esta opção permite configurar um espelho de rede para poder
instalar novos programas ou atualizar programas já instalados através da
Internet. Em nosso laboratório de instalação vamos escolher a opção Não e
pressionar a tecla Enter. Pois que será utilizado nesta instalação já está na
imagem de instalação.

Figura 1.59 – Tela de instalação dos programas restantes do Linux básico


Passo 40: esta tela mostra o restante da instalação básica do Linux.

Figura 1.60 – Tela de configuração de estatísticas de uso de pacotes (programas)

Passo 41: neste passo é possível participar de um levantamento dos


programas mais utilizados no Debian para os desenvolvedores colocarem no
primeiro CD/DVD de instalação da distribuição. Mas em nossos exercícios
vamos escolher a opção Não e pressionar a tecla Enter.

Figura 1.61 – Tela de seleção de softwares

Passo 42: neste passo é possível escolher os serviços que queremos


executar no Debian. Mas deixe as configurações padrões e pressione a tecla
Enter. Os programas de serviços como WEB, DNS, arquivos serão vistos nas
aulas seguintes e instalados após a instalação do Debian. Será feito desta
forma para poder nos familiarizarmos melhor com a distribuição.
Figura 1.62 – Tela de seleção do GRUB

Passo 43: após ser instalado todos os programas selecionados, será


mostrada a tela acima (figura 1.62) pedindo para instalar o GRUB8 no disco
rígido. O GRUB é um gerenciador de boot de sistemas operacionais. Ex.: caso
o seu computador tenha dois sistemas operacionais (Windows e Linux), o
gerenciador de boot permite você escolher um dos dois sistemas operacionais
que queira utilizar quando ligar o computador. Sendo assim, escolha a opção
Sim e pressione a tecla Enter.

Figura 1.63 – Instalando o GRUB

Passo 44: este passo mostra a instalação do GRUB.

Figura 1.64 – Instalação finalizada

Passo 45: este passo mostra a finalização da instalação do Debian.


Pressione a tecla Enter para ser reinicializada a máquina virtual e ter acesso
ao novo sistema operacional instalado.

8 GRUB: Grand Unified Boot Loader


30
Figura 1.65 – Tela do GRUB

Passo 46: este passo permite você escolher a inicialização padrão do


Debian (Debian GNU/Linux, with Linux 2.6.32-5-amd64) ou escolher o modo
de recuperação (Debian GNU/Linux, with Linux 2.6.32-5-amd64 recovery
mode) caso o sistema tenha algum problema. Pressione a tecla Enter para
inicializar o Debian ou não faça nada que o sistema inicializa sozinho.

Figura 1.66 – Tela de login do Debian


Passo 47: tela de sessão do Debian, selecione o usuário chamado
usuario para digitar a senha 123456 e ter acesso ao ambiente de trabalho do
Debian.

Figura 1.67 – Área de trabalho do Debian

Passo 48: depois de ter digitado usuário/senha, será mostrada a área


de trabalho do Debian.

1.4 Exercícios

1) Quem criou/desenvolveu o GNU/Linux?

2) Faça uma pesquisa na Internet sobre GNU General Public License.

3) O que é uma distribuição Linux? Além da distribuição Debian existem outras,


cite outras duas distribuições e algumas características delas.

4) Para a instalação da distribuição do Debian foi feito o uso de virtualização.


Cite algumas vantagens em se utilizar virtualização e outros programas que
trabalham com virtualização (além do VirtualBox).

5) Durante a instalação do Debian, foram criadas duas partições no disco


virtual. Para que serve a partição de troca e a partição representada por uma
barra “/”?

6) Para que serve o programa chamado GRUB?


Aula 2. Shell

Objetivos

– Conhecer o que é Shell


– Manipular diretórios/arquivos
– Fazer a manutenção de usuários/grupos
– Instalar de programas

2.1 Introdução

Shell é um programa executado após a inicialização do sistema Linux


que serve como interpretador de comandos entre o usuário e o kernel. Estes
comandos podem vir de uma entrada padrão (teclado) ou de um arquivo
executável. Sendo assim, os comandos digitados são interpretados pelo shell e
enviados para o kernel do Linux, que por sua vez executa o comando e retorna
o resultado desta execução.
No Linux existem diversos programas shell como bash, sh, tcsh, csh,
ash e bsh. Na distribuição Debian, o shell padrão é o bash. Os comandos do
shell podem ser usados para escrever programas em uma linguagem
interpretada conhecidad como shell script.
Existem duas formas de utilizar um shell:
• Modo interativo → o usuário digita um comando e espera a
execução dele antes de passar ao próximo comando.
• Modo batch, script, lote ou não-interativo → quando um
conjunto de comandos serão executados, a partir de uma data e
hora especificada e não haverá intervenção do usuário.
Figura 2.1 – Acessando o terminal do Linux (prompt de comando)

Quando for acessado o prompt de comando, será mostrada uma


informação semelhante a esta: usuario@debian:~$.
O que significa esta informação?
usuario: nome do usuário com quem você entrou no Debian.
@: símbolo para separar o nome do usuário do nome do computador.
debian: nome do computador que foi escolhido durante a instalação.
~: este símbolo identifica que você está na pasta pessoal do usuario.
Se você navegar por outras pastas será mostrado o nome no lugar do ~.
$: este símbolo significa que você é um usuário comum (sem privilégios
de administrador do Linux). Ao se tornar administrador do Linux, este símbolo
irá mudar para #.

Ao usar o prompt de comandos, preste muita atenção nos exemplos que serão
mostrados a seguir, pois o Linux é case sensitive (um comando, diretório ou
arquivo escrito em letra maiúscula ou miníscula são diferentes). Ex: a pasta Redes é
diferente de redes, pois a primeira começa com letra maiúscula e a outra com letra
minúscula.

2.2 Comandos para manipulação de diretório

Quando você entrar com seu usuário/senha no Debian e iniciar o


terminal (figura 2.1), o prompt do terminal estará no diretório padrão que é o
home directory do usuário. Este é o diretório pessoal9 que pertence ao usuário
no qual você fez o login.

Figura 2.2 – Hierarquia de diretórios no Linux

Na figura 2.2 são mostrados alguns diretórios do GNU/Linux como por


exemplo o /llib (onde são armazenadas as bibliotecas que o sistema
operacional precisa e os programas instalados nele), /dev (diretório onde ficam
armazenadas as referências de dispositivos físicos como o dvd, hd, usb),
/var/log (onde ficam armazenados os históricos de acesso ao sistema
operacional, serviços de rede), /var/spool (diretório onde são armazenadas as
filas de impressão), /boot (diretório que contém as informações de inicialização
do sistema operacional).

2.2.1 Comando ls

Lista os arquivos de um diretório.


ls [opções] [caminho/arquivo]
onde:
caminho/arquivo: diretório/arquivo que será listado
opções:
-a: lista todos os arquivos (inclusive os ocultos) de um diretório.
Arquivos/diretórios ocultos começam com o símbolo de ponto “.”.
-l: mostra os arquivos na forma de listagem (detalhado) sendo possível
visualizar as permissões, data de modificação, donos, grupos, etc.
-h: mostra o tamanho dos arquivos em Kbytes, Mbytes, Gbytes.

usuario@debian:~$ ls /home/usuario
Desktop
usuario@debian:~$
Comando 2.1 – Área de trabalho do usuário

Ao digitar o comando “ls” e pressionar a tecla Enter, como mostrado mo


comando 2.1, será visualizado o diretório Desktop (representa a Área de
Trabalho do Usuário). Abaixo existem outros exemplos utilizando o comando
“ls” e suas opções.

9 Diretório pessoal: diretório pertencente a um determinado usuário para poder


guardar seus arquivos pessoais.
usuario@debian:~$ ls -a /home/usuario
. .dbus .gstreamer-0.10 .recently-used.xbel
.. Desktop .gvfs .thumbnails
.bash_history .dmrc.ICEauthority.xsession-errors
.bash_logout .gconf .local.xsession-errors.old
ashrc.gconfd .nautilus
onfig.gnome2 .profile usuario@debian:~$

Comando 2.2 – Listagem do conteúdo do diretório pessoal com seus


arquivos/diretórios ocultos

usuario@debian:~$ ls -l /home/usuario
total 4
drwxr-xr-x 3 usuario usuario 4096 Set 27 17:59 Desktop
usuario@debian:~$
Comando 2.3 – Listagem do conteúdo do diretório pessoal em formato
de listagem (detalhado)

usuario@debian:~$ ls -lh /home/usuario


total 4,0K
drwxr-xr-x 3 usuario usuario 4,0K Set 27 17:59 Desktop
usuario@debian:~$

Comando 2.4 – Listagem do conteúdo do diretório pessoal em formato


de listagem (detalhado) e o tamanho do diretório em Kbytes

usuario@debian:~$ ls /usr/
bin games include lib lib32 lib64 local sbin share src
usuario@debian:~$
Comando 2.5 – Listagem do conteúdo do diretório /usr

2.2.2 Comando cd

Comando responsável por entrar (navegar) nos diretórios.


cd [diretório]

Para entrar no diretório chamado tmp digite o comando mostrado em


comando 2.6 e depois pressione a tecla Enter. Para voltar ao diretório do
usuário /home/usuario, digite o comando mostrado em comando 2.7.
usuario@debian:~$ cd /tmp/
usuario@debian:/tmp$
Comando 2.6 – Entrando no diretório /tmp

usuario@debian:/tmp$ cd /home/usuario/
usuario@debian:~$
Comando 2.7 – Voltando ao diretório /home/usuario

2.2.3 Comando pwd

O comando pwd mostra o caminho completo do diretório atual em que


você está.

usuario@debian:~$ pwd
/home/usuario
usuario@debian:~$
Comando 2.8 – Mostra o caminho completo do diterório do usuario

2.2.4 Comando mkdir

Cria um diretório (pasta) no sistema operacional Linux.

mkdir [opções] [caminho/diretório]


onde:
caminho: caminho onde será criado o diretório
diretório: nome do diretório que será criado dentro do caminho informado

opções:
-p: se os diretórios dos níveis acima não existirem, também serão
criados.
- -verbose: mostra uma mensagem quando o diretório é criado.

usuario@debian:~$ mkdir /home/usuario/teste


usuario@debian:~$ ls
Desktop teste
usuario@debian:~$
Comando 2.9 – Criando o diretório teste dentro do diretório do usuário
2.2.5 Comando rmdir

Este comando remove um diretório no sistema, fazendo o contrário do


comando mkdir. Para remover um determinado diretório, este deve estar vazio.
Caso seja necessário remover um diretório que tenha arquivos/diretórios dentro
dele, deve ser usado o comando rm que será visto no item 2.3.2.

rmdir [caminho/diretório]

onde:
caminho: caminho do diretório que será removido
diretório: nome do diretório que será removido

usuario@debian:~$ rmdir /home/usuario/teste


usuario@debian:~$ ls
Desktop
usuario@debian:~$
Comando 2.10 – Removendo o diretório teste dentro do diretório do usuário

2.3 Comandos para manipulação de arquivo

2.3.1 Comando cat

O comando cat serve para mostrar o conteúdo de um determinado


arquivo texto ou binário.

cat [opções] [caminho/arquivo]

onde:
caminho: caminho onde está o arquivo
arquivo: nome do arquivo que será mostrado o conteúdo

usuario@debian:~$ cat /etc/networks


default 0.0.0.0
loopback 127.0.0.0
link-local 169.254.0.0
usuario@debian:~$
Comando 2.11 – Mostrando o conteúdo do arquivo networks
2.3.2 Comando rm

Comando utilizado para excluir arquivos. Pode ser utilizado também para
excluir diretório, mas neste caso deve ser utilizado a opção -r para o comando
ser executado com sucesso.

rm [opções] [caminho] [arquivo/diretório]

onde:
caminho: caminho onde está o arquivo ou o diretório.
arquivo/diretório: nome do arquivo/diretório que será excluído.

opções:
-v: mostra mensgens dos arquivos/diretórios que estão sendo excluídos.
-r: exclui arquivos/diretórios de forma recursiva. Isto permite excluir sub-
diretórios dentro de diretórios.

usuario@debian:~$ rm /home/usuario/.bash_history
usuario@debian:~$ ls -a
. Desktop .gvfs resultado.txt
.. .dmrc .ICEauthority .thumbnails
.bash_logout .gconf .local .xsession-errors
.b ashrc .gconfd .nautilus .xsession-errors.old
.config .gnome2 .profile
.dbus .gstreamer-0.10 .recently-used.xbel
usuario@debian:~$
Comando 2.12 – Excluindo o arquivo oculto bash_history

usuario@debian:~$ rm -r /home/usuario/teste
usuario@debian:~$
Comando 2.13 – Excluindo o diretório teste

2.3.3 Comando cp

Comando responsável por copiar arquivos/diretórios da origem para o


destino.

cp [opções] [origem] [destino]

onde:
origem: o arquivo/diretório origem a ser copiado.
destino: caminho para onde será copiado o arquivo/diretório
opções:
-v: mostra os arquivos/diretórios que estão sendo copiados.
-R: responsável por copiar arquivos e sub-diretórios de forma recursiva.

usuario@debian:~$ cp /var/log/lastlog /home/usuario/


usuario@debian:~$ ls
Desktop lastlog
usuario@debian:~$
Comando 2.14 – Copiando o arquivo lastlog que se encontra no caminho
/var/log para o diretório /home/usuario

usuario@debian:~$ cp -R /bin /home/usuario/


usuario@debian:~$ ls
bin Desktop lastlog
usuario@debian:~$
Comando 2.15 – Copiando o diretório /bin que se encontra na rais do disco
/ (figura 2.2) para o diretório /home/usuario

2.3.3 Comando mv

Comando responsável por mover um arquivo/diretório da origem para o


destino. Pode ser utilizado para renomear arquivo/diretório. O processo é
semelhante ao comando cp.

mv [opções] [origem] [destino]

onde:
origem: o arquivo/diretório origem a ser copiado ou renomeado.
destino: caminho para onde será movido ou renomeado o
arquivo/diretório.

opções:
-v: mostra os arquivos/diretórios que estão sendo movidos/renomeados.

usuario@debian:~$ mv /home/usuario/lastlog /home/usuario/arquivo.txt


usuario@debian:~$ ls
arquivo.txt bin Desktop
usuario@debian:~$

Comando 2.16 – Renomeando o arquivo lastlog para arquivo.txt

usuario@debian:~$ mv /home/usuario/bin /tmp/


usuario@debian:~$ ls /tmp/
bin keyring-8Ej8EO orbit-Debian-gdm orbit-usuario ssh-cAqMdN1467
usuario@debian:~$
Comando 2.17 – Movendo o diretório bin que se encontra em /home/usuario para o diretório
/tmp

40
2.4 Manipulação de contas

O Linux é um sistema multiusuário sendo muito importante saber como


funcionam algumas funções de administração do seu ambiente.
Um sistema multiusuário caracteriza-se por permitir acessá-lo de
qualquer lugar através de conexões TCP/IP ou acessar o sistema localmente
através dos Terminais Virtuais, tudo simultaneamente. Onde cada usuário
executando tarefas completamente independentes uns dos outros.
Além dos usuários existentes, qualquer sistema operacional de rede
possui grupos. Estes são conjuntos de usuários com ações em comuns. São
utilizados para facilitar ações que deveriam ser executadas para cada um dos
usuários. Em grupos, determinadas ações podem ser executadas apenas uma
vez para um grupo que contém determinados usuários.
É importante saber que usuários e grupos são identificados por um
númbero único denominados de UID10 e GID11 respectivamente.
O Linux utiliza um arquivo /etc/passwd para armazenar informações de
seus usuários e o arquivo /etc/group para armazenar informações de seus
grupos. Além destes dois arquivos existe um terceiro /etc/shadow onde são
armazenadas as senhas dos usuários cadastrados no Linux.
Muitas das vezes que for manipular usuários/grupos deve ter permissão
para esta ação. Para tanto você deve tornar-se um super-usuário, ou seja, ter
privilégios de administrador do Linux. Como comentado no item 2.1, você deve
adquirir privlégios de administrador, para tanto utilize o comando su
(responsável por mudar o usuário comum para administrador do Linux) como
mostrado abaixo.

usuario@debian:~$ su
Senha:
root@debian:/home/usuario#
Comando 2.18 – Tornando-se super-usuário

Ao digitar o comando su será pedido a senha do usuário administrador


do Linux (usuário root). Durante a digitação da senha não será mostrado nada
na tela semelhante ao símbolo de senhas como asteríscos (*********). Esta é
uma técnica de segurança adotada pelo sistema operacional. Após a senha ser
digitada, pressione a tecla Enter, se a senha estiver correta você terá
privilégios de super-usuário. Repare no comando 2.18 que o prompt de
comando mudou de $ para #.
Agora que somos administradores do Linux, podemos visualizar algumas
informações.

10 UID: User IDentification (Identificação do Usuário)


11 GID: Group IDentification (Identificação do Grupo)
root@debian:/home/usuario# cat /etc/passwd
usbmux:x:104:46:usbmux daemon,,,:/home/usbmux:/bin/false
Debian-gdm:x:105:109:Gnome Display Manager:/var/lib/gdm3:/bin/false
usuario:x:1000:1000:usuario curso de redes,,,:/home/usuario:/bin/bash
vboxadd:x:999:1::/var/run/vboxadd:/bin/false
root@debian:/home/usuario#
Comando 2.19 – Visualizando o arquivo /etc/passwd

Neste arquivo podemos visualizar alguns usuários existentes no Linux.


Cada linha representa um usuário com suas informações. Ex.:
usuario:x:1000:1000:usuario curso de redes,,,:/home/usuario:/bin/bash
Esta linha acima mostra as informações do usuário chamado usuario
onde suas informações estão separadas pelo símbolo dois pontos “:”.
usuario: nome do usuário criado no Linux
x: significa que o usuário possui uma senha criptografada.
1000: UID do usuário.
1001: GID do grupo. Significa que o usuário pertence a um grupo com
este identificação.
usuario curso de redes,,,: informações separadas por vírgula como
nome completo do usuário, número do telefone, local de trabalho.
/home/usuario: caminho da pasta pessoal do usuário.
/bin/bash: shell que o usuário irá utilizar quando acessar o prompt do
terminal

root@debian:/home/usuario# cat /etc/group


Debian-gdm:x:109:
netdev:x:110:usuario
usuario:x:1000:
vboxsf:x:1001:
root@debian:/home/usuario#
Comando 2.20 – Visualizando o arquivo /etc/group

O arquivo /etc/group contém os grupos existentes no Linux. Ex.:


usuario:x:1000:

usuario: este é o grupo chamado usuario. No Debian, quando é


adicionado um usuário, se não for informado qual o grupo ele irá pertencer
durante sua criação, será criado um grupo com o nome do usuário.
x: significa que o grupo possui uma senha criptografada.
1000: GID do grupo.
root@debian:/home/usuario# cat /etc/shadow
gustavo:
$6$hkw901RZ$nk0kabsf03v4HB/dnJouyLkpzEqjPRtjCVViLnRM7dXu2wzj
AHGTST4mhLiIbF6fG3ZQFopR2bqhA1Gwxvktj1:15594:0:99999:7:::
mysql:!:15595:0:99999:7:::
jetty:*:15595:0:99999:7:::
root@debian:/home/usuario#
Comando 2.21 – Visualizando o arquivo /etc/shadow

Aqui é possível visualizar a senha dos usuários. Ex.: gustavo:


$6$hkw901RZ$nk0kabsf03v4HB/dnJouyLkpzEqjPRtjCVViLnRM7dXu2wzjA
HGTST4mhLiIbF6fG3ZQFopR2bqhA1Gwxvktj1:15594:0:99999:7:::

gustavo: usuário chamado gustavo.


$6$hkw901RZ$nk0kabsf03v4HB/dnJouyLkpzEqjPRtjCVViLnRM7dXu2wzjA
HGTST4mhLiIbF6fG3ZQFopR2bqhA1Gwxvktj1: senha criptografada do
usuário gustavo (senha 123456).
2.4.1 Comando groupadd

Comando responsável por criar um novo grupo no sistema operacional.

groupadd [grupo]

root@debian:/home/usuario# groupadd redes


root@debian:/home/usuario# cat /etc/group
usuario:x:1000:
vboxsf:x:1001:
redes:x:1002:
root@debian:/home/usuario#
Comando 2.22 – Criando o grupo chamado redes

O comando 2.22 adiciona o grupo denominado redes e logo em


seguida é mostrado o grupo no arquivo /etc/group com o GID 1002.

2.4.2 Comando useradd

Este comando é responsável por adicionar um usuário no Linux. É


necessário utilizar alguns parâmetros para informações adicionais durante a
criação do usuário.

useradd [opções] [usuário]

opções:
-m: responsável por criar o diretório do usuário dentro de /home
-g: adiciona o usuário a um determinado grupo. Caso este parâmetro
não seja usado, será criado um grupo com o mesmo nome do usuário.

root@debian:/home/usuario# useradd gustavo -m -g redes


root@debian:/home/usuario# cat /etc/passwd
usbmux:x:104:46:usbmux daemon,,,:/home/usbmux:/bin/false
Debian-gdm:x:105:109:Gnome Display Manager:/var/lib/gdm3:/bin/false
usuario:x:1000:1000:usuario curso de redes,,,:/home/usuario:/bin/bash
vboxadd:x:999:1::/var/run/vboxadd:/bin/false
gustavo:x:1001:1002::/home/gustavo:/bin/sh
root@debian:/home/usuario# ls /home/
gustavo usuario
root@debian:/home/usuario#
Comando 2.23 – Criando o usuário gustavo e adicionando-o ao grupo redes
O comando 2.23 adiciona o usuário gustavo, criando seu diretório
pessoal localizado em /home/gustavo (opção -m) onde o mesmo irá pertencer
ao grupo redes (opção -g nome_do_grupo).
Quando é mostrado o conteúdo do arquivo /etc/passwd (cat /etc/passwd)
é possível visualizar o UID do usuário (1001) e o GID (1002) que corresponde
ao GID do grupo redes. Isto significa que o usuário gustavo pertence ao grupo
redes. Logo em seguida é mostrado o diretório pessoal do usuário (ls /home).

2.4.3 Comando passwd

O comando passwd é utilizado para mudar a senha de um determinado


usuário. Quando você é administrador do Linux, é possível mudar a senha de
qualquer usuário. Mas se você for um usuário comum (sem privilégios de
administrador do sistema operacional) é permitido apenas mudar a própria
senha.

passwd [usuário]

root@debian:/home/usuario# passwd gustavo


Digite a nova senha UNIX:
Redigite a nova senha UNIX:
passwd: senha atualizada com sucesso
root@debian:/home/usuario#
Comando 2.24 – Mudando a senha do usuário gustavo

O comando acima mostra a mudança da senha do usuário gustavo.


Após digitar o comando e pressionar a tecla Enter será pedido para digitar a
nova senha e logo em seguida redigitar a nova senha.
2.4.4 Comando userdel

Este comando é responsável por excluir um usuário do Linux.

userdel [opção] [usuário]

opção:
-r: esta opção exclui o diretório pessoal do usuário

root@debian:/home/usuario# userdel -r gustavo


root@debian:/home/usuario# ls /home/
usuario
root@debian:/home/usuario#
Comando 2.24 – Excluindo o usuário gustavo e seu diretório pessoal

2.4.5 Comando groupdel

Comando responsável por excluir um determinado grupo no Linux.

groupdel [grupo]

root@debian:/home/usuario# groupdel redes


root@debian:/home/usuario#
Comando 2.25 – Excluindo o grupo redes

2.5 Manipulação de permissões

As permissões de acesso garantem uma certa proteção ao sistema de


arquivos do Linux das ações de usuários ou programas mal intencionados. Isto
significa que arquivos importantes não sejam alterados, apagados ou copiados
por pessoas ou programas não autorizados.

root@debian:/home/usuario# ls -l
total 4
-rw-r--r-- 1 usuario usuario 292292 Set 28 11:03 arquivo.txt
drwxr-xr-x 3 usuario usuario 4096 Set 27 17:59 Desktop
root@debian:/home/usuario#
Comando 2.26 – Listando as permissões do arquivo.txt e Desktop

A figura 2.3 mostra em detalhes o significado de cada informação listada


pelo comando 2.26.
Figura 2.3 – Permissões do arquivo.txt

Analisando as permissões do arquivo.txt: como visto na figura 2.3, as


permissões são separadas em 3 partes (rw- r-- r--). Antes das permissões é
possível visualiar o símbolo “-”. Este primeiro símbolo significa que o objeto
listado é um arquivo. Como as permissões são divididas em 3 partes, a
primeira significa que o usuário dono (chamado usuario) pode ler, alterar o
conteúdo e excluir o arquivo.txt (rw-). A segunda parte sifgnifica que o grupo
dono (chamado usuario) pode somente ler o conteúdo do arquivo.txt (r--). Já a
terceira parte significa que os outros usuários que não é o usuário dono e não
pertence ao grupo dono do arquivo.txt podem somente ler o conteúdo deste
arquivo (r--).

Figura 2.4 – Permissões do Desktop


Analisando as permissões do Desktop: como visto na figura 2.4, as
permissões são separadas em 3 partes (rwx r-x r-x). Antes das permissões é
possível visualiar o símbolo “d”. Este primeiro símbolo significa que o objeto
listado é um diretório. Como as permissões são divididas em 3 partes, a
primeira significa que o usuário dono (chamado usuario) pode visualizar o
conteúdo, alterar e entrar no diretório Desktop (rwx). A segunda parte sifgnifica
que o grupo dono (chamado usuario) pode somente visualizar o conteúdo e
entrar no diretório Desktop (r-x). Já a terceira parte significa que os outros
usuários que não é o usuário dono e não pertence ao grupo dono do Desktop
podem somente visualizar o conteúdo e entrar no diretório Desktop (r-x).

A tabela abaixo mostra cada uma das permissões para arquivos e


diretórios.

Direito Sig Arquivos Diretórios Valor


la
leitura r Permissão de leitura do conteúdo Visualiza o conteúdo 4
do diretório
gravaçã w Permissão de escrita Permite criar arquivos 2
o e subdiretórios
execuç x Permissão para que o arquivo Permite entrar no diretório 1
ão seja executado
Tabela 2.1 – Permissões

2.5.1 Comando chmod

O comando chmod (change mode) é responsável por mudar as


permissões dos arquivos/diretórios. Para tanto, quando for utilizado deve-se
fazer uma soma dos valores, respeitando o valor de cada direito (tabela 2.1),
de cada permissão para as modificações dos direitos de acesso dos usuários
donos, grupos donos e outros usuários.

chmod [opção] [permissões] [arquivo/diretório]

opção:
-R: muda as permissões de todos os arquivos/sub-diretórios dentro do
diretório

permissões:
são as permissões de leitura, escrita, execução onde os valores devem
ser somados para o usuário dono, grupo dono e outros usuários.

onde:
arquivo/diretório: arquivo ou diretório que será modificada as permissões
root@debian:/home/usuario# chmod 755 /home/usuario/arquivo.txt
root@debian:/home/usuario# ls -l
total 4
-rwxr-xr-x 1 usuario usuario 292292 Set 28 11:03 arquivo.txt
drwxr-xr-x 3 usuario usuario 4096 Set 27 17:59 Desktop
root@debian:/home/usuario#
Comando 2.27 – Modificando as permissões do arquivo.txt

O comando 2.27 modifica as permissões de arquivo.txt para rwxr-wr-w.


Isto significa que o usuário dono pode ler, modificar o conteúdo do arquivo e
executar o arquivo (caso seja um programa). O grupo dono pode ler e modificar
o conteúdo. Os outros usuários podem ler e modificar o conteúdo do arquivo
também. Par poder modificar as permissões houve a necessidade de fazer a
soma dos valores (tabela 2.1). O valor 7 significa que o usuário dono tem a
permissão rwx. O valor 5 significa que o grupo dono tem a permissão rw-. E o
outro valor 5 significa que os outros usuários tem a permissão rw-.

root@debian:/home/usuario# chmod 740 /home/usuario/arquivo.txt


root@debian:/home/usuario# ls -l
total 4
-rwxr----- 1 usuario usuario 292292 Set 28 11:03 arquivo.txt
drwxr-xr-x 3 usuario usuario 4096 Set 27 17:59 Desktop
root@debian:/home/usuario#
Comando 2.28 – Modificando as permissões do arquivo.txt

O comando 2.28 modifica as permissões de arquivo.txt para rwxr-----.


Isto significa que o usuário dono pode ler, modificar o conteúdo do arquivo e
executar o arquivo (caso seja um programa). O grupo dono pode somente ler o
conteúdo. Os outros usuários não tem permissão algumo sobre o arquivo. Par
poder modificar as permissões houve a necessidade de fazer a soma dos
valores (tabela 2.1). O valor 7 significa que o usuário dono tem a permissão
rwx. O valor 4 significa que o grupo dono tem a permissão r - -. E o valor 0
significa que os outros usuários não tem permissão - - - .

root@debian:/home/usuario# mkdir /home/usuario/redes


root@debian:/home/usuario# ls -l
total 8
-rwxr----- 1 usuario usuario 292292 Set 28 11:03 arquivo.txt
drwxr-xr-x 3 usuario usuario 4096 Set 27 17:59 Desktop
drwxr-xr-x 2 root root 4096 Out 10 09:51 redes
root@debian:/home/usuario#
Comando 2.29 – Criando o diretório redes

O comando 2.29 cria o diretório chamado redes e mostra em seguida as


permissões deste diretório. Pode ser observado que o usuário dono é o root
com as permissões de visualizar o conteúdo do diretório, modificar o diretório e
entrar no mesmo (rwx). O grupo dono root tem o direito de visualizar o
conteúdo do diretório e entrar no mesmo (r-x). Os outros usuários podem
visualizar o conteúdo do diretório e entrar no mesmo também (r-x).

root@debian:/home/usuario# chmod 775 -R /home/usuario/redes/


root@debian:/home/usuario# ls -l
total 8
-rwxr----- 1 usuario usuario 292292 Set 28 11:03 arquivo.txt
drwxr-xr-x 3 usuario usuario 4096 Set 27 17:59 Desktop
drwxrwxr-x 2 root root 4096 Out 10 09:51 redes
root@debian:/home/usuario#
Comando 2.30 – Modificando as permissões de redes

Já o comando 2.30 modifica as permissões do diretório redes onde o


usuário dono pode visualizar e modificar o conteúdo, entrar no diretório (rwx). O
grupo dono tem as mesmas permissões do usuário dono (rwx). Já os outros
usuários podem somente visualizar o conteúdo do diretório e entrar no mesmo
(r-x).

2.5.2 Comando chown

Comando responsável por modificar o dono do arquivo/diretório.

chown [opção] [usuário] [arquivo/diretório]

onde:
arquivo/diretório: arquivo ou diretório que será modificado seu dono
usuário:
usuário dono do arquivo ou diretório

opção:
-R: modifica o usuário dono de todos os arquivos/sub-diretórios dentro
do diretório

root@debian:/home/usuario# chown gustavo -R /home/usuario/redes/


root@debian:/home/usuario# ls -l
total 8
-rwxr----- 1 usuario usuario 292292 Set 28 11:03 arquivo.txt
drwxr-xr-x 3 usuario usuario 4096 Set 27 17:59 Desktop
drwxrwxr-x 2 gustavo root 4096 Out 10 09:51 redes
root@debian:/home/usuario#
Comando 2.31 – Mudando o usuário dono do diretório redes
2.5.3 Comando chgrp

Comando responsável por modificar o grupo do arquivo/diretório.

chgrp [opção] [grupo] [arquivo/diretório]

onde:
arquivo/diretório: arquivo ou diretório que será modificado seu dono
grupo:
grupo dono do arquivo ou diretório

opção:
-R: modifica o grupo dono de todos os arquivos/sub-diretórios dentro do
diretório

root@debian:/home/usuario# chgrp redes -R /home/usuario/redes/


root@debian:/home/usuario# ls -l
total 8
-rwxr----- 1 usuario usuario 292292 Set 28 11:03 arquivo.txt
drwxr-xr-x 3 usuario usuario 4096 Set 27 17:59 Desktop
drwxrwxr-x 2 gustavo redes 4096 Out 10 09:51 redes
root@debian:/home/usuario#
Comando 2.32 – Mudando o grupo dono do diretório redes

2.6 Instalação de Programas

Para fazer instalações de programas no Linux pode ser feita através do


código fonte deste programa que consta basicamente em três passos:
– Passo 1: executar um script (arquivo ./configure) que é responsável
por verificar se as bibliotecas necessárias para o programa funcionar
estão presentes no sistema operacional, verificar a arquitetura do
computador (processador, memória), local onde será instalado o
programa.
– Passo 2: após esta configuração, o programa deve ser compilado
utilizando o comando make.
– Passo 3: agora deve instalar o programa utilizando o comando make
install.

A grande vantagem em instalar um programa através da compilação é


que o mesmo fica todo customizado para a arquitetura do seu computador e
sistema operacional. Uma desvantagem é que se durante a configuração for
detectado que não existe uma determinada biblioteca, será necessário fazer o

50
dwonload desta biblioteca e fazer sua compilação também. Isto pode tomar
muito tempo.
Uma solução viável é utilizar gerenciadores de pacotes (interface que
gerenciam os programas instalados no Linux). No caso do Debian, pode-se
utilizar a interface de gerenciamento de pacotes chamado aptitude. Esta
inteface pode fazer o download do programa pela internet ou através de um
dvd, verificar as dependências de bibliotecas (caso a biblioteca não esteja
presente no Linux será instalada automaticamente) e em seguida instalar o
programa.
Para fazer o download de um programa através da internet ou de um
dvd, o aptitude acessa um arquivo chamado sources.list que se encontra
dentro do diretório /etc/apt. Este arquivo possui o caminho onde são
encontrados os programas a serem instalados.
# Line commented out by installer because it failed to verify:
#deb http://security.debian.org/ squeeze/updates main contrib
# Line commented out by installer because it failed to verify:
deb-src http://security.debian.org/ squeeze/updates main contrib
# Line commented out by installer because it failed to verify:
#deb ://volatile.debian.org squeeze-updates main contrib
# Line commented out by installer because it failed to verify:
#deb-src ://volatile.debian.org squeeze-updates main contrbr
deb http://ftp.br.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.br.debian.org/debian/ squeeze main contrib non-free
deb http://ftp.br.debian.org/debian-security/ squeeze/updates main contrib
non-free
deb-src http://ftp.br.debian.org/debian-security/ squeeze/updates main
contrib non-free
#deb http://security.debian.org/ squeeze/updates main contrib non-free
#deb-src http://security.debian.org/ squeeze/updates main contrib non-free
deb http://ftp.br.debian.org/debian/ squeeze-updates main
deb-src http://ftp.br.debian.org/debian/ squeeze-updates main
deb http://www.debian-multimedia.org squeeze main non-free

Comando 2.33 – Listagem do /etc/apt/sources.list endereços para download de programas


via internet.
# deb cdrom:[Debian GNU/Linux 6.0.5 _Squeeze_ - Official amd64 CD
Binary-1 20120512-14:34]/ squeeze main

deb cdrom:[Debian GNU/Linux 6.0.0 _Squeeze_ - Official amd64 DVD Binary-


1 20110205-18:15]/ squeeze contrib main
deb cdrom:[Debian GNU/Linux 6.0.5 _Squeeze_ - Official amd64 CD Binary-1
20120512-14:34]/ squeeze main

#deb http://security.debian.org/ squeeze/updates main


#deb-src http://security.debian.org/ squeeze/updates main

# squeeze-updates, previously known as 'volatile'


# A network mirror was not selected during install. The following entries
# are provided as examples, but you should amend them as appropriate
# for your mirror of choice.
#
# deb http://ftp.debian.org/debian/ squeeze-updates main
# deb-src http://ftp.debian.org/debian/ squeeze-updates main
Comando 2.34 – Listagem do /etc/apt/sources.list endereços para download de programas via
DVD.

Para poder instalar um programa primeiro deve ser pesquisado o


programa (aptitude search nome_do_programa) para poder identificar o
nome correto para fazer a instalação. Após idendificar o nome correto, basta
fazer a instalação do mesmo (aptitude install nome_do_programa). O
comando 2.35 mostra um exemplo da instalação do programa chamado
Wireshark. Não se esqueça de estar como administrador do Linux para fazer a
instalação dos programas.
Caso seja necessário fazer a desinstalação de algum programa utilize o
comando aptitude remove nome_do_programa. O aptitude possui vários
parâmetros além destes mostrados para o gerencimento de programas. Para
saber mais, utilize o comando man aptitude (este comando abre uma página
somente texto mostrando todos os parâmetros do comando).
root@debian:/home/usuario# aptitude search wireshark
p wireshark - network traffic analyzer - GTK+ version
p wireshark-common - network traffic analyzer - common files

root@debian:/home/usuario# aptitude install wireshark


Os NOVOS pacotes a seguir serão instalados:
libc-ares2{a} libcap2-bin{a} libpcap0.8{a} libportaudio2{a} libsmi2ldbl{a} wireshark
wireshark-common{a}
0 pacotes atualizados, 7 novos instalados, 0 a serem removidos e 0 não atualizados.
É preciso obter 0 B/15,2 MB de arquivos. Depois do desempacotamento, 62,1 MB
serão usados.
Você deseja continuar? [Y/n/?]
Pré-configurando pacotes ...
Selecionando pacote previamente não selecionado libcap2-bin.
(Lendo banco de dados ... 57187 ficheiros e directórios actualmente instalados.)
Desempacotando libcap2-bin (de .../libcap2-bin_2.19-3_amd64.deb) ...
Selecionando pacote previamente não selecionado libpcap0.8.
Desempacotando libpcap0.8 (de .../libpcap0.8_1.1.1-2_amd64.deb) ...
Selecionando pacote previamente não selecionado libportaudio2.
Desempacotando libportaudio2 (de .../libportaudio2_19+svn20071022-
3.2_amd64.deb) ...
Selecionando pacote previamente não selecionado libsmi2ldbl.
Desempacotando libsmi2ldbl (de .../libsmi2ldbl_0.4.8+dfsg2-3_amd64.deb) ...
Selecionando pacote previamente não selecionado libc-ares2.
Desempacotando libc-ares2 (de .../libc-ares2_1.7.3-1_amd64.deb) ...
Selecionando pacote previamente não selecionado wireshark-common.
Desempacotando wireshark-common (de .../wireshark-common_1.2.11-
6_amd64.deb) ...
Selecionando pacote previamente não selecionado wireshark.
Desempacotando wireshark (de .../wireshark_1.2.11-6_amd64.deb) ...
Processando gatilhos para man-db ...
Processando gatilhos para gnome-menus ...
Processando gatilhos para desktop-file-utils ...
Processando gatilhos para menu ...
Configurando libcap2-bin (1:2.19-3) ...
Configurando libpcap0.8 (1.1.1-2) ...
Configurando libportaudio2 (19+svn20071022-3.2) ...
Configurando libsmi2ldbl (0.4.8+dfsg2-3) ...
Configurando libc-ares2 (1.7.3-1) ...
Configurando wireshark-common (1.2.11-6) ...
Configurando wireshark (1.2.11-6) ...
Processando gatilhos para menu ...

root@debian:/home/usuario#
Comando 2.35 – Pesquisa e instalação do programa Wireshark
2.7 Exercícios

1) O que é Shell?

2) Explique as formas de utilização do shell.

3) Visite os seguintes diretórios, utilizando os comandos cd e ls.

(a) /home
(b) O pai do /home (use o “..”)
(c) /
(d) /bin
(e) /usr
(f) /proc
(g) /usr/bin
(h) Seu diretório pessoal

4) Liste o conteúdo de cada um dos diretórios acima, de dois modos:

(a) Sem sair do seu diretório pessoal

(b) Movendo-se primeiramente para o diretório a ser listado

5) Crie em seu diretório pessoal um diretório com nome igual ao da máquina


que você está usando.

Ex: patolino, catatau, etc. Mova-se para esse diretório.

6) Crie um diretório para cada um dos dias da semana.

7) No diretório destinado ao sábado, crie três subdiretórios chamados manha,


tarde e noite.

8) Crie um diretório chamado “.todo dia” (todo dia precedido por um ponto) no
seu diretório pessoal.

9) Liste o conteúdo de todos os diretórios criados nos exerícios anteriores.

10) Remova o diretório domingo criado no exercício .

11) Crie um diretório com o seu nome. Em seguida, altere as permissões desse
diretório de forma que somente você (dono do diretório) tenha permissão de
leitura, escrita e execução. Os outros usuários não devem ter nenhuma
permissão (rwx------).
12) Copie para dentro do diretório criado no exercício 9 os arquivos termcap,
profile, motd, issue e HOSTNAME que estão no diretório /etc.

(a) Qual o tipo desses arquivos ?


(b) Qual o comando que se pode utilizar para mostrar o conteúdo desses
arquivos?
(c) Veja o conteúdo destes arquivos, usando more, head e tail caso ele não
caiba totalmente na tela.
(d) Mova o arquivo hostname para o diretório “pai” do diretório atual (não
utilize cp, nem rm).
(e) Altere o nome desses arquivos para, respectivamente, terminal, perfil,
mensagem do dia, edicao e nome da máquina.

13) Instale o editor de textos chamado "vim".


Aula 3. Serviço DNS

Objetivos

– Conhecer a hierarquia de funcionamento do DNS


– Conhecer os tipos de consultas DNS
– Instalar/Configurar do Bind
– Criar domínios

3.1 Introdução

O Domain Name System (DNS) é um serviço de resolução de nomes de


domínio, que tem a função de traduzir nomes em endereços IP e vice-versa.
Ex.: o endereço de nome www.riopomba.ifsudestemg.edu.br tem o endereço IP
200.131.51.30. Os nomes de domínio são hierárquicos, com a parte mais
significativa do nome à direita e o segmento mais a esquerda representa o
nome de um computador individual (www.riopomba no exemplo do domínio
www.riopomba.ifsudestemg.edu.br).
Digitando o endereço IP do site do Campus Rio Pomba, também
conseguiríamos acessar a página. Mas por motivos práticos, é muito mais fácil
decorar um nome do que uma sequencia de númeors IP. Por isso a
importância do serviço de tradução de nomes de domínio realizado pelo DNS.
Como exemplo, abra o prompt de comando do Linux e utilize o comando
chamado host12.

usuario@debian:~$ host www.riopomba.ifsudestemg.edu.br


www.riopomba.ifsudestemg.edu.br has address 200.131.51.30
usuario@debian:~$
Comando 3.1 – Consultando o domínio www.riopomba.ifsudestemg.edu.br

Neste exemplo o comando host fez uma consulta a um servidor DNS


para descobrir o endereço IP do domínio www.riopomba.ifsudestemg.edu.br
que neste caso possui o valor 200.131.51.30. O comando host não fez a
resolução do nome de domínio para o endereço IP, quem fez esta resolução foi
o serviço DNS. Ele simplesmente repassou a consulta para um servidor DNS.
Mas qual servidor DNS o seu computador consultou? Como é feita a resolução
de nomes para endereços IPs?
Para o seu computador saber qual servidor que está utilizando um
serviço de resolução de nomes (DNS), para fazer uma consulta, é necessário
ter o endereço IP deste servidor cadastrado em seu sistema opercional como
mostrado no comando 3.2.
12 Host : comando utilizado para fazer pesquisa DNS.
usuario@debian:~$ cat /etc/resolv.conf
nameserver 10.0.2.2
usuario@debian:~$
Comando 3.2 – Arquivo /etc/resolv.conf contém o endereço IP
de um servidor DNS para fazer as consultas a ele

O serviço DNS utiliza a porta 53, utiliza normalmente o protocolo UDP da


camada de transporte e definidos pelas RFC's13 1034 e 1035. Possui uma base
de dados distribuida que é implementada em uma hierarquia de muitos
servidores de nomes. Para fazer a resolução de um nome de domínio a
consulta é feita da hierarquia mais alta (DNS Raiz), passando pelos servidores
DNS TLD (Top Level Domain) até chegar no servidor DNS de autoridade
(servidor que possui o endereço IP do endereço de nome pesquisado). Isto é
mostrado na figura 3.1 (setas vermelhas) onde o cliente deseja saber o ip do
endereço de nome www.google.com (IP 74.125.234.20).

Figura 3.1 – Hierarquia serviço DNS. Resolução de nome www.google.com

Servidores de nomes Raiz (Root Level): existem 13 servidores de


nome raiz (denominados de A a M). Estes servidores identificam todos os
servidores TLDs existentes.

13 RFC: Request for comments


57
Figura 3.2 – Lista dos servidores DNS Raiz. Fonte: www.root-servers.org

A figura 3.2 mostra os servidores DNS Raiz no mundo inteiro. Para


consultar onde ficam os servidores DNS Raiz no Brasil acesse o site www.root-
servers.org. Na página principal existe uma tabela com todos os servidores e
seus locais.
Servidores Top-Level Domain (TLD): responsáveis pelos domínios de
alto nível como com, org, net, edu, gov e por todos os domínios de alto nível de
países como br, jp, fr dentre outros.
Servidores de nomes com autoridade: são servidores que possuem o
registro IP de um endereço de nome como mostrado na figura 3.1 onde o
servidor DNS do google.com possui este valor IP para o endereço
www.google.com.

3.2 Tipos de consultas DNS

Na resolução de nomes de domínios existem dois tipos de consultas


DNS que são:
• Consulta Recursiva: transfere a tarefa de resolução do nome para o
servidor de nomes consultado (figura 3.3);
• Consulta Iterativa: servidor contatado responde com o nome de
outro servidor para contato (figura 3.4).
Figura 3.3 – Consulta Recursiva

A consulta recursiva ocorre da seguinte forma:


1 O computador chamad gustavo (sob o
. redesead.com.br o deseja acessa o domínio
www.riopomba.ifsudestemg.edu.br e para isto deve saber o
endereço ip do mesmo. Sendo assim, o computador faz uma
solicitação ao seu servidor DNS local dns.redesead.com.br;
2. Como o servidor local não sabe o ip do domínio consultado, este
faz uma requisição ao servidor de nomes raiz;
3. O servidor raiz também não sabe o endereço ip mas conhece o
servidor TLD que possa ser consultado. Sendo assim, o servidor
raiz faz uma requisição a este servidor TLD;
4. O servidor TLD recebe esta requisição vinda do servidor raiz. O
TLD possui o endereço do servidor dns de autoridade que possui
o endereço ip do domínio que está sendo consultado. Sendo
assim, o TLD faz o pedido ao servidor de autoridade
dns.ifsudestemg.edu.br;
5. O servidor de autoridade possui em suas configurações o
endereço ip do domínio que está sendo consultado. Desta forma,
retorna o resultado, com este endereço ip, ao servidor TLD que
havia feita a requisição;
6. O servidor TLD de posse deste valor retorna o resultado para o
servidor raiz que havia feita a requisição;
7. O servidor raiz repassa o resultado para o servidor dns local que
havia feita a requisição;
8. De posse do endereço ip do domínio consultado, o servidor dns
local entrega o resultado para o computador gustavo.

Figura 3.4 – Consulta Recursiva

A consulta iterativa ocorre da seguinte forma:


1. O computador chamad gustavo (sob o
redesead.com.br o deseja acessa o domínio
www.riopomba.ifsudestemg.edu.br e para isto deve saber o
endereço ip do mesmo. Sendo assim, o computador faz uma
solicitação ao seu servidor DNS local dns.redesead.com.br;

60
2. Como o servidor local não sabe o ip do domínio consultado, este
repassa o endereço ip do servidor de nomes raiz para o
computador gustavo.
3. O computador gustavo faz uma requisição ao servidor de nomes
raiz;
4. O servidor raiz também não sabe o endereço ip do domínio
consultado mas entrega o endereço ip do servidor TLD, para o
computador gustavo, que possa ser consultado.
5. Sendo assim, o computador gustavo faz uma requisição a este
servidor TLD;
6. O servidor TLD recebe esta requisição vinda do computador
gustavo. O TLD possui o endereço do servidor dns de autoridade
que possui o endereço ip do domínio que está sendo consultado.
Sendo assim, o TLD entrega o ip deste servidor de autoridade
para o computador gustavo;
7. O computador gustavo faz a requisição da resolução de nomes
para este servidor de autoridade;
8. O servidor de autoridade possui em suas configurações o
endereço ip do domínio que está sendo consultado. Desta forma,
retorna o resultado para o computador gustavo.

O exemplo mostrado na figura 3.5 usa ambas as consultas recursiva e


interativa. A consulta que é feita do computador gustavo.redesead.com.br ao
seu servidor dns local dns.redesead.com.br tem o comportamento recursivo,
devido que o computador gustavo pede ao dns local obtenha o mapeamento
em seu nome. Mas as que se seguem são interativas, pois todas as respostas
são retornadas ao servidor dns local dns.redesead.com.br. Na prática, as
consultas normalmente seguem o padrão da figura 3.5.
Figura 3.5 – Consulta Recursiva e Iterativa

3.3 Instalando e configurando um servidor DNS

Em sistemas Linux o programa mais utilizado como serviço de resolução


de nomes é o BIND14 (Berkeley Internet Name Domain). Este nome surgiu
devido o programa ter sido desenvolvido na década de 80 na Universidade da
Califórnia em Berkeley.
Para instalar este programa siga a listagem do comando 3.3.

Para fazer a instalação do BIND, é necessário ativar a imagem ISO dentro da


máquina virtual. Para isto, siga o Passo 8 do item 1.3.2 Configurando uma máquina
virtual.

14 BIND http://www.isc.org/software/bind
root@debian:/home/usuario# aptitude install bind9
Os NOVOS pacotes a seguir serão instalados:
bind9 bind9utils{a}
0 pacotes atualizados, 2 novos instalados, 0 a serem removidos e 0 não atualizados.
É preciso obter 0 B/473 kB de arquivos. Depois do desempacotamento, 1286 kB serão
usados.
Você deseja continuar? [Y/n/?]
Pré-configurando pacotes ...
Selecionando pacote previamente não selecionado bind9utils.
(Lendo banco de dados ... 59020 ficheiros e directórios actualmente instalados.)
Desempacotando bind9utils (de .../bind9utils_9.7.2.dfsg.P3-1.1_amd64.deb) ...
Selecionando pacote previamente não selecionado bind9.
Desempacotando bind9 (de .../bind9_9.7.2.dfsg.P3-1.1_amd64.deb) ...
Processando gatilhos para man-db ...
Configurando bind9utils (1:9.7.2.dfsg.P3-1.1) ...
Configurando bind9 (1:9.7.2.dfsg.P3-1.1) ...
#
Starting domain name service...: bind9.
root@debian:/home/usuario#
Comando 3.3 – Instalando o BIND9 ustilizando o comando aptitude

Depois de feita a instalação (aptitude install bind9) o programa DNS será


inicializado automaticamente (Starting domain name service...: bind9) com suas
configurações básicas.
Os arquivos de configurações do BIND9 encontram-se dentro do
diretório /etc/bind/. Um destes arquivos de configurações é o /etc/bind/db.root
que possui os endereços dos servidores de nomes raiz. Pois é desta forma que
quando o servidor dns não souber a resolução de um determinado domínio, ele
possa fazer uma requisição a um servidor raiz. O comando 3.4 mostra o
conteúdo do arquivo /etc/bind/db.root com os endereços dos servidores de
nomes raiz denominados de A (A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4) e B
(B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201).
root@debian:/home/usuario# cat /etc/bind/db.root
; This file holds the information on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache . <file>"
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC
; under anonymous FTP as
; file /domain/named.cache
; on server FTP.INTERNIC.NET
; -OR- RS.INTERNIC.NET
;
; last update: Jun 17, 2010
; related version of root zone: 2010061700
;
; formerly NS.INTERNIC.NET
;
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:BA3E::2:30
;
; FORMERLY NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201
Comando 3.4 – Conteúdo do arquivo /etc/bind/db.root

O comando 3.5 mostra o conteúdo do arquivo


/etc/bind/named.conf.default-zones que possui as zonas (domínios) que o
servidor DNS terá autoridade sobre ele. Para poder criar a zona, utilize o editor
de textos vim que foi instalado no exercício 13 da aula 2. Para tanto siga as
instruções abaixo (faça igual às instruções, respeite os espaços em brancos, as
letras maiúsculas e minúsculas. Estas instruções devem ser feitas em modo
super usuário - root):
1. Edite o arquivo da seguinte forma:
◦ vim /etc/bind/named.conf.default-zones
2. Após digitar o comando acima (vim) e pressionar a tecla ENTER
será mostrada uma tela, em modo texto com o conteúdo do
arquivo named.conf.default-zones. Esta tela inicial está no modo
comando (onde pode ser salvo o arquivo, pesquisar um conteúdo
dentro do arquivo, sair do editor de textos). Para poder inserir
alguma informação no arquivo é necessário pressionar a tecla
INSERT (na parte inferior da tela será mostrada uma mensagem
semelhante a – INSERÇÃO –);
3. Feito isso, vá para o final do arquivo utilizando a seta do teclado
direcionada para baixo e insira as informações que estão
mostradas no final do comando 3.5 denominada de zone
“redesead.com.br”;
4. Após inserir estas informações devemos salvá-las, para tanto
pressione a tecla ESC para voltar ao modo comando do editor
VIM e pressione a sequencia das teclas SHIFT+: depois as letras
wq para poder salvar (w) e sair (q) do editor VIM.

Caso durante a edição do arquivo dê algum problema e para não perder a


configuração original o arquivo é recomendado que saia deste sem salvar. Para
tanto, pressione a tecla ESC e depois utilize a sequencia de teclas SHIFT+: e depois
os valores q! para sair (q) sem salvar (!).

root@debian:/home/usuario# vim /etc/bind/named.conf.default-zones


// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/etc/bind/db.root";
};

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912

zone "localhost" {
type master;
file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};

zone "redesead.com.br" {
type master;
file "/etc/bind/db.redesead";
};

Comando 3.5 – Inserindo a zona redesead.com.br

A zona que acabou de ser inserida (redesead.com.br) possui uma


configuração do tipo master (isto significa que todas as alterações de
informações de nomes de computadores sob este domínio e valores ips devem
ser feitos neste servidor dns). A diretiva file “/etc/bind/db.redesead” significa
que deverá ser criado um arquivo chamado db.redesead dentro do diretório
/etc/bind onde estarão todas as informações deste domínio como os ips dos
computadores sob o domínio redesead.com.br, o e-mail do administrador do
servidor dns.
Para fazer a configuração do arquivo db.redesead copie um arquivo de
exemplo que é o arquivo /etc/bind/db.empty. Para tanto siga o comando 3.6.
root@debian:/home/usuario# cp /etc/bind/db.empty /etc/bind/db.redesead
root@debian:/home/usuario#
Comando 3.6 – Copiando/criando o arquivo db.redesead

Logo após criar o arquivo tendo como base o db.empty, edite o


arquivo /etc/bind/db.redesead para modificar as informações contidas nele que
fique igual ao comando 3.7. Os procedimentos de inserção de informações no
arquivo utilizando o comando vim são iguais ao que foi mostrado na edição do
arquivo /etc/bind/named.conf.default-zones.
O endereço IP dos computadores do domínio redesead.com.br foi usado o valor
10.0.2.15 que é da máquina virtual que está sendo utilizada para construir a apostila.
Coloque o valor igual ao endereço IP da sua máquina virtual, para tanto utilize o
comando ifconfig para verificar o seu endereço IP. Ao digitar o comando e
pressionar a tecla ENTER procure no resultado a sua interface de redes que deve
ser “eth0” com o valor do endereço ip.

$TTL 86400
@ IN SOA redesead.com.br. root.redesead.com.br. (
20121231001; Serial
604800; Refresh
86400; Retry
2419200; Expire
86400 ); Negative Cache TTL
;
@IN www ftp NSlocalhost.
IN A10.0.2.15
IN A10.0.2.15
gustavo IN A10.0.2.15
smtp pop IN A10.0.2.15
;Mail server IN A10.0.2.15

IN MX 10 pop.redesead.com.br.
ww2IN CNAME www
Comando 3.7 – Editando o arquivo db.redesead

Na linha que possui o primeiro símbolo @ siginifica “este servidor”, ou


seja, o servidor responsável pelo registro. O IN indica que é um internet record
e o SOA (Start of Authority) define o início da autoridade sobre o domínio em
questão. Depois do SOA tem-se o domínio redesead.com.br. seguido do e-
mail root.redesead.com.br. no formato “user.server”, para o qual as
mensagens administrativas deverão ser enviadas.
Nas linhas abaixo são definidos os parâmetros como:
• 20121231001; Serial: número de série ou versão desse arquivo.
Esse número é útil para sincronizações entre servidores. Por
exemplo, um servidor secundário sabe que está desatualizado e
precisa sincronizar-se com seu master, quando o seu arquivo
possui um número de série ou versão menor que o do seu
master. Sendo assim a cada alteração nas configurações do
domínio, este valor deve ser incrementado;
• 604800; Refresh: indica o intervalo de tempo, em segundos, em
que o servidor secundário deverá executar a verificação do
número de série com o master e realizar a sincronização se
necessária;
• 86400; Retry: caso o servidor secundário seja impedido de
contactar, por qualquer motivo, o servidor master quando o
intervalo definido em “Refresh” for atingido, esse parâmetro define
o tempo em que o servidor deverá fazer uma nova tentativa de
contactar o servidor master. O intervalo é definido em segundos;
• 2419200; Expire: o tempo máximo, em segundos, que o servidor
secundário pode ficar sem contactar o servidor primário. Caso
esse tempo seja atingido, o conteúdo do arquivo deve ser
considerado expirado e desprezado, dessa forma, pelo servidor
secundário;
• 86400; Negative Cache TTL: define o valor de TTL para
respostas negativas.

A linha “www IN A 10.0.2.15” significa que o computador www tem o


ip 10.0.2.15. Como o computador www está sob o domínio redesead.com.br o
seu endereço completo é www.redesead.com.br . O mesmo são para as
outras linhas como por exemplo “ftp IN A 10.0.2.15”, significando que o
endereço ftp.redesead.com.br possui o ip 10.0.2.15.
O valor “IN MX 10 pop.redesead.com.br.” informa que o servidor de
correios eletrônicos (MX – Mail Exchange Record) tem uma preferência de
resolução de nomes em relação a outros servidores de e-mails do mesmo
domínio (caso exista mais de um servidor de e-mails). Quando menor o valor
maior a preferência. Estes valores vão de 0 a 32.767.
Além de inserir um registro com o valor do endereço IP, podemos criar
apelidos para um determinado computador. A linha “ww2 IN CNAME www”
significa que quando for resolvido o domínio ww2.redesead.com.br o IP será o
mesmo do domínio www.redesead.com.br.
Dando continuidade à configuração do serviço DNS, será preciso agora
reinicializar o bind para que este aceite as novas configurações. Para tanto
digite o seguinte comando /etc/init.d/bind9 restart . Após a reinicialização do
bind, verifique se o mesmo está sendo executado corretamente, desta forma
utilize o seguinte comando ps -aux | grep named. Este comando mostra uma
lista de processos (programas que estão em execução) mas filtrando apenas o
processo chamado named (que é o nome do processo do bind). Caso apareça
uma mensagem semelhante a esta “bind 1148 0.0 2.8 117348 10952 ? Ssl
17:40 0:00 /usr/sbin/named -u bind” significa que o processo do bind está
em funcionando corretamente.
Para fazer o seu computador pesquisar o próprio servidor DNS que
acabou de ser configurado, será necessário fazer uma modificação em qual
servidor DNS deva ser consultado. Sendo assim, o arquivo a ser modificado é
o /etc/resolv.conf. Edite o arquivo utilizando o comando vim para fazer as
modificações. Troque o valor do endereço ip do nameserver para o ip da sua
máquina virtual. Como mostrado no comando 3.8.

root@debian:/home/usuario# vim /etc/resolv.conf


nameserver 10.0.0.15
Comando 3.8 – Editando o arquivo resolv.conf

Salve as modificações e faça o teste usando o comando host no domínio


que foi criado para verificar se está sendo feita a resolução de nomes
(comando 3.9).

root@debian:/home/usuario# host www.redesead.com.br


www.redesead.com.br has address 10.0.2.15
root@debian:/home/usuario#
Comando 3.9 – Fazendo a resolução do domínio www.redesead.com.br

3.4 Exercícios

1) O que foi visto na Aula 3 foi como configurar um domínio (zona) em um


serviço DNS. Esta resolução é feita de forma direta, ou seja, dado o domínio o
DNS faz a consulta trazendo como resultado o endereço IP. Existe também a
consulta reversa que trata-se em informar o endereço IP e o serviço DNS fazer
a consulta trazendo como resultado o domínio associado a este IP. O serviço
de DNS reverso é importante para verificar a autenticidade se o IP atual
corresponde ao endereço IP informado pelo servidor DNS. Um exemplo disso
são servidores de e-mails como o provedor TERRA. Quando é enviado um e-
mail para o domínio terra.com.br é feita uma consulta reversa do IP do e-mail
do destinatário. Se tudo estiver correto o e-mail será entregue ao destinatário,
caso contrário será negada a entrega. Isto tudo é para evitar spam. Um texto
interessante sobre DNS reverso encontra-se em
http://mail.terra.com.br/postmaster/dnsrev.htm. Sendo assim, configure o DNS
reverso do domínio redesead.com.br. Para tanto pesquise na Internet como
fazer esta configuração, existem vários tutoriais explicando sobre o assunto. É
muito semelhante com a configuração da resolução direta que fizemos durante
as aulas.
Aula 4. Serviço WEB

Objetivos

– Conhecer os conceitos de funcionamento do serviço WEB


– Instalar/Configurar do Apache
– Aprender a hospedar um site
– Analisar o histórico de acesso ao servidor WEB

4.1 Introdução

Até a década de 1990, o acesso a Internet era feito mais por


pesquisadores, acadêmicos e estudantes universitários para transferir arquivos
entre computadores, enviar e receber mensagens. O uso da Internet era
conhecido mais nas comunidpades acadêmicas. Desta forma no início dos
anos 90 surgiu uma aplicação conhecida como World Wide Web (www)
mudando a forma de como as pessoas interagem dentro e fora de seus
ambientes de trabalho.
O serviço Web é responsável por disponibilizar as páginas HTML15
(sites) que acessamos quando estamos conectados a Internet. A comunicação
acontece utilizando o protocolo HTTP (HyperText Transfer Protocol), usando a
porta 80. Este protocolo é definido pela RFC 1945 e 2616. O acesso se dá
através do uso de um navegador como o Mozilla Firefox, Microsoft Internet
Explorer, Google Chrome (lado cliente) e um servidor Web (programa servidor).
Este lado servidor possui vários programas servidores responsáveis por
disponibilizarem páginas HTML. Os programas mais conhecidos são o
Microsoft IIS16 e Apache HTTP Server17.
A empresa BuiltWith, sediada na Austrália, faz medições do uso de
determinados programas. Na figura 4.1 é mostrada a popularidade do
programa Apache HTTP Server. Esta estatística foi feita em 21 de dezembro
de 2012 onde o Apache se destaca em primeiro lugar com 52.11%, contra
18,73% do IIS e 9,25% do IIS7. O programa Apache HTTP é um dos principais
responsáveis pela difusão de sistemas Linux, também podendo ser usados em
plataformas Microsoft Windows.

15 HTML: HyperText Markup Language


16 Microsoft IIS: http://technet.microsoft.com/pt-br/magazine/2008.07.iis7.aspx
17 Apache HTTP Server: http://httpd.apache.org/
Figura 4.1 – Estatísticas de uso de servidores web. Fonte: trends.builtwith.com/Web-Server

4.2 Instalando e Configurando o Servidor Web

O Apache HTTP Server é um dos projetos mantidos pela The Apache


Software Foundation18. A fundação provê um suporte organizacional, legal e
financeiro para um grande número de projetos de softwares de código fonte
aberto.
O servidor web Apache pode responder por vários sites através de um
recurso conhecido como servidor virtual (virtual server). Este servidor virtual é
composto por três informações que são: endereço IP, porta de conexão http e
um cabeçalho (header). Como vários sites de domínios diferentes podem ser
disponibilizados em um mesmo servidor, o valor IP e a porta de conexão http
acabam sendo o mesmo, o que difere é o header. Sendo assim podemos ter
www.redesead.com.br, www.teste.com.br, www.outrodominio.com.br, todos os
três sites no mesmo servidor web (IP e porta padrão iguais) mas com headers
diferentes (domínios diferentes).
Para fazer a instalação do Apache siga as instruções do comando 4.1.
Para fazer a instalação do Apache, é necessário ativar a imagem ISO dentro da
máquina virtual. Para isto, siga o Passo 8 do item 1.3.2 Configurando uma máquina
virtual.

root@debian:/home/usuario# aptitude install apache2 libapache2-mod-php5


mysql-server-5.1 php5-mysql

Comando 4.1 – Instalação do servidor web Apache

No comando 4.1 serão instalados o servidor Apache que está na versão


2.x.x, o módulo PHP19 para o Apache (módulo responsável pela interpretação

18 The Apache Software Foundation: http://www.apache.org/foundation/


19 PHP (PHP: Hypertext Preprocessor): http://php.net
70
de sites dinâmicos desenvolvidos em PHP), o servidor de bando de dados
MySQL20 e o módulo PHP responsável por fazer comunicação com o MySQL.
Depois de ter instalado Apache, reinicialize o serviço web para que o
Apache aceite as configurações do PHP (comando 4.2).

root@debian:/home/usuario# /etc/init.d/apache2 restart


root@debian:/home/usuario#
Comando 4.2 – Reinicializando o Apache

Após a instalação, vamos fazer o teste se o servidor está funcionando e


interpretando o PHP. O primeiro teste é referente se o Apache está funcionado,
para isto abra o navegador de internet (localizado em
Aplicativos/Internet/Navegador Web Iceweasel) e digite no local de endereços
do navegador localhost21. Assim irá aparecer uma mensagem semelhante à
figura 4.2.

Figura 4.2 – Mensagem do servidor Apache

Para verificar se o Apache “interpreta” páginas escritas em PHP siga as


instruções do comando 4.3 para criar um arquivo chamado teste.php e insira o
conteúdo como mostrado no comando 4.4.

root@debian:/home/usuario# vim /var/www/teste.php


root@debian:/home/usuario#
Comando 4.3 – Criando/editando arquivo teste.php

20 MySQL: http://www.mysql.com
21 Localhost: significa o endereço do próprio computador
71
<?php
phpinfo();
?>
Comando 4.4 – Criando/editando arquivo teste.php

As linhas “<?php” e “?>” significam que tudo que estiver entre elas são
comandos PHP para serem interpretados pelo módulo libapache2-mod-php5
que foi instalado com o Apache. A função phpinfo() é responsável por gerar
uma página HTML com as informações do servidor Apache e os módulos que
estão instalados e suportados nele. Os procedimentos de inserção de
informações no arquivo utilizando o comando vim são iguais ao que foi
mostrado na edição do arquivo /etc/bind/named.conf.default-zones. Depois de
salvar as informações, entre no navegador de internet e digite o seguinte
endereço localhost/teste.php. A figura 4.3 mostra o resultado do site.

Figura 4.3 – Resultado da página teste.php

4.3 Preparando o servidor web para hospedar um site

Como foi descrito no item 4.2, o servidor Apache consegue hospedar


(responder) por mais de um site de domínios diferentes. Desta forma iremos
aprender neste item como fazer este tipo de configuração. Iremos utilizar o
endereço www.redesead.com.br do domínio criado na aula 3.
Para começar a fazer a configuração do site www.redesead.com.br será
necessário copiar o arquivo de exemplo /etc/apache2/sites-available/default
renomeando para /etc/apache2/sites-available/redesead.conf como mostrado
no comando 4.5.
root@debian:/home/usuario# cp /etc/apache2/sites-available/default
/etc/apache2/sites-available/redesead.conf
root@debian:/home/usuario#
Comando 4.5 – Copiando/criando o arquivo redesead.conf

Após feita a cópia edite o arquivo /etc/apache2/sites-


available/redesead.conf conforme o comando 4.6, para fazer as inserções das
informações conforme o comando 4.7. Depois salve as informações. Os
procedimentos de inserção de informações no arquivo utilizando o comando
vim são iguais ao que foi mostrado na edição do arquivo
/etc/bind/named.conf.default-zones.

root@debian:/home/usuario# vim /etc/apache2/sites-available/redesead.conf

Comando 4.6 – Editando o arquivo redesead.conf

<VirtualHost *:80>
ServerAdmin webmaster@redesead.com.br
ServerName www.redesead.com.br
DocumentRoot /var/www/redesead

<Directory /var/www/redesead/>
AllowOverride None
Order allow,deny
allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error_redesead.log

# Possible values include: debug, info, notice, warn, error, crit,


# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/redesead.log combined

</VirtualHost>
Comando 4.7 – Conteúdo do arquivo redesead.conf

Os arquivos de configuração do Apache ficam armazenados dentro do


diretório /etc/apache2. Em especial o diretório /etc/apache2/sites-available
possui os arquivos de configuração dos sites que são hospedados pelo
servidor. Por isto que foi criado o arquivo redesead.conf dentro deste diretório.
Entendendo as linhas do arquivo redeaead.conf:
• <VirtualHost *:80></VirtualHost>: são as diretivas responsáveis
por criar um servidor virtual de hospedagem. Tudo que estiver
entre estas diretivas são as configurações de um determinado
site;
• ServerAdmin webmaster@redesead.com.br: e-mail que
receberá as mensagens administrativas do servidor Apache;
• ServerName www.redesead.com.br: esta diretiva define o nome
(header) do servidor virtual que será hospedado pelo servidor
Apache;
• DocumentRoot /var/www/redesead: indica o caminho do
diretório que armazena as páginas do site que está sendo
hospedado;
• <Directory /var/www/redesead/></Directory>: diretiva
responsável por adicionar configurações especiais de acesso ao
diretório do site que está sendo hospedado;
• AllowOverride none: responsável por permitir ou não permitir
autenticação no site. Para fazer permitir autenticação deve trocar
none por all;
• Order allow,deny: diretiva responsável por fazer controle de
acesso ao site. Este controle se dá através de informações dos
endereços IPs ou nomes de domínio de computadores. Esta
ordem se refere que primeiro será processada a regra de
permissão (allow) ao site e depois a regra de negação (deny).
Caso o endereço do computador esteja na regra de permissão
será permitido seu acesso. Mas se não estiver na regra de
permissão ou se estiver na regra de negação, seu acesso será
bloqueado;
• allow from all: esta diretiva permite que todos os computadores
tenham acesso ao site, sem restrições. Para aprender mais sobre
o controle de acesso, acesse a página
http://httpd.apache.org/docs/2.2/howto/access.html para mais
informações;
• ErrorLog ${APACHE_LOG_DIR}/error_redesead.log: diretiva
responsável por guardar os erros, em arquivo, que ocorrem no
servidor virtual. A variável ${APACHE_LOG_DIR} guarda o
caminho /var/log/apache2, onde estão os arquivos de log22 do
Apache;
• LogLevel warn: esta diretiva é responsável por configurar o
Apache para informar as saídas de informações de erros dentro
de um arquivo de log. O parâmetro warn é a configuração padrão
onde informa avisos condicionais. Para saber mais sobre estes
tipos de avisos acesse a página
http://httpd.apache.org/docs/2.4/mod/core.html#loglevel para mais
informações;
• CustomLog ${APACHE_LOG_DIR}/redesead.log combined:
esta diretiva armazena no arquivo redesead.log informações de
acesso ao site de computadores como o negador, endereço IP,
data/hora de acesso, dentre outras informações. Esta diretiva é
semelhante ao ErrorLog.

22 Log: termo usado para gerar o histórico de algum evento de um determinado


programa
Depois desta configuração o Apache ainda não está habilitado a
hospedar o site em questão. Todos os sites que serão hospedados, os seus
arquivos de configuração deverão ter uma referência dentro do diretório
/etc/apache2/sites-enable. Sendo assim siga as instruções do comando 4.8
para permitir que o Apache esteja apto a disponibilizar o novo site.

root@debian:/home/usuario# a2ensite redesead.conf


Enabling site redesead.conf.
Run '/etc/init.d/apache2 reload' to activate new configuration!

root@debian:/home/usuario#

Comando 4.8 – Disponibilizando as configurações do site www.redesead.com.br

Agora será necessário recarregar o Apache para que ele aceite as novas
configurações, mas antes será necessário criar o diretório onde serão
armazenados as páginas do site do www.redesead.com.br. Para tanto siga as
instruções do comando 4.9 para criar o diretório (que deve ser o mesmo que
está configurado na diretiva DocumentRoot) e do comando 4.10 para criar uma
página para este site (arquivo index.html).

root@debian:/home/usuario# mkdir /var/www/redesead


root@debian:/home/usuario#
Comando 4.9 – Criando o diretório onde ficarão armazenadas as páginas

root@debian:/home/usuario# vim /var/www/redesead/index.html


root@debian:/home/usuario#
Comando 4.10 – Criando/editando o arquivo index.html

Insira neste arquivo a seguinte informação “Página principal do site


Redes EaD” e depois salve o arquivo. Os procedimentos de inserção de
informações no arquivo utilizando o comando vim são iguais ao que foi
mostrado na edição do arquivo /etc/bind/named.conf.default-zones.
Feita estas configurações, agora podemos recarregar o Apache
utilizando as instruções do comando 4.11.

root@debian:/home/usuario# /etc/init.d/apache2 reload


Reloading web server config: apache2.
root@debian:/home/usuario#
Comando 4.11 – Recarregando o Apache

Após recarregar o Apache acesse o novo site digitando o endereço


www.redesead.com.br no navegador da máquina virtual. A figura 4.4 mostra o
resultado da configuração.

Não se esqueça de verificar se o arquivo /etc/resolv.conf está com o ip da sua


própria máquina virtual para utilizar o seu próprio servidor DNS visto na aula 3.
Figura 4.4 – Página principal o site RedesEaD (index.html)

4.4 Analisando o log de acesso

Todos os acessos que são feitos em um determinado site é gerado um


histórico (log) de acesso ao mesmo pelo servidor web. Este histórico contém
várias informações úteis como o endereço IP do computador cliente, o nome do
navegador, qual página foi acessada em que data e hora.
O arquivo que guarda estas informações do site www.redesead.com.br é
o /var/log/apache2/redesead.log. Sendo assim vamos analisar o conteúdo que
foi gerado durante o seu acesso (comando 4.12).

root@debian:/home/usuario# cat /var/log/apache2/redesead.log


10.0.2.15 - - [03/Jan/2013:12:07:17 -0200] "GET / HTTP/1.1" 304 209 "-" "Mozilla/5.0
(X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20120714 Iceweasel/3.5.16 (like
Firefox/3.5.16)"
root@debian:/home/usuario#

Comando 4.12 – Conteúdo do arquivo redesead.log

Vamos analisar algumas destas informações:


• 10.0.2.15: endereço IP do computador cliente que acessou a
página (neste caso o IP do cliente é o mesmo do servidor pelo
fato de usarmos o mesmo computador para ser o servidor web e
o computador cliente);
• [03/Jan/2013:12:07:17 -0200]: mostra data e hora de quando a
página foi acessada;
• "GET / HTTP/1.1": o acesso foi feito utilizando o método GET23,
acessando a página principal (representado pelo caracter
barra / ), usando o protocolo HTTP versão 1.1;
• "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16)
Gecko/20120714 Iceweasel/3.5.16 (like Firefox/3.5.16)": esta
linha mostra o navegador, Iceweasel versão 3.5.16 que é
baseado no Mozilla/5.0, usando o idioma americano (US), sendo
que este navegador está instalado em um sistema operacional
Linux de 64 bits (Linux x86_64).

Estas informações são importantes para fazer um levantamento de


quem mais acessa o seu site, quais os navegadores que fazem este acesso,
quais as páginas mais acessadas. Um programa interessante para fazer este
tipo de levantamento é o AWStats24. A figura 4.5 mostra uma parte do relatório
gerado pelo programa onde é mostrada a quantidade de informações
acessadas no mês de janeiro de 2012 (5.19GB) e um gráfico de acesso
durante todo o ano de 2012.

Figura 4.5 – Relatório de acesso gerado pelo AWStats

4.5 Exercícios

1) Durante esta aula vimos como fazer a configuração do servidor web Apache
para hospedar um site de domínio www.redesead.com.br. Foi visto também
que o Apache consegue hospedar mais de um site com domínios diferentes.
Desta forma configure o servidor web para hospedar o site chamado
www.outrodominio.com.br. Para poder funcionar o novo domínio será
necessário criar uma zona no servidor DNS com este domínio (aula 3).

23 GET: além do método de acesso GET, existem outros como PUT, POST, DELETE,
HEAD.
24 AWStats: http://www.awstats.org/
Aula 5. Serviço FTP

Objetivos

– Conhecer o funcionamento do serviço FTP


– Instalar/Configurar o ProFTPD
– Preparar um ambiente para transferir um site
– Instalar um cliente gráfico para FTP

5.1 Introdução

Conforme as redes de computador foram surgindo, a necessidade da


transferência de arquivos entre computadores conectados em rede foi
aumentando. Sendo assim, foi criado um protocolo responsável por esta
transferência de arquivos chamado FTP25 (File Transfer Protocol). Esta
transferência entre computadores precisa de alguns controles como fornecer
uma identificação de usuário e senha.
Para o cliente (usuário) poder fazer uma transferência de arquivos com o
servidor ele deve informar o endereço deste servidor, estabelecendo assim
uma conexão TCP. Após o estabelecimento de conexão, o servidor envia uma
mensagem de pedido de usuário e senha. Desta forma o cliente envia uma
mensagem com usuário e senha para o servidor. Estas informações estando
corretas o servidor autoriza a autenticação do cliente permitindo que o mesmo
envie ou receba arquivos (figura 5.1).

Figura 5.1 – Comunicação FTP entre cliente/servidor

O protocolo FTP tem algumas semelhanças com o protocolo HTTP


como por exemplo na transferência de arquivos e utilizam o protocolo TCP da
camada de transporte. O FTP está sob a RFC 959 e utiliza as portas 20 e 21. O
uso de duas portas de conexões é conhecido como conexões paralelas TCP
25 FTP: Protocolo de Transferência de Arquivo
onde a porta 21 é utilizada para conexão de controle (usuário, senha,
navegação de diretórios, comando de enviar/receber arquivos) e a porta 20 é
utilizada para conexão de dados (transferência efetiva de arquivos). A figura
5.2 ilustra esta comunicação.

Figura 5.2 – Conexões paralelas (controle e dados)

5.2 Instalando e Configurando o Servidor FTP

Durante a instalação e configuração de um servidor FTP, será utilizado o


programa ProFTPD26. Este programa cresceu do desejo em se ter um servidor
FTP configurável, seguro e da admiração significante do servidor web Apache.
O ProFTPD oferece características como:
• Único arquivo de configuração intuitivo para qualquer
administrador;
• Facilidade em configurar vários servidores FTP virtuais e serviços
de FTP anônimos;
• Código fonte disponível para administradores e desenvolvedores
poderem fazer auditorias no sistema;
• Suporte ao protocolo IPv6.

Para fazer a instalação do servidor ProFTPD siga as instruções do


comando 5.1.

Para fazer a instalação do ProFTPD, é necessário ativar a imagem ISO dentro da


máquina virtual. Para isto, siga o Passo 8 do item 1.3.2 Configurando uma máquina
virtual.

root@debian:/home/usuario# aptitude install proftpd


Comando 5.1 – Instalando o ProFTPD

Durante a instalação do ProFTPD irá aparecer uma tela mostrando qual


o tipo de execução do servidor FTP. Escolha a opção “autônomo”, pois esta
permite ser utilizado em servidores que terão um alto tráfego de informação.

26 ProFTPD: http://www.proftpd.org

79
O arquivo de configuração do ProFTPD é encontrado em
/etc/proftpd/proftpd.conf. Edite este arquivo de acordo com o comando 5.2.

root@debian:/home/usuario# vim /etc/proftpd/proftpd.conf


Comando 5.2 – Editando o arquivo proftpd.conf

No arquivo proftpd.conf procure a linha com a seguinte informação


“#DefaultRoot ~” e retire o símbolo “#” (isto signitica que esta linha será
descomentada, ou seja, esta configuração passará ser válida para o servidor).
Depois salve as informações. Os procedimentos de inserção de informações no
arquivo utilizando o comando vim são iguais ao que foi mostrado na edição do
arquivo /etc/bind/named.conf.default-zones. Feita esta configuração, será
necessário reinicializar o ProFTPD (comando 5.3).

root@debian:/home/usuario# /etc/init.d/proftpd restart


Comando 5.3 – Reinicializando o ProFTPD

Esta linha que foi descomentada, significa que quando o usuário for
conectar no servidor FTP ele não poderá acessar outros diretórios além do
próprio diretório pessoal. Isto é uma segurança para que usuários, mesmo
tendo autorização em acessar o servidor, não consigam visualizar/alterar
informações de outros diretórios.
Para fazer os testes de conexão com o servidor FTP, podemos utilizar a
linha de comandos ou então fazer uso de um programa visual para isto. Sendo
assim, instale o programa chamado gFTP27 conforme mostrado no comando
5.4.

root@debian:/home/usuario# aptitude install gftp-common gftp-gtk


Comando 5.4 – Instalando o programa gFTP

Depois de fazer a instalação do gFTP execute o mesmo que se encontra


em Aplicativos/Internet/gFTP. A figura 5.3 mostra o gFTP com as informações
necessárias para poder fazer a conexão com o servidor FTP. Vamos utilizar o
endereço ftp.redesead.com.br que foi criado na aula 3.

Não se esqueça de verificar se o arquivo /etc/resolv.conf está com o IP da sua


própria máquina virtual para utilizar o seu próprio servidor DNS visto na aula 3.

Na opção “Máquina” digite o endereço ftp.redesead.com.br, na opção


“Porta” digite a porta 21, em usuário informe o usuário chamado usuario e por
fim digite a senha 123456 (marcação em verde). Logo em seguida pressione a
tecla ENTER para poder fazer a conexão com o servidor. O gFTP mostra
(marcação vermelha) o lado do cliente com os diretórios/arquivos locais (lado

27 GFTP: http://gftp.seul.org/
80
esquerdo) e os diretórios/arquivos remotos (lado direito). Neste caso os
diretórios/arquivos tanto locais quanto remotos são os mesmos pelo fato do
usuário estar acessando a própria pasta pessoal /home/usuario.

Figura 5.3 – gFTP

5.3 Criando usuário WebDesigner

Este item tem o objetivo de criar um usuário responsável pelo


desenvolvimento do site www.redesead.com.br. Quando um usuário efetua
uma conexão com um servidor FTP normalmente tem acesso ao seu diretório
pessoal /home/usuario por exemplo. Neste caso o usuário que irá desenvolver
um determinado site deverá ter acesso direto ao diretório onde ficam
hospedadas as páginas que ele está desenvolvendo. Sendo assim, vamos criar
um usuário chamado usrweb com a senha 123456 que é o desenvolvedor do
site www.redesead.com.br de acordo com o comando 5.5.

root@debian:/home/usuario# useradd usrweb


root@debian:/home/usuario# passwd usrweb
Digite a nova senha UNIX:
Redigite a nova senha UNIX:
passwd: senha atualizada com sucesso
root@debian:/home/usuario#
Comando 5.5 – Manutenção usuário usrweb

Após a criação do usuário usrweb será necessário modificar a pasta


pessoal do mesmo. Para tanto será necessário editar o arquivo /etc/passwd e
procurar a linha onde possui a referência deste usuário. Nesta linha possui a
informação de onde fica seu diretório pessoal, desta forma será necessário
modificá-lo para fazer referência ao diretório onde estão hospedadas as
páginas do site www.redesead.com.br. Mude a referência de /home/usrweb
para /var/www/redesead conforme o comando 5.6. Depois salve as
informações. Os procedimentos de inserção de informações no arquivo
utilizando o comando vim são iguais ao que foi mostrado na edição do
arquivo /etc/bind/named.conf.default-zones.

root@debian:/home/usuario# vim /etc/passwd


usrweb:x:1002:1004::/var/www/redesead:/bin/sh
Comando 5.6 – Editando arquivo passwd

Depois desta configuração, será necessário modificar as permissões de


acesso ao diretório /var/www/redesead para que o usuário usrweb tenha o
direito de criar/excluir arquivos/diretórios onde as páginas estão armazenadas.
O comando 5.7 mostra as permissões atuais.

root@debian:/home/usuario# ls -lah /var/www/


total 20K
drwxr-xr-x 3 root root 4,0K Jan 3 11:34 .
drwxr-xr-x 14 root root 4,0K Jan 3 10:45 ..
-rw-r--r-- 1 root root 177 Jan 3 10:46 index.html
drwxr-xr-x 2 root root 4,0K Jan 3 11:54 redesead
-rw-r--r-- 1 root root 23 Jan 3 10:48 teste.php
root@debian:/home/usuario#
Comando 5.7 – Listando permissões do diretório redesead

O comando 5.7 mostra que o usuário dono do diretório redesead é o


usuário root, onde o mesmo pode visualizar seu conteúdo (r), modificar seu
conteúdo (w) e entrar no próprio diretório (x). Ou seja o usuário root tem
direitos totais neste diretório. Sendo assim, vamos mudar o usuário dono de
root para usrweb seguindo as instruções do comando 5.8.

root@debian:/home/usuario# chown usrweb -R /var/www/redesead/


root@debian:/home/usuario# ls -lah /var/www/
total 20K
drwxr-xr-x 3 root root 4,0K Jan 3 11:34 .
drwxr-xr-x 14 root root 4,0K Jan 3 10:45 ..
-rw-r--r-- 1 root root 177 Jan 3 10:46 index.html
drwxr-xr-x 2 usrweb root 4,0K Jan 3 11:54 redesead
-rw-r--r-- 1 root root 23 Jan 3 10:48 teste.php
root@debian:/home/usuario#
Comando 5.8 – Mudando as permissões do diretório redesead

Note que depois de executar o comando chown userweb -R


/var/www/redesead e listar o conteúdo do diretório /var/www, o usuário dono do
diretório redesead passou a ser o usuário usrweb. Sendo assim, agora é
possível fazer uma conexão como o usuário usrweb no servidor FTP e fazer
transferências de arquivos entre o cliente e o servidor conforme a figura 5.4.

Figura 5.4 – gFTP usando o usuário usrweb

Depois de fazer a conexão com o servidor ftp.redesead.com.br utilizando


o usuário usrweb (marcação em verde), note que o conteúdo do diretório local
(lado esquerdo) é diferente do conteúdo do diretório remoto (lado direito) onde
se encontra o arquivo da página principal do site www.redesead.com.br. Esta
informação está em destaque vermelho. Para fazer a transferência de um
arquivo do lado local para o lado remoto basta escolher o arquivo/diretório local
e clicar na seta apontada para o lado direito como mostrado na marcação em
azul. Para fazer o inverso basta clicar na seta que aponta para o lado
esquerdo. É desta forma que um desenvolvedor de páginas (webdesigner)
disponbiliza o site desenvolvido em um servidor web.

5.4 Exercícios

1) Durante esta aula vimos como fazer a configuração do servidor ProFTPD


para poder transferir arquivos entre o cliente e o servidor FTP. Sendo assim,
crie um usuário chamado usrweb2 com a senha 123456 para que este usuário
seja o webdesigner do domínio www.outrodominio.com.br que foi pedido para
ser criado nos exercícios da aula 4. Este usuário deverá fazer uma conexão via
FTP no servidor ftp.outrodominio.com.br e ter acesso diretamente ao
diretório /var/www/outrodominio onde serão armazenadas as suas páginas.
Aula 6. Serviço E-Mail

Objetivos

– Conhecer o funcionamento do serviço de E-Mail


– Instalar/Configurar o Postfix e o Qpopper
– Enviar e-mail
– Ler e-mail

6.1 Introdução

O serviço de correio eletrônico (e-mail) é um dos serviços mais


populares da Internet. O e-mail é assíncrono, ou seja, as pessoas enviam e
recebem mensagens quando for necessário, sem a necessidade de estarem
sincronizadas com outras pessoas. Hoje, os correios eletrônicos suportam
vários tipos de informações com textos com hiperlinks, anexos, textos em
formatos HTML, fotos e vídeos.
Este serviço utiliza os protocolos SMTP28 (para envio das mensagens,
que utiliza a porta 25) e o POP329 (para o recebimento destas mensagens, que
utiliza a porta 110). O protocolo SMTP está sob a RFC 5321 e o protocolo
POP3 está sob a RFC 1939.
A figura 6.1 mostra o funcionamento do envio/recebimento de e-mail. O
usuário Bob envia uma mensagem destinada a Alice. Sendo assim, Bob utiliza
um cliente de e-mail (Outlook Express, ThunderBird, Opera) para compor a
mensagem. Quando Bob enviar a mensagem a mesma entrará em uma fila de
envio do servidor de e-mails do Bob (utilizando o protocolo SMTP). Logo em
seguida o servidor envia a mensagem para o servidor de e-mails da Alice
utilizando também o protocolo SMTP. Quando a Alice usar um cliente de e-mail
para acessar suas mensagens, é utilizado o protocolo POP3 para esta
comunicação.

Figura 6.1 – Protocolos de e-mails

28 SMTP: Simple Mail Transfer Protocol


29 POP3: Post Office Protocolo v3
Nos dias de hoje existe um número cada vez maior de usuários que
fazem acesso aos e-mails utilizando navegadores de páginas (Internet
Explorer, Firefox, Google Chrome). Neste tipo de acesso o cliente, que acessa
a sua caixa postal (acessar os e-mails), acaba sendo o navegador. A figura 6.2
ilustra este cenário.

Figura 6.2 – Alice acessando seus e-mails utilizando um servidor Web.

Um dos programas mais conhecidos para fazer o envio de e-mails é o


Postfix30. Este servidor de e-mail foi desenvolvido por Wietse Venema como
alternativa ao programa amplamente utilizado Sendmail. O Postfix é rápido,
fácil de administrar e seguro.
O programa utilizado para fazer a leitura dos e-mails, utilizando o
protocolo POP3, é o Qpopper31, um dos servidores POP3 mais utilizado em
servidores Unix e Linux.

6.2 Instalando e Configurando o Servidor E-mail

Para poder fazer a instalação dos programas Postfix e Qpopper, siga as


instruções do comando 6.1.
root@debian:/home/usuario# aptitude install postfix qpopper
Comando 6.1 – Instalando o Postfix e o Qpopper

Durante a instalação, será exibida uma tela onde deverá ser escolhida a
opção “Site Internet” e pressione a tecla ENTER. Esta opção permite o
servidor enviar/receber e-mail via SMTP pela Internet. Logo em seguida será
exibida outra tela onde deve ser informado o domínio que o servidor de e-mails
irá responder. Sendo assim informe o domínio redesead.com.br conforme
mostrada na figura 6.3.

30 Postfix: http://www.postfix.org/
31 Qpopper: http://www.eudora.com/products/unsupported/qpopper/index.html
85
Figura 6.3 – Tela de informação do domínio que o Postfix irá responder

Após estas informações os serviços de envio e recebimento de


mensagens foram instaladas. Agora falta fazer algumas alterações no arquivo
principal do Postfix para terminar a configuração. Sendo assim edite o
arquivo /etc/postfix/main.cf conforme o comando 6.2.
root@debian:/home/usuario# vim /etc/postfix/main.cf
Comando 6.2 – Editando o arquivo main.cf

Ao editar este arquivo, deixe-o idêntico ao mostrado no comando 6.3.


mydomain = redesead.com.br
myhostname = smtp.$mydomain
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = $mydomain
mydestination = $myhostname, $mydomain
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 10.0.0.0/8
home_mailbox = Maildir/
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
Comando 6.3 – Conteúdo do arquivo main.cf

A linha “mydomain = redesead.com.br” informa qual é o domínio do


servidor Postfix. A linha “myhostname = smtp.$mydomain” significa com é o
nome do servidor de e-mail (smtp.redesead.com.br). O $mydomain significa
que é uma variável que contém a informação redesead.com.br. O “myorigin =
$mydomain” informa que todos os e-mails após o símbolo @ terão o domínio
redesead.com.br. A diretiva “mydestination = $myhostname, $mydomain”
informam quais são os domínios que o servidor é o responsável. A linha
“mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 10.0.0.0/8” informa
quais são as redes que o servidor de e-mail irá trabalhar. No nosso caso, foi
acrescentado o IP da rede 10.0.0.0/8. A outra diretiva é a “home_mailbox =
Maildir/” informa onde serão armazenados os e-mails do usuário.
Após estas configurações, salve o arquivo. Os procedimentos de
inserção de informações no arquivo utilizando o comando vim são iguais ao
que foi mostrado na edição do arquivo /etc/bind/named.conf.default-zones.
Para o servidor Postfix aceitar as novas configurações, será necessário
reinicializar o programa. Sendo assim, siga as instruções do comando 6.4.
root@debian:/home/usuario# /etc/init.d/postfix reload
Reloading Postfix configuration...done.
root@debian:/home/usuario#

Comando 6.4 – Reinicializando o Postfix

6.3 Enviando um E-mail

Depois de reinicializarmos o Postfix, vamos fazer o teste de envio de e-


mail utilizando a linha de comando onde iremos estabelecer uma conexão com
o servidor na porta 25 fazendo uso do comanto telnet32. Desta forma siga as
instruções do comando 6.5.
Não se esqueça de verificar se o arquivo /etc/resolv.conf está com o IP da sua
própria máquina virtual para utilizar o seu próprio servidor DNS visto na aula 3.
root@debian:/home/usuario# telnet smtp.redesead.com.br 25
Trying 10.0.2.15...
Connected to smtp.redesead.com.br.
Escape character is '^]'.
220 smtp.redesead.com.br ESMTP Postfix (Debian/GNU)
HELO redesead.com.br
250 smtp.redesead.com.br
MAIL FROM: usrweb
250 2.1.0 Ok
RCPT TO: usuario
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Olá usuário chamado usuario
.
250 2.0.0 Ok: queued as 34A2349BDF
QUIT
221 2.0.0 Bye
Connection closed by foreign host.
root@debian:/home/usuario#
Comando 6.5 – Enviando e-mail

32 Telnet: permite fazer conexão com outros computadores remotamente através


da linha de comandos
Para fazer o envio de uma mensagem, depois que foi feita a conexão no
servidor de e-mail, siga as instruções que estão em destaque vermelho no
comando 6.5. Digite o comando “MAIL FROM: usrweb”, este significa quem
está enviando a mensagem. Pressione a tecla ENTER. O próximo comando
“RCPT TO: usuario” é para informar quem irá receber a mensagem. Pressione
a tecla ENTER. Depois será necessário escrever a mensagem propriamente
dita utilizando o comando “DATA”. Pressione a tecla ENTER. Digite a
mensagem “Olá usuário chamado usuario”, pressione a tecla ENTER para
mudar de linha e digite um ponto final (.). Este ponto final significa que a
mensagem terminou e quando você pressionar a tecla ENTER o e-mail será
enviado. Logo em seguida digite o comando “QUIT” e pressione a tecla ENTER
para poder sair do programa.

6.4 Lendo um E-mail

Para fazermos a leitura de um e-mail utilizando a linha de comando será


necessário estabelecer uma conexão com o servidor na porta 110 fazendo uso
do comanto telnet também. Desta forma siga as instruções do comando 6.6.
Não se esqueça de verificar se o arquivo /etc/resolv.conf está com o IP da sua
própria máquina virtual para utilizar o seu próprio servidor DNS visto na aula 3.

Para poder ler as mensagens depois que foi estabelecida a conexão


com o servidor siga as instruções em destaque vermelho. Informe o usuário
com o comando “USER usuario” e pressione a tecla ENTER. Depois será
necessário informar a senha com o comando “PASS 123456”, pressione a tecla
ENTER. Para ver quais mensagens o usuário possui entre com o comando
“LIST” e pressione a tecla ENTER. Após este comando será mostrada a
mensagem que está em destaque azul. A linha com a informação “1 505”
significa que o usuário possui uma mensagen (valor 1) com o tamanho de 505
octetos. Para poder visualizar a mensagem “1” digite o comando “RETR 1” e
pressione a tecla ENTER. Logo em seguida será possível ler a mensagem e
saber quem a enviou (destaques em azul). Para poder sair da leitura do e-mail
digite o comando “QUIT” e pressione a tecla ENTER.
root@debian:/home/usuario# telnet pop.redesead.com.br 110
Trying 10.0.2.15...
Connected to pop.redesead.com.br.
Escape character is '^]'.
+OK Qpopper (version 4.0.9) at debian.localhost starting.
<3366.1357687984@debian.localhost>
USER usuario
+OK Password required for usuario.
PASS 123456
+OK usuario has 1 visible message (0 hidden) in 505 octets.
LIST
+OK 1 visible messages (505 octets)
1 505
.
RETR 1
+OK 505 octets
Return-Path: <usrweb@redesead.com.br>
X-Original-To: usuario
Delivered-To: usuario@redesead.com.br
Received: from redesead.com.br (unknown [10.0.2.15])
by smtp.redesead.com.br (Postfix) with SMTP id 34A2349BDF
for <usuario>; Tue, 8 Jan 2013 21:28:13 -0200 (BRST)
Message-Id: <20130108232834.34A2349BDF@smtp.redesead.com.br>
Date: Tue, 8 Jan 2013 21:28:13 -0200 (BRST)
From: usrweb@redesead.com.br
To: undisclosed-recipients:;
X-UIDL: hAV!!46_!!i/V!!1)*#!

Olá usuário chamado usuario

.
QUIT
+OK Pop server at debian.localhost signing off.
Connection closed by foreign host.
root@debian:/home/usuario#
Comando 6.7 – Lendo e-mail

6.5 Exercícios

1) Durante esta aula vimos como fazer a configuração do servidor de E-Mails


para poder enviar mensagens de um usuário para outro. Sendo assim,
configure o Postfix para gerenciar os e-mails do domínio outrodominio.com.br.
Aula 7. Acesso Remoto

Objetivos

– Conhecer o funcionamento do acesso remoto


– Saber a diferença entre Telnet vs SSH
– Instalar/Configurar o OpenSSH
– Acessar remotamente o servidor

7.1 Introdução

Os equipamentos que possuem uma interface de rede e suportam os


protocolos TCP/IP podem permitir acesso remoto. Este tipo de acesso facilita a
configuração de dispositivos pois o usuário não precisa de estar em frente a
eles.
No início do uso destes serviços que permitem acesso remoto, o Telnet
era muito utilizado. O protocolo Telnet (mesmo nome do programa) está sob a
RFC 854 e utiliza o protocolo TCP na porta 23 para fazer a conexão com os
dispositivos remotos. Diferente de aplicações que fazem transferência de
arquivos o Telnet é um aplicação interativa, onde são informados comandos
pelo cliente que serão executados no servidor. O grande problema em usar o
Telnet é quando se estabelece a conexão com o servidor que deverá ser
informado o usuário e senha para autenticação. A senha informada pelo cliente
atravessa a rede de computadores no formato conhecido como “texto plano”.
Isto significa que a senha não está protegida (criptografada) e uma pessoa mau
intencionada pode capturar esta informação na rede e saber a senha do
usuário. A figura 7.1 mostra o momento do envio do usuário e senha ao
servidor Telnet.

Figura 7.1 – Autenticação Telnet

Como alternativa a este tipo de problema, hoje é muito utilizado acessos


remotos fazendo uso de protocolos com criptografias. Um exemplo deste tipo
de programa é o SSH33 que está sob a RFC 4251, utiliza também o protocolo

33 SSH: Secure Shell


90
TCP na porta 22. A finalidade do SSH é a mesma do Telnet, prover acesso
remoto do cliente a um servidor. Porém, a diferença está que toda a
comunicação acontece utilizando algoritmos de criptografia, como mostrada na
figura 7.2.

Figura 7.2 – Autenticação SSH

7.2 Instalando e Configurando o OpenSSH

No GNU/Linux é muito utilizado o programa chamado OpenSSH34 para a


conexão remota utilizando algoritmos de criptografia para transferência das
informações. Este programa é uma versão livre das ferramentas que utilizam a
comunicação SSH.
Para fazer a instalação do OpenSSH siga as instruções do comando 7.1.
root@debian:/home/usuario# aptitude install openssh-server
Comando 7.1 – Instalação do OpenSSH

Após a instalação, por questões de segurança, é interessante fazer uma


pequena mudança de configuração no serviço SSH. Por padrão o OpenSSH
permite fazer conexão remota utilizando o usuário root. Sendo assim, existem
programas que tentam descobrir, por força bruta, a senha do root. Para que
não aconteça invasões no servidor SSH através do usuário root, não é
permitido que seja feita conexões direta com este usuário. Uma vez feita a
conexão com um usuário comum dentro desta conexão poderá ter acesso de
superusuário utilizando o comando su (visto na sessão 2.4 Manipulação de
Contas). Para fazer esta configuração, siga as instruções do Comando 7.2.

root@debian:/home/usuario# vim /etc/ssh/sshd_config


Comando 7.2 – Editando o arquivo de configuração sshd_config

Procure a linha com a informação “PermitRootLogin yes” e troque para


“PermitRootLogin no”. Salve as novas configurações. Os procedimentos de
inserção de informações no arquivo utilizando o comando vim são iguais ao
que foi mostrado na edição do arquivo /etc/bind/named.conf.default-zones.

34 OpenSSH: http://www.openssh.com/
91
Para que o servidor aceite as novas configurações, reinicialize o
OpenSSH conforme o comando 7.3.

root@debian:/home/usuario# /etc/init.d/ssh restart


Restarting OpenBSD Secure Shell server: sshd.
root@debian:/home/usuario#
Comando 7.3 – Reinicializando o OpenSSH

7.3 Fazendo login remoto no OpenSSH

Para poder fazer uma conexão com o servidor OpenSSH siga as


instruções do comando 7.4. O comando ssh é o clilente SSH para estabelecer
a comunicação com o servidor. A opção -l é para informar o usuário que irá ser
autenticado (neste caso chamado usuario). Logo em seguida deve ser
informado o endereço do servidor que neste caso é www.redesead.com.br. Ao
pressionar a tecla ENTER, será adicionado um certificado de segurança (RSA)
para a troca de mensagens entre o cliente e o servidor. Aceite o certificado
digitando yes (conforme em destaque vermelho).

Não se esqueça de verificar se o arquivo /etc/resolv.conf está com o IP da sua


própria máquina virtual para utilizar o seu próprio servidor DNS visto na aula 3.

root@debian:/home/usuario# ssh -l usuario www.redesead.com.br


The authenticity of host 'www.redesead.com.br (10.0.2.15)' can't be established.
RSA key fingerprint is 93:f1:ec:91:e5:26:78:16:1a:64:6c:81:21:fe:5c:8f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'www.redesead.com.br,10.0.2.15' (RSA) to the list of
known hosts.
usuario@www.redesead.com.br's password:
Linux debian 2.6.32-5-amd64 #1 SMP Sun May 6 04:00:17 UTC 2012 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent


permitted by applicable law.
You have mail.
usuario@debian:~$

Comando 7.4 – Estabelecendo conexão com o servidor OpenSSH

Após aceitar o certificado, será pedida a senha do usuário, que neste


caso é 123456. Digite a senha e pressione a tecla ENTER para fazer o login.
Se o usuário/senha estiverem corretos será liberado o terminal do servidor.
Neste caso se for necessário ter privilégios de super-usuário (root) digite o
comando su e logo em seguida a senha do root. Para fechar a conexão digite o
comando exit e pressione a tecla ENTER.
7.4 Exercícios

1) Durante esta aula vimos como fazer a configuração do servidor SSH para
poder fazer conexões remotas. Sendo assim, acesse remotamente o
computador com entereço www.outrodominio.com.br.

2) Qual a porta que o OpenSSH é executado?

3) Qual a diferença principal entre um serviço SSH e o Telnet?

4) Qual o protocolo da camada de transporte o SSH utiliza?

5) Pesquise e relate outros programas que utilizam o SSH.

Вам также может понравиться