administração de redes de computadores

Anuncio
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
ADMINISTRAÇÃO DE REDES DE
COMPUTADORES
maio 2003
Prof. Jairo – [email protected]
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
1
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
Maio de 2003
Prof. Jairo - [email protected]
A disciplina Administração de Redes de Computadores é destinada principalmente a alunos
especialistas com noções do que seja o sistema operacional Unix. Trata-se de uma disciplina
essencialmente prática (100% laboratório) que tem por intenção ensinar e qualificar os estudantes a
instalar e gerenciar os diversos serviços ou servidores de uma rede WAN.
O enfoque do curso é sistemas: configurar/instalar servidores e disponibilizar serviços e não
configurar/instalar equipamentos de rede.
A carga horária está ajustada para 12 semanas, cada semana com 4ha.
Nesta disciplina, usando o sistema operacional Linux como servidor de rede, o aluno irá aprender a
instalar e disponibilizar os seguintes serviços: FTP, TELNET, POP, IMAP, NFS, SAMBA, DNS,
SMTP e WEB SERVER.
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
2
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
A escolha dos servidores/serviços apresentados na presente disciplina teve, entres outras mais, três
intenções básicas:
a) todos os servidores/serviços apresentados nesta disciplina estão na categoria OpenSource
(software com código fonte aberto), sem nenhum custo em licenças. Inclusive, o sistema
operacional (SO) utilizado é o Linux;
b) por ser OpenSource, permite ao aluno lançar mão do código fonte e modificar/personalizar o
produto caso tenha um bom conhecimento na linguagem de programação C. Programação C está
fora do escopo dessa disciplina, no entanto entendo que um profissional preparado para enfrentar
o mercado de trabalho deva ter um conhecimento que vá além da simples certificação em
produto. Um profissional competitivo deve ser capaz de agregar valor a sua atividade, e
pensando assim podemos concluir que a filosofia OpenSource é a única que eficazmente permite
evoluir, crescer, enfim aprender e - mais importante - conseguir aplicar esses conhecimentos em
alguma atividade profissional rentável, isso com um baixo custo investido na própria formação.
Essas características do OpenSource são realçadas pelo fato de estarmos vivendo num país
marginal em relação ao que ocorre em tecnologia lá no primeiro mundo, e a disponibilidade do
código fonte rompe a barreira da dependência na forma de aquisição de serviços e produtos
fechados, estilo caixa-preta.
c) Os servidores apresentados (Apache, Sendmail, etc.) também podem ser instalados e
gerenciados em qualquer outro SO além do Linux (NT, Win2000, SunOS, HP-UX, etc.), e isto
significa que os conhecimentos adquiridos nessa disciplina podem ser aplicados em qualquer
realidade de empresa.
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
3
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
NOTAS:
1 - Na disciplina Administração de Redes de Computadores é usado o sistema operacional
Conectiva Linux 8.0, mas poderia ser qualquer outro da família Unix que suportasse o gerenciador
de pacotes rpm.
2 – Um conhecimento básico de redes e protocolos de comunicação em redes é apresentado no
Anexo 1.
3 - Um sumário dos termos e comandos Unix mais usados está no Anexo 2.
4 – Foi convencionado que o comando dado pelo usuário é mostrado em itálico para diferenciar da
resposta do sistema a esse comando. Por exemplo,
$ls /tmp
arq1.txt
dir1
-> é o comando
-> é a resposta do sistema
5 – O shell do root é simbolizado com um "#" (cerquilha) e o shell do usuário sem privilégios root é
um "$" (cifrão ou dólar). Por exemplo,
$ls /tmp
#/etc/init.d/smb start
-> comando dado por usuário sem privilégio root
-> comando dado pelo usuário root
6 – Quando for o caso de mostrar alguma parte relevante de arquivo de configuração, essa parte será
mostrada no interior de linhas tracejadas, por exemplo:
----------------# aqui vai a informação relevante do arquivo de configuração
ServerRoot /etc/httpd
-----------------
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
4
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
CAPÍTULO 1
SEMANA 1 (teórica)
1.1 – Exposição teórica
Expõem o curso ao aluno, explica sistema de avaliação, mostra a bibliografia adotada;
Justifica a escolha do conteúdo e a forma de trabalhar.
1.2. - Conceitos gerais
histórico Unix/Linux;
terminais burros, hardware limitado, estrutura da rede, protocolos proprietários;
servidores, clientes;
estrutura em camadas (cebola) do SO, shell, acesso, login;
caracterísitcas do Unix (multiusuário, multitarefa, portável, memória virtual, sist. Arquivo
hierárquico e montável);
família Unix, Posix;
arquivos (ordinários, diretórios, especiais);
permissões de acesso;
comandos, executável, processo;
distribuição Linux.
SEMANA 2 (prática)
1.3 - Conhecimentos práticos básicos:
linha de comando (terminal, logar, deslogar);
comandos básicos: adduser, passwd, ls, top, free, df, cd, history, more, less, head, tail, cat, grep, ps,
uptime, mkdir, rmdir, rm, chown, chgrp, chmod, etc;
sistema de arquivo, partições, montagem;
pipes, redirecionamento da entrada e saída padrão, processos em background;
editor vi.
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
5
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
CAPÍTULO 2
SEMANA 2 (prática)
2.1 – Conceitos de serviços em rede
Mostrar ao aluno, numa abordagem bastante direta, explicando o que é e para que serve a rede, o
meio físico, os protocolos TCP e UDP, o IP, o scan de rede (usando nmap, utilitário para escanear a
rede), as portas TCP, os servidores, os acessos telnet, ftp, pop, imap, além de conceitos clienteservidor
2.2 - servidor inet
Servidor ou serviço inet é um servidor que tem por intenção disponibilizar diversos acessos, como
por exemplo acesso FTP, TELNET, POP, IMAP, etc.
No Unix, os servidores ou serviços podem ser disponibilizados de duas maneiras, inet ou
standalone.
O serviço é inet quando for diponibilizado o acesso via servidor inet, e é standalone quando ele
estiver independente do inet.
Por exemplo, normalmente FTP e TELNET são inet, e WEB SERVER, SMTP (e-mail), DNS, etc,
são standalone.
Antes de configurarmos o servidor inet, vamos ter uma visão geral dos acessos FTP, TELNET, POP
e IMAP.
2.3 - File Transfer Protocol
O nome FTP significa File Transfer Protocol, ou seja, é o protocolo de transferência de arquivos.
Numa linguagem simples, o FTP é o protocolo desenvolvido especificamente para transportar
arquivos de um computador para outro através da rede. Embora o FTP seja um dos mais antigos
protocolos na Internet, ainda hoje continua sendo muito usado. Para transferir arquivos usando o
protocolo FTP é necessário um servidor (ou serviço) FTP disponível, além de um aplicativo cliente
do serviço FTP.
Por exemplo, para fazer um acesso ao servidor FTP no endereço IP 192.168.1.10, o comando que o
cliente precisa dar é:
$ftp 192.168.1.10
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
6
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
onde será solicitado um nome de usuário e senha de acesso ao servidor.
2.4 - Telnet Protocol
O protocolo telnet é frequentemente imaginado como apenas um meio de prover a facilidade de
fazer acesso remoto (login) em computadores via Internet. Na verdade esse era o propósito original
desse protocolo, mas ele também pode ser usado para muitos outros propósitos, como por exemplo
configurar equipamentos de rede tais como switches e roteadores. O acesso telnet é melhor
entendido no contexto de um usuário que usa um programa cliente do serviço telnet (isto é, o
comando telnet) para efetuar login num computador remoto onde esteja um servidor telnet rodando.
À semelhança do acesso FTP, será solicitado um nome de usuário e senha de acesso ao servidor.
Para efetuar um acesso telnet (login remoto) no servidor telnet no endereço IP 192.168.1.10, o
comando é:
$telnet 192.168.1.10
O comando telnet (cliente) também permite acesso a serviços que estão disponíveis em outras
portas que não a padronizada porta TCP 23 (serviço telnet).
Por exemplo, o comando "telnet 192.168.1.10 139" tenta um acesso na porta TCP 139 do servidor
com endereço IP 192.168.1.10.
2.5 - Post Office Protocol
O protocolo Post Office (POP) é um dos que permitem ao cliente ler seus e-mails num servidor de
e-mail. Para acessar um serviço POP o usuário precisa de um aplicativo cliente capaz de se
comunicar com esse serviço. Por exemplo, o Netscape Messenger e o Outlook permitem a leitura de
e-mails via serviço POP.
Este tema, leitura de e-mail, será retomado no capítulo relativo a SMTP.
Se não dispusermos, na linha de comando, de um cliente para acessar um serviço POP, podemos
fazer um telnet na porta TCP 110, que é a porta do POP3:
$telnet 192.168.1.10 110
+OK POP3 linux10.aluno.br v2001.78 server ready
user juca
+OK User name accepted, password please
pass juca
+OK
<CRTL>]
quit
onde "juca" é também a senha de acesso do usuário Juca.
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
7
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
2.6 - Internet Message Access Protocol
O protocolo de acesso a mensagens na internet (IMAP), à semelhança do POP, também permite a
comunicação de aplicativos clientes tais como Outlook, Netscape Mail e Eudora com um servidor
de e-mail para leitura das caixas postais (caixas com e-mail).
De maneira análoga ao acesso telnet que fizemos ao servidor POP, podemos fazer um acesso telnet
na porta TCP 143, que é a porta padrão do servidor IMAP:
$telnet 192.168.1.10 143
* OK [CAPABILITY IMAP4REV1 LOGIN-REFERRALS STARTTLS AUTH=LOGIN]
linux10.aluno.br IMAP4rev1 2001.315 at Tue, 4 Jun 2002 12:35:43 -0300 (BRT)
a001 login juca juca
a001 OK [CAPABILITY IMAP4REV1 IDLE NAMESPACE MAILBOX-REFERRALS
SCAN SORT THREAD=REFERENCES THREAD=ORDEREDSUBJECT MULTIAPPEND]
User juca authenticated
a002 select inbox
a003 logout
<CRTL>]
quit
onde juca é a senha de acesso do usuário Juca.
2.7 – Configuração do servidor inetd
O servidor inet é configurado pelo arquivo "/etc/inetd.conf".
Se quisermos disponibilizar os serviços ftp, telnet, pop e imap basta abrir esse arquivo com um
editor (por exemplo, vi) e retirar o comentário '#' (cerquilha) do início das seguintes linhas:
----------------# /etc/inetd.conf
# essas quatro linhas abaixo precisam estar sem comentário '#' (cerquilha)
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
imap stream tcp nowait root /usr/sbin/tcpd imapd
----------------Após configurar quais serviços deverão ser disponibilizados pelo servidor inet, é necessário iniciar
o servidor:
#/etc/init.d/inet start
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
8
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
Caso o servidor inet já estivesse rodando seria necessário parar e depois reinicializar esse servidor.
NOTA:
No Conectiva 8, após uma instalação padrão do Linux como servidor, deve-se instalar também os
pacotes telnet-server, wu-ftpd e imap para poder disponibilizar os serviços ftp, telnet, pop e imap.
Porém, a instalação de wu-ftpd conflita com o serviço ftp instalado por default, o proftpd, que deve
então ser desinstalado, e nessa desinstalação é envolvida também a remoção do pacote anonftp.
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
9
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
CAPÍTULO 3
SEMANA 3 (prática)
3.1 - Conceitos de backup
Uma boa política de backup faz parte de uma boa administração do sistema. Normalmente, um bom
backup deve ser conduzido pelo menos uma vez por dia, nesse processo arquivos são copiados para
fitas (DAT ou DLT). Num sistema Unix normalmente são usados os comandos "tar" ou "dump"
para efetuar o backup. No caso do "tar", apesar do nome ser Unix Tape Archiving, ele é
genericamente um comando que serve para aglomerar um conjunto de arquivos num único arquivo
final.
Exemplo:
Para o próprio usuário juca "aglomerar" e compactar o conteúdo da home de juca no arquivo
"/tmp/arq_home_juca.tar.gz" o comando é:
$tar cvfz /tmp/arq_home_juca.tar.gz ~juca
Para o usuário juca "aglomerar" e compactar o conteúdo da pasta do sistema "/bin" no arquivo
"arq.tar.gz" no diretório "tar1" na sua própria home o comando é:
$cd
$mkdir tar1
$tar cvfz tar1/arq.tar.gz /bin
Para o usuário juca descompactar o arquivo "arq.tar.gz" o comando é:
$gunzip tar1/arq.tar.gz
Para "desaglomerar" esse arquivo tar o comando é:
$tar xvf tar1/arq.tar
Caso o usuário juca quisesse fazer a descompactação/desaglomeração de uma única vez, o comando
seria:
$tar xvfz tar1/arq.tar.gz
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
10
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
Convém também notar que nesses casos o arquivo foi descompactado e "desaglomerado" no
próprio diretório onde juca se encontrava, isto é, na sua home.
Para o root aglomerar o conteúdo da home de juca num bloco da fita no dispositivo /dev/nst0 é:
#tar cvf /dev/nst0 ~juca
Obs:
1) O nome do dispositivo muda de plataforma para plataforma. O mesmo dispositivo de fita que
num Linux/Intel é /dev/nst0, num SunOS/Spark é /dev/rmt/0n.
2) No dispositivo /dev/nst0, a letra n é de "no-rewind", ou seja, após escrever o bloco não retorna a
fita ao início desse bloco.
Já o dump permite fazer backups mais sofisticados, mas tem a desvantagem de não ser tão
padronizado (isto é, igual) em todas plataformas quanto o "tar". Por exemplo, o comando
/sbin/dump -0u -f /dev/st0 /home/juca
faz também um backup da home de juca e envia para o dispositivo /dev/st0.
As opções nesse comando são:
0: é o nível do dump, zero é o full backup;
u: atualiza o arquivo /etc/dumpdates, que é um controle desse backup;
f: arquivo ou device para onde vai o conteúdo do backup.
3.2 - NFS – Network File System
NFS é a forma padrão com que os sistemas operacionais da família Unix compartilham seus
sistemas de arquivo em rede.
Como cada membro da família Unix, de um modo geral, implementa seu próprio sistema de
arquivo, então para que recursos possam ser compartilhados em rede por diferentes membros dessa
grande família é necessário um serviço – o servidor NFS – que exporta o recurso que será acessado
remotamente pelo cliente.
Uma vez instalado e inicializado o servidor NFS, ele lê o arquivo "/etc/exports" e, em função do
que foi configurado nesse arquivo, exporta o recurso.
Por exemplo, considere as seguintes linhas do arquivo "/etc/exports" no host 192.168.1.10:
-----------------#exporta o diretório /mnt/cdrom para toda rede 192.168.1.0/24
/mnt/cdrom 192.168.1.0/24(ro)
-----------------Com essa configuração, o diretório "/mnt/cdrom" será disponibilizado somente para leitura (read
only) via NFS para todo cliente na rede 192.168.1.0/24.
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
11
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
Além disso, é necessário levantar (ou reinicializar) o servidor NFS:
#/etc/init.d/nfs start
Uma vez exportado o recurso, ele pode ser acessado remotamente pela montagem desse recurso
num determinado ponto de montagem do cliente na rede 192.168.1.0/24.
Por exemplo, o comando
#mount -t nfs 192.168.1.10:/mnt/cdrom /mnt/temp
monta (anexa) no ponto de montagem "/mnt/temp" do cliente o recurso (diretório "/mnt/cdrom")
exportado por 192.168.1.10. O diretório "/mnt/temp" precisa existir e estar vazio antes do cliente
NFS dar esse comando.
Para saber o que está sendo exportado e para quem via nfs, o comando "exportfs" pode ser usado.
É interessante notar que no caso do Windows o equivalente a esta forma de compartilhar recursos
em rede é o protocolo NetBIOS, com ele cada estação Windows age como um servidor permitindo
aos clientes acessarem o recurso compartilhado. Veremos isso em mais detalhes à frente, quando
estudarmos o servidor Samba.
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
12
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
CAPÍTULO 4
4.1 - Samba – Conceitos gerais
O pacote Samba é composto de duas partes: cliente e servidor, e tem por intenção garantir o
compartilhamento de recursos em rede entre máquinas Windows e Unix.
Quando a rede for totalmente Windows ou totalmente Unix não existe problema no
compartilhamento de recursos em rede, pois sabemos que no caso do Unix todos os membros da
família implementam o NFS, e no caso do Windows temos o NetBIOS.
Mas para resolver o problema de redes mistas Windows x Unix se faz necessário o Samba.
Parece evidente que uma máquina Windows, nativamente, não tem porquê implementar também o
suporte a sistema de arquivos NFS, então a solução para esse problema, por mais paradoxal que
possa parecer, é implementar no Unix um serviço e um aplicativo cliente que apresentem as
mesmas características que o NetBIOS e, dessa forma, garantir a comunicação em rede entre
Windows e Unix simplesmente porque agora o Unix "se disfarçou" de Windows.
Com esse "disfarce", agora o cliente Windows acredita que o servidor Samba é outra máquina
Windows de onde possa buscar recursos compartilhados em rede.
O Samba suporta o protocolo Session Message Block – SMB – que é o formato usado no Windows
para compartilhar recursos em rede, mais conhecido por protocolo NetBIOS ou LanManager.
4.2 – Samba Server
O servidor Samba é um serviço que pode ser disponibilizado em qualquer Unix e, uma vez
configurado, permite ao cliente Windows buscar recursos neste Unix, sendo que para o cliente
Windows fica a impressão de que esse recurso está sendo disponibilizado numa máquina Windows.
Como o servidor Samba é usado basicamente para comunicação em rede entre Windows e Unix,
para podermos configurar apropriadamente o servidor Samba precisamos primeiramente ter em
vista o que seja a organização da nossa rede Windows.
Quanto à organização, a rede Windows pode ser dividida basicamente em duas: workgroup e
domain.
No caso do workgroup, trata-se de uma organização lógica apenas de visualização e agrupamento
de computadores que vem desde o Windows 3.11.
A principal característica do workgroup é que cada máquina é uma unidade administrativa com suas
próprias contas de usuários, senhas, etc, e por isso essa organização é um esquema ineficiente do
ponto de vista administrativo para redes com mais de 10 máquinas.
Já o domain é um agrupamento lógico de servidores e estações de trabalho que compartilham
informações comuns de segurança, contas de usuários e suas senhas. Dentro do domínio, o
administrador cria uma conta de acesso para o usuário que poderá então efetuar "logon" a partir de
qualquer estação que faça parte desse domínio.
Uma vez definido em qual organização de rede Windows irá trabalhar o servidor Samba, podemos
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
13
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
passar à configuração.
No caso mais simples, e por uma questão de comodidade, vamos configurar o servidor Samba para
trabalhar numa organização workgroup disponibilizando recursos para estações clientes Windows
98.
Nesse caso, a configuração do servidor Samba no arquivo "/etc/smb.conf" será:
-----------------#/etc/smb.conf
#nome do grupo de trabalho do workgroup
workgroup = LAB
#permite o acesso a todo cliente Windows na rede 192.168.1.0/24
hosts allow = 192.168.1.
#já que todas estações são Windows 98, posso usar o recurso de "encriptar" a senha
encrypt passwords = yes
#o arquivo que irá guardar as senhas de acesso ao servidor Samba
smb passwd file = /etc/smbpasswd
-----------------Uma vez configurado "/etc/smb.conf" basta (re)inicializar o servidor samba. Como root comande:
#/etc/init.d/smb start
O scan de portas TCP (nmap localhost) deverá mostrar a porta TCP 139 (NetBIOS) aberta.
Para adicionar um usuário samba, o caminho mais fácil é aproveitar um usuário que já esteja
cadastrado no sistema, ou seja, um usuário que já tenha home.
Para a dicionar um usuário ao sistema use adduser, por exemplo, como root comande:
#adduser juca
Para adicionar esse usuário do sistema como usuário do servidor Samba, como root comande:
#smbpasswd -a juca
Ao comandar "smbpasswd" será solicitado uma senha, ou seja, esse será o usuário e a senha de
acesso ao servidor Samba.
A opção "-a" em smbpasswd é para adicionar ao arquivo "/etc/smbpasswd" um usuário que esteja
cadastrado localmente no sistema, ou seja, que já tenha sido incluído em "/etc/passwd". Se o usuário
já foi adicionado ao servidor Samba e quer apenas trocar a senha de acesso Samba, não deve usar a
opção "-a".
Por fim, verifique se o usuário juca agora tem a senha codificada em "/etc/smbpasswd" (more
/etc/smbpasswd).
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
14
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
O teste final é feito com o cliente Windows, que tenta acessar a máquina onde foi configurado o
servidor Samba.
No cliente Windows 98, se houver alguém "logado" desconecte esse usuário e conecte-se com o
usuário juca com a senha solicitada acima pelo "smbpasswd". Se tudo estiver correto esta máquina
Unix será vista pelo Windows como outra máquina Windows, "clicando" no ícone do host Unix
automaticamente dará acesso à home de juca no Unix.
SEMANA 4 (prática)
4.3 - Samba Client
O Samba client permite ao cliente Unix buscar recursos compartilhados no Windows ou servidor
Samba.
O pacote Samba client é, na verdade, um conjunto de executáveis clientes do servidor Samba.
Vamos aprender dois casos: uma interface de acesso semelhante ao FTP que é o "smbclient", onde
as instruções de transferência de arquivos são passadas na linha de comando (texto) e uma
ferramenta que permite ao cliente Unix montar localmente o recurso compartilhado pelo servidor
Samba, chamdo "smbmount".
Convém notar aqui que tudo que se refere a cliente de servidor Samba também é cliente do
Windows NetBIOS.
Um exercício onde o cliente Unix acessa um recurso compartilhado pelo Windows pode ser feito da
seguinte maneira: logue-se na máquina Windows 98 com um usuário (por exemplo, juca) e depois
compartilhe com senha um recurso (por exemplo, diretório C:\TEMP, com nome de
compartilhamento "TEMP".
No Unix comande:
$smbclient //aluno5/TEMP -U juca
onde "aluno5" está definido no servidor DNS como o nome da máquina Windows 98 onde o
usuário juca compartilhou o recurso "TEMP". A configuração do servidor DNS será mostrada mais
à frente.
Se não houver nenhum erro neste acesso o usuário ganhará um shell do Samba (smb>) que permitirá
tanto enviar quanto receber arquivos do cliente Unix para servidor Samba ou Windows.
NOTAS:
1) Se fosse a organização da rede "domain", nesse caso haveria um servidor Windows não local que
validaria a senha do juca (NT4: PDC, NT5: Active Directory), então o comando seria:
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
15
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
$smbclient //aluno5/TEMP -U domain\\juca
onde o nome desse domínio é "domain".
2) Para enviar arquivos do cliente Unix para o Windows, o recurso deve ser compartilhado
completo, e não apenas leitura.
Depois de termos aprendido o comando "smbcliente", que oferece uma interface semelhante a do
cliente FTP, vamos aprender a montagem Samba.
A montagem do recurso compartilhado pelo Windows via "smbmount" é útil ao usuário cliente
usando determinada estação de trabalho que tenha um ambiente gráfico num Unix, pois é
caracterísitca de usuário desktop (isto é, estação de trabalho) entender apenas de ícones e botões no
ambiente gráfico e, pensando assim, é muito mais fácil ensinar esse usuário a usar o "clique-clique"
do mouse ao invés da linha de comando. De fato, um usuário típico consegue pelo menos empurrar
a seta do mouse de uma janela para outra e clicar.
Pensando nessa caracterísitca do usuário é que foi criada a montagem Samba, ela permite acessar o
recurso compartilhado remotamente pelo servidor Samba ou Windows simplesmente "clicando"
numa determinada pasta local onde foi previamente montado o recurso compartilhado. Funciona de
forma semelhante ao "smbclient", muda apenas no acesso: ao invés de uma interface de texto
semelhante ao acesso FTP temos agora uma pasta onde foi previamente montado o recurso remoto
compartilhado, "clicando" nessa pasta acessa o recurso remoto.
Aproveitando o exemplo dado para o comando "smbclient", podemos usar a montagem Samba da
seguinte maneira:
#smbmount //aluno5/TEMP /mnt/smb -o username=juca,password=juca
onde "juca" é a senha de acesso samba do usuário Juca, o ponto de montagem local é o diretório
"/mnt/smb" que, caso não exista, deve ser criado antes de dar o comando "smbmount" e "-o" é
usado para indicar ao comando que um conjunto de opções serão passadas. Evidentemente este é
apenas um exemplo, o recurso compartilhado por "aluno5" poderia ser montado em qualquer outro
ponto de montagem (por exemplo, a home de juca).
Inclusive, num caso mais realista, o próprio processo do "logon" do usuário na máquina Unix já
poderia disparar um script que fizesse a montagem acima descrita, com isso o usuário poderia ter
uma home não local, ou seja, independente da estação de trabalho que ele estivesse logado acessaria
sempre a mesma home.
Esse recurso, oferecer a home sempre no mesmo servidor de arquivos, independente de qual estação
o usuário usou para efetuar logon é muito útil em vários casos, especialmente para a estação burra
que nem ao menos costuma ter disco local (diskless).
Repare que com o "smbmount" é possível usar uma estação burra e mesmo assim ofertar neste
acesso a home do usuário, mesmo que essa home esteja, por exemplo, num NT.
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
16
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
CAPÍTULO 5
SEMANA 7 (prática)
5.1 - DNS BIND (Berkeley Internet Name Domain)
O DNS é um serviço que tem a função básica de traduzir em endereços IPs nomes de hosts e
domínios e vice-versa. Sabemos que nos pacotes TCP, nos seus headers, vão o endereço IP de
destino e de retorno, porém o usuário não precisa ter a preocupação em saber esses IPs, basta fazer
uma solicitação ao servidor DNS que ele traduz o IP, dados o nome do host e o domínio.
Por exemplo, se alguém quiser acessar a página em "www.uninove.br" pacotes TCP devem ser
enviados para a porta 80 de um host nesse domínio, porém para qual IP? O servidor DNS responde
ao cliente que atualmente www.uninove.br encontra-se no host "gretha" no IP 200.182.74.197.
Da mesma forma que obteve o endereço IP do host/domínio, poderia obter o host/domínio dado o
IP, que é a parte reversa do servidor DNS.
Um outra função do DNS é realizar cache local dos IPs já resolvidos, isso para evitar fazer novas
consultas externas a hosts/domínios já traduzidos, para atender mais rapidamente aos clientes do
DNS e economizar link de acesso à internet.
O BIND - Berkeley Internet Name Domain - é atualmente a implementação DNS mais importante,
estima-se que 98% dos servidores DNS na internet sejam BIND.
5.2 – Configurações do BIND
No nosso caso, vamos configurar o domínio fictício "aluno.br" na rede 192.168.1.0/24, além dos
domínios "aluno00.br" e "aluno10.br" na rede 192.168.11.0/24.
Então os arquivos de configuração e mapas desses hosts/domínios/IPs são:
/etc/named.conf
/etc/rndc.key
/var/named/aluno.br
/var/named/aluno.rev
/var/named/aluno00.br
/var/named/aluno00.rev
/var/named/aluno10.br
5.3 – Arquivo "/etc/named.conf"
É nesse arquivo que se declaram, entre outras coisas, os nomes dos domínios.
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
17
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
---------// generated by named-bootconf.pl
options {
directory "/var/named";
// query-source address * port 53;
};
// a caching only nameserver config
//
controls {
inet 127.0.0.1 allow { localhost; 192.168.1.0/24; } keys { rndckey; };
};
zone "." IN {
type hint;
file "named.ca";
};
zone "aluno.br" IN {
type master;
file "aluno.br";
};
zone "aluno00.br" IN {
type master;
file "aluno00.br";
};
zone "aluno10.br" IN {
type master;
file "aluno10.br";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "aluno.rev";
};
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
18
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
zone "11.168.192.in-addr.arpa" IN {
type master;
file "aluno00.rev";
};
// notar a ausência da zona reversa de aluno10.br
include "/etc/rndc.key";
----------
5.4 – Arquivo "/etc/rndc.key"
É nesse arquivo que vai a chave do serviço rndc (Name Server Control Utility), que permite efetuar
requisições autenticadas com assinaturas digitais.
5.5 – Arquivo "/var/named/aluno.br"
É nesse arquivo que é declarado o mapa de hosts associados aos seus respectivos IPs no domínio
"aluno.br".
---------//file aluno.br
$ORIGIN br
aluno 43200 IN
SOA
linux10.aluno.br. hostmaster.linux10.aluno.br. (
2002010024 3600 900 1209600 43200 )
43200 IN
NS
linux10.aluno.br.
43200 IN
MX 10 linux10.aluno.br.
43200 IN
A
192.168.1.10
$ORIGIN aluno.br.
linux10
43200 IN
MX 10 linux10.aluno.br.
www 43200 IN
CNAME
linux10.aluno.br.
aluno19
43200 IN
A
192.168.1.19
aluno20
43200 IN
A
192.168.1.20
aluno21
43200 IN
A
192.168.1.21
; segue a lista com todos os hosts nesse domínio
---------onde o registro "SOA" significa "Start Of Authority", "NS" significa "Name Server", "MX" é "Mail
Exchange", "CNAME" é "Common Name" (apelido) e "A" é o registro "Address".
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
19
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
5.6 – Arquivo "/var/named/aluno.rev"
Neste arquivo temos o mapa reverso do domínio "aluno.br", esse mapa associa os IPs aos hosts.
---------// file aluno.rev
$ORIGIN .
$TTL 43200 ; 12 hours
10.1.168.192.IN-ADDR.ARPA IN SOA linux10.aluno.br. hostmaster.linux10.aluno.br. (
2002010003 ; serial
3600 ; refresh (1 hour)
900 ; retry (15 minutes)
1209600
; expire (2 weeks)
43200 ; minimum (12 hours)
)
NS
linux10.aluno.br.
PTR linux10.aluno.br.
$ORIGIN 10.1.168.192.IN-ADDR.ARPA.
10
PTR linux10.aluno.br.
19
PTR aluno19.aluno.br.
20
PTR aluno20.aluno.br.
21
PTR aluno21.aluno.br.
; segue a lista com todos os hosts nesse domínio
---------onde "PTR" é um ponteiro (Pointer) reverso.
5.7 – Arquivo "/var/named/aluno00.br"
Neste arquivo temos o mapa do domínio "aluno00.br".
Convém notar que esse domínio está subordinado a "aluno.br", ou seja, "aluno.br" é domínio
autoridade sobre "aluno00.br".
---------// file aluno00.br
$TTL 43200
@
IN
SOA linux10.aluno.br.
2001061102 ; serial
3600 ; refresh
900 ; retry
1209600 ; expire
43200 ; default_ttl
hostmaster.linux10.aluno.br. (
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
20
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
)
NS
linux10.aluno.br.
@
A
192.168.11.11
www A
192.168.11.11
----------
5.8 – Arquivo "/var/named/aluno00.rev"
Neste arquivo temos o mapa reverso do domínio "aluno00.br", que também está subordinado a
"aluno.br".
---------// file aluno00.rev
$TTL 43200
@
IN
SOA linux10.aluno.br.
2001061102 ; serial
3600 ; refresh
900 ; retry
1209600 ; expire
43200 ; default_ttl
)
11
IN
PTR aluno00.br.
11
IN
PTR www.aluno00.br.
----------
hostmaster.linux10.aluno.br. (
5.9 – Arquivo "/var/named/aluno10.br"
---------// file aluno10.br
$TTL 43200
@
IN
SOA linux10.aluno.br.
2001061102 ; serial
3600 ; refresh
900 ; retry
1209600 ; expire
43200 ; default_ttl
)
NS
linux10.aluno.br.
@
A
192.168.11.11
www A
192.168.11.11
----------
hostmaster.linux10.aluno.br. (
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
21
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
Convém notar que tanto "aluno00.br" quanto "aluno10.br" estão no mesmo IP, e esse é o conceito
de hospedagem virtual não IP. Esse tema será melhor explicado à frente, quando tratarmos do
servidor web Apache. Se os dois domínios estão hospedados no mesmo IP, o conceito de mapa
reverso pede a validade pois não há mais como obter o domínio a partir do IP.
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
22
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
CAPÍTULO 6
SEMANA 8 (prática)
6.1 - SMTP (Simple Mail Transfer Protocol) – conceitos gerais
O Correio Eletrônico foi uma das primeiras aplicações práticas utilizadas no início da Internet e, até
hoje, é uma das mais utilizadas. Qualquer pessoa que possua um endereço eletrônico pode enviar e
receber mensagens através da Internet. O endereço conhecido como email address ou endereço de
correio eletrônico possui a estrutura básica [email protected] ou user@domain, onde: user
representa o identificador do usuário, host representa o nome de host do equipamento ao qual a
caixa postal do usuário pertence, e domain é o nome do domínio na internet.
O funcionamento do correio eletrônico é baseado no paradigma "store-and-forward" (estocar e
redirecionar), onde os usuários envolvidos na transferência de uma mensagem não interagem
diretamente entre si, mas usam programas aplicativos encarregados de executar e gerenciar essa
transferência. Os componentes principais de um sistema de correio eletrônico são:
Mail User Agent (MUA) - programa que interage com o usuário, responsável pela obtenção de
mensagens a serem transmitidas e a retirada de mensagens recebidas. São exemplos de MUA: Pine,
Xmail, Netscape Messenger, Outlook, Eudora.
Mail Transport Agent (MTA) - programa responsável pelo transporte de mensagens entre os
pontos envolvidos, sejam eles locais ou através da Internet. São exemplos de MTA: sendmail,
postfix.
Mail Delivery Agent (MDA) – programa responsável pelo recebimento do e-mail entregue pelo
MTA local, deposita o e-mail na caixa postal do usuário. O MDA tem a função básica de filtrar o
conteúdo da mensagem. São exemplos de MDA: procmail, que permite entre outras coisas a
filtragem contra vírus em geral.
Mail Boxes - caixas postais onde são armazenadas as mensagens recebidas.
Mail Box Manager - programa responsável pelo gerenciamento das caixas postais.
O princípio do funcionamento do correio eletrônico segue os seguintes passos: o remetente
compõem a mensagem no seu aplicativo cliente de e-mail (agente de mensagens - MUA) e envia
para o endereço eletrônico do destinatário. A mensagem é direcionada ao agente de transporte
(MTA), cuja função é a entrega ou encaminhamento da mensagem à caixa postal correta do
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
23
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
destinatário. Essa transferência é feita através do protocolo SMTP (Simple Mail Transfer Protocol).
Na máquina destino, o MTA responsável pelo SMTP recebe a mensagem e a deixa na caixa postal
correspondente do usuário.
Neste processo de envio/recebimento de e-mail pode-se ter, basicamente, três protocolos envolvidos
no sistema de correio eletrônico: o SMTP (Simple Mail Transfer Protocol), responsável pelo envio
de mensagens entre duas caixas postais dos usuários; o POP (Post Office Protocol) e o IMAP
(Internet Message Access Protocol), que gerenciam o acesso às mensagens que chegaram à caixa
postal do usuário de e-mail.
6.2 – Conceitos pop, imap, relay, spam, webmail
O IMAP é um protocolo (Internet Message Access Protocol) que permite a comunicação simultânea
de programas de e-mail, como Outlook, Netscape Mail e Eudora, com um ou mais servidores de email (Sendmail, Qmail, Exchange, etc).
As vantagens do IMAP em relação ao protocolo POP, que é usado atualmente como padrão por
quase todos os provedores de acesso, são inúmeras: o tempo de conexão e o uso de recursos do
servidor são mínimos; permite acesso interativo a múltiplas caixas postais a partir de múltiplos
clientes, sem falar na habilidade de usar computadores diversos em diferentes momentos, já que
nenhum dado fica armazenado na máquina do usuário. O acesso acontece independente da
plataforma de leitor de e-mail escolhido pelo cliente.
Existem três principais protocolos de estruturação de sistemas de e-mail: POP (Post Office
Protocol), DMSP (protocolo distribuído do sistema do correio) e IMAP (protocolo de acesso de
mensagem de Internet).
Dos três, o POP é o mais antigo e consequentemente o mais conhecido. DMSP é limitado a uma
única aplicação, PCMAIL, para sustentação da operação desconectada. O IMAP combina as
potencialidades do POP e do DMSP, e fornece a melhor sustentação para todas as três modalidades
do acesso remoto da caixa postal: offline, online e desconectado.
Outra vantagem do IMAP é a possibilidade de criar pastas no servidor de e-mail para poder guardar
mensagens já lidas, e com isso desocupar espaço da caixa de entrada além de permitir uma melhor
organização dessas mensagens.
O RELAY é uma permissão que o serviço de e-mail concede ao usuário para poder enviar seus emails através desse MTA. Usualmente numa intranet, todos os usuários estão autorizados a usarem
o MTA local, mas não é permitido o RELAY para usuários externos. A razão dessa limitação no
uso é que, se for concedido acesso irrestrito para envio de e-mails, toda a Internet irá pôr esse
serviço MTA para transportar os e-mails deles, e muito dos quais passarão a enviar extensas listas
de e-mail não solicitados com propaganda, que é o conceito de SPAM.
O Webmail permite a integração do servidor de e-mail com o servidor web, que é uma forma
prática, simples, eficiente e segura de enviar/receber e-mails. Nesse caso é o servidor web que
invoca o serviço IMAP para acessar a caixa postal do usuário para ler e-mail, e é também o servidor
web que faz relay no MTA para envio da mensagem.
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
24
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
SEMANA 9 (prática)
6.3 - Configuração do sendmail
O sendmail é atualmente a implementação SMTP mais importante, estima-se que 80% dos e-mails
transportados na internet sejam através do MTA sendmail.
Porém, para poder configurar o sendmail é necessário antes os seguintes pré-requisitos:
servidor DNS (cached-nameserver) operando, configurado o domínio "aluno.br" e cliente
configurado (arquivo /etc/resolv.conf) para usar esse servidor DNS;
pacote xmail instalado, para poder enviar e ler e-mails na linha de comando.
Para configurar o sendmail, precisamos editar os arquivos "/etc/mail/sendmail.cf" e
"/etc/mail/access".
6.3.1 – Arquivo "/etc/mail/sendmail.cf"
Neste arquivo estão as configurações do MTA sendmail.
-------------------# /etc/mail/sendmail.cf
# as duas modificações abaixo precisam ser feitas:
Cw localhost -> Cwaluno.br
DMlocalhost.localdomain -> DMaluno.br
--------------------
6.3.2 – Arquivo "/etc/mail/access"
A configuração do arquivo "/etc/mail/access" é que define quem acessa ou não o MTA.
-------------------#/etc/mail/access
127.0.0.1
localhost.localdomain
localhost
aluno.br
192.168.100.
[email protected]
[email protected]
RELAY
RELAY
RELAY
RELAY
RELAY
REJECT
DISCARD
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
25
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
-------------------onde RELAY são os domínios/hosts que podem usar o MTA para envio de mensagens, REJECT
rejeita os e-mails que foram enviados para esse MTA e DISCARD é análogo à regra REJECT, com
a diferença que nesse caso quem enviou não é notificado que seu e-mail não foi aceito.
Uma vez editado o arquivo "access" é necessário criar o DB access:
#makemap hash /etc/mail/access < /etc/mail/access
É necessário também levantar (ou reiniciar) o servidor de e-mail:
#/etc/init.d/sendmail start
Após levantar o servidor sendmail, observe que ele abriu a porta TCP 25. Esse servidor pode ser
testado de duas maneiras, com telnet na porta 25 ou utilitário mail (do pacote xmail):
$telnet aluno10.aluno.br 25
Trying 192.168.1.10...
Connected to aluno10.
Escape character is '^]'.
220 aluno10.aluno.br ESMTP Sendmail 8.11.6/8.11.6; Tue, 4 Jun 2002 19:50:38 -0300
helo aluno10
250 aluno10.aluno.br Hello aluno12.aluno.br [192.168.1.12], pleased to meet you
MAIL From: [email protected]
250 2.1.0 [email protected]... Sender ok
RCPT To: [email protected]
250 2.1.5 [email protected]... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
Subject: teste
Apenas um teste
Juca
.
250 2.0.0 g54MpQD24804 Message accepted for delivery
quit
221 2.0.0 aluno10.aluno.br closing connection
Connection closed by foreign host.
A outra forma, via xmail, é bem mais simples:
$mail [email protected]
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
26
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
Subject: teste
a mensagem
<CTRL>d
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
27
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
CAPÍTULO 7
SEMANA 10 (prática)
7.1 - Servidor web APACHE: conceitos
Um servidor web é uma aplicação que escuta na porta TCP 80 - padrão na internet - e usa o
protocolo HTTP – Hyper Text Transfer Protocol – para se comunicar com o aplicativo cliente –
usualmente um navegador da internet.
No caso de acesso mais simples, o cliente faz uma requisição solicitando determinado documento
HTML – que é um arquivo de texto com intruções de Hyper Text – para o servidor web que lê no
disco do host e entrega essa página ao cliente. Por sua vez, o aplicativo do cliente – o navegador da
internet – interpreta localmente o texto HTML da página e mostra numa apresentação gráfica o seu
conteúdo. Se o aplicativo navegador do cliente não for capaz de interpretar o texto HTML então ele
apenas efetua o download dessa página.
O servidor web Apache teve sua origem em 1995 num conjunto de patches aplicados ao código
fonte do servidor web NCSA (National Center for Supercomputing Applications) e isso foi possível
pois o código fonte do servidor web NCSA sempre foi amplamente disponível. O nome Apache é
derivado diretamente de a patchy server e trata-se de um produto mantido pelo grupo Apache, que
também disponibiliza o código fonte do servidor web Apache.
Normalmente, ao cliente interessa muito mais a tela gráfica do navegador, que é resultado da
interpretação do documento HTML após ter sido "baixado" do servidor web. No entanto, existem
também navegadores de linha de comando, como o Lynx e o Wget. Usaremos o "wget" nas nossa
aulas práticas.
O Apache é hoje o mais importante e mais usado servidor web, estima-se que 65% dos servidores
web na internet sejam Apache, e essa preferência reflete não apenas o baixo custo de implantação,
mas também a qualidade, robustez e segurança do produto.
7.2 – Configuração do Apache
Numa instalação padrão rpm, a configuração do servidor web Apache é através do arquivo
"/etc/httpd/conf/httpd.conf":
-------------------#/etc/httpd/conf/httpd.conf
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
28
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
# standalone: independe do servidor inet
ServerType standalone
# raiz ou diretório de configuração e logs do servidor web
ServerRoot /etc/httpd
# tempo para desconectar um cliente inativo, em cliente
Timeout 300
# número mínimo e máximo de processo de "espera"
MinSpareServers 2,max 4
# número de processo a serem iniciados quando da inicialização do servidor Apache
StartServers 2
# número máximo de clientes conectados simultaneamente
MaxClients 150
# porta TCP
Port 80
# usuário no Unix sob o qual roda o servidor web
User nobody
# grupo no Unix sob o qual roda o servidor web
Group nobody
# nome do servidor
ServerName www.aluno.br
# raiz dos documentos HTML
DocumentRoot "/var/www/default"
-------------------Se fosse o caso de habilitar PHP, bastaria tirar (caso houvesse) o comentário nas seguintes linhas:
-------------------LoadModule php4_module
AddModule mod_php4.c
--------------------
modules/libphp4.so
Uma "página" PHP útil de teste é "info.php":
<?php
echo phpinfo();
?>
O PHP é um módulo externo que, uma vez habilitado no Apache, permite a interpretação dos
scripts PHP, muito útil pelo seu suporte a base de dados.
Para levantar o servidor web, basta disparar o script de inicialização:
#/etc/init.d/httpd start
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
29
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
Para verificar se está funcionando, faça um acesso usando o cliente wget:
$wget www.aluno.br
SEMANA 11 (prática)
7.3 - Servidor web APACHE: conteúdo restrito
Nos últimos anos tem-se verificado uma tendência de usar o servidor web ofertando conteúdo
restrito, por exemplo disponibilizar algum conteúdo na internet mas permitir o acesso apenas a
aqueles clientes que possuam determinado endereço IP ou que tenham uma senha de acesso a essas
páginas protegidas.
No Apache, existem duas maneiras básicas de proteger conteúdo, que é o diretório protegido por
senha e/ou IP.
Para habilitar a configuração do diretório protegido é necessário tirar o comentário (caso haja) das
seguintes linhas no arquivo "/etc/httpd/conf/httpd.conf":
-------------------LoadModule access_module
AddModule mod_access.c
--------------------
modules/mod_access.so
7.3.1 - Diretório protegido por IP:
Para criar um diretório protegido por IP, devemos primeiro criar esse diretório no "Document Root"
do servidor web. Para isso, comandar:
#mkdir /var/www/default/protegido
Após, abrir o arquivo de configuração do servidor web com um editor e inserir a diretiva
"Directory" conforme descrito abaixo.
-------------------<Directory "/var/www/default/protegido">
Order deny,allow
Deny from all
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
30
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
Allow from 192.168.1.
</Directory>
-------------------Com essa diretiva, apenas os clientes com IP na faixa 192.168.1.0/24 podem acessar o conteúdo do
diretório "protegido" em "www.aluno.br/protegido", os demais não estarão autorizados a efetuar
acesso ao conteúdo desse diretório.
Para essa diretiva tomar efeito é necessário antes (re)iniciar o servidor web Apache.
7.3.2 - Diretório protegido por senha:
À semelhança do caso anterior, para criar um diretório protegido por senha devemos primeiro criar
esse diretório no "Document Root" do servidor web. Para isso, comandar:
#mkdir /var/www/default/autenticado
Após, abrir o arquivo de configuração do servidor web com um editor e inserir a diretiva
"Directory" conforme descrito abaixo
-------------------<Directory "/var/www/default/autenticado">
AllowOverride FileInfo AuthConfig Limit
Order allow,deny
Allow from all
</Directory>
-------------------Com essa diretiva, quem tentar acessar o conteúdo do diretório "autenticado" em
"www.aluno.br/autenticado" receberá uma requisição de senha para poder continuar. Além disso,
nas configurações do servidor web (httpd.conf) deve haver a seguinte linha sem comentário na
frente:
-------------------AccessFileName .htaccess
-------------------Essa instrução, "AccessFileName", nos diz que a autenticação é dependente do arquivo ".htaccess",
que deve estar localizado dentro do diretório protegido por senha.
Para criar esse arquivo, abrir (criar caso ainda não exista) "/var/www/default/autenticado/.htaccess",
com um editor e incluir as instruções abaixo:
--------------------
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
31
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
AuthUserFile /var/www/default/autenticado/.htpasswd
AuthGroupFile /dev/null
AuthName "Acesso Restrito"
AuthType Basic
require valid-user
-------------------Nesse caso, o arquivo ".htpasswd" trata de condições de autenticação básicas e informa que o
usuário e a senha de acesso estão no arquivo ".htpasswd". Portanto, devemos criar também o
arquivo com o(s) usuário(s) e suas senhas de acesso a esse diretório. Para isso, comandar:
#htpasswd -c /var/www/default/autenticado/.htpasswd juca
onde a opção -c cria um novo arquivo e inclui nele o usuário juca. Esse comando irá também
solicitar a senha de acesso ao diretório para o usuário juca.
Antes de testar o acesso protegido por senha, devemos (re)iniciar o servidor web pois incluímos
uma diretiva "Directory".
Para testar o acesso, comande:
$wget www.aluno.br/ autenticado
Nesse caso, descobrimos que o acesso exige uma autenticação.
7.4 - Servidor web APACHE: Domínios Virtuais
O servidor web Apache permite implementar hosts virtuais no mesmo serviço em que atende um
host real. Por exemplo, no capítulo que tratou do DNS, configuramos um registro CNAME
relacionando "linux10" com "www", ou seja, o cliente procura por "www.aluno.br" e é atendido
pelo host "linux10" no domínio "aluno.br". Neste caso, "linux10" é um host real onde está rodando
o servidor web Apache.
Pois o conceito de host virtual, de maneira semelhante ao exemplo acima, permite instalar também
páginas de outros domínios, tais como "www.aluno00.br" e "www.aluno10.br" no mesmo servidor
web que responde pelo site "www.aluno.br". Inclusive, podemos configurar esses domínios para
terem suas páginas na mesma porta TCP e IP que o site de "www.aluno.br".
No entanto, para que o servidor web Apache seja capaz de resolver a requisição do cliente baseada
no nome do host, o servidor DNS BIND precisa estar previamente configurado pois é ele que
resolve o IP onde está esse servidor web.
Outro ponto importante é o conceito de host virtual não IP, onde afirmar que não tem IP indica
apenas que podem ser configurados vários domínios hospedados no mesmo IP. A vantagem está na
economia de IPs, a desvantagem é que essa técnica funciona apenas quando se está usando o
protocolo HTTP/1.1.
Para incluir um domínio virtual devemos ter a diretiva BindAddress escutando em pelo menos uma
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
32
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
interface, conforme instrução abaixo:
-------------------#/etc/httpd/conf/httpd.conf
BindAddress *
-------------------Também precisamos de uma diretiva NameVirtualHost, conforme instrução abaixo:
-------------------#/etc/httpd/conf/httpd.conf
NameVirtualHost 192.168.11.11
-------------------Os domínios virtuais precisam ser incluídos dentro de diretivas VirtualHost, conforme a instrução
abaixo:
-------------------#/etc/httpd/conf/httpd.conf
<VirtualHost 192.168.11.11>
DocumentRoot /home/httpd/aluno00
ServerName aluno00.br
ServerAlias www.aluno00.br
ErrorLog logs/aluno00.erros
TransferLog logs/aluno00.logs
ScriptAlias /cgi-bin/ "/home/httpd/aluno00/cgi-bin"
</VirtualHost>
#
<VirtualHost 192.168.11.11>
DocumentRoot /home/httpd/aluno10
ServerName aluno10.br
ServerAlias www.aluno10.br
ErrorLog logs/aluno10.erros
TransferLog logs/aluno10.logs
ScriptAlias /cgi-bin/ "/home/httpd/aluno10/cgi-bin"
</VirtualHost>
-------------------Como no DNS BIND indicamos que o host virtual iria estar no IP 192.168.11.11, então o host real
precisa também responder nesse IP.
Para isso, ou dispomos de outra interface (placa) de rede ou então criamos um alias (apelido). Para
criar um alias, basta seguir os seguintes passos: copiar as configurações da atual interface, eth0,
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
33
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
para uma nova cópia, eth0:0, conforme instrução abaixo:
#cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0
Depois é só editar a interface ifcfg-eth0:0 e modificar as seguintes linhas:
-------------------#/etc/sysconfig/network-scripts/ifcfg-eth0:0
# o nome do device copiado é eth0:0
#DEVICE=eth0
DEVICE=eth0:0
BOOTPROTO=static
BROADCAST=
#IPADDR=192.168.1.10
# o endereço IP do alias é 192.168.11.11
IPADDR=192.168.11.11
#NETMASK=255.255.255.0
# a máscara de rede agora é B
NETMASK=255.255.0.0
NETWORK=
ONBOOT=yes
-------------------Para a interface alias tomar efeito é necessário reinicializar o serviço network:
#/etc/init.d/network restart
Pode ser verificado se essa interface está funcionando usando o comando:
#/sbin/ifconfig
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
34
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
ANEXO 1:
NOÇÕES DE REDES E PROTOCOLOS DE COMUNICAÇÃO
As redes de computadores têm como principais funções disponibilizar seviços e compartilhar
recursos.
Porém, para que haja comunicação em rede, os equipamentos precisam ter o mesmo protocolo de
comunicação, algo muito parecido como falar a mesma língua para poder haver diálogo.
Protocolo TCP
Atualmente, o protocolo mais importante e mais amplamente usado é o TCP, isso pela sua condição
OpenSource, ampla disponibilidade e pela Internet, pois o TCP é o padrão de fato para
comunicação na grande rede mundial.
TCP significa Transmission Control Protocol e IP é o Internet Protocal. Na verdade o TCP/IP é um
conjunto flexível de protocolos desenvolvidos para WANs - Wide Area Network ou redes muito
extensas.
O IP provê um endereçamento lógico, além de informações necessárias aos roteadores para
conduzirem os pacotes TCP de uma LAN para outra.
Protocolo NetBEUI
NetBEUI (NetBIOS Extended User Interface) é um protocolo nativo da Microsoft, não roteável em
rede WAN mas que pode ser encapsulado no pacote TCP/IP e assim trocar informações entre LANs
separadas fisicamente.
Esse protocolo é baseado em broadcasts, por isso somente deve ser usado em pequenas redes LAN
devido ao intenso tráfego de pacotes que produz.
NetBEUI é um protocolo de transporte, NetBIOS é a API desse protocolo.
Protocolos IPX/SPX e NWLink
NWLink é uma emulação do Novell IPX/SPX (Internet Packet Exchange/Sequenced Packet
Exchange) feita pela Microsoft para permitir a comunicação da rede Windows com rede Netware.
Esse protocolo é baseado em datagramas.
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
35
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
ANEXO 2:
SUMÁRIO DOS PRINCIPAIS TERMOS E COMANDOS UNIX
Para um melhor entendimento deste sumário, vamos adotar a mesma notação já descrita quanto ao
simbolo do shell do usuário:
$ - simbliza o shell do usuário sem privilégios root
# - simboliza o shell do root (comandos que somente podem ser executados pelo root)
A
a.1) "adduser"
É na verdade um link simbólico para "useradd", comando usado para cadastrar (incluir) usuários.
Exemplo:
#adduser juca
B
b.1) "bash"
Bash é o interpretador de comandos padrão nos sistemas operacionais Linux
C
c.1) "cal"
É o comando para mostrar o calendário, ou seja, na sua forma default mostra o calendário no
presente mês do ano.
Exemplo:
$cal
$cal 2003
c.2) "cat"
É o comando para "capturar" um arquivo de texto. Na sua forma padrão, o cat captura o arquivo de
texto e mostra seu conteúdo no shell do usuário. Se o comando for dado redirecionando a saída
padrão, edita o arquivo. Ou seja, além de permitir ler o conteúdo de arquivo de texto, o comando
cat também pode ser usado como um editor, criando ou inserindo caracteres num arquivo.
Exemplo:
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
36
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
$cat /etc/passwd
$cat > ~juca/teste.txt
apenas um teste
<CTRL>d
$cat ~juca/teste.txt
c.3) "cd"
É usado para mudar de diretório, ou seja, serve para se movimentar no sistema hieráquico de
arquivos.
Exemplo:
$cd /home
$cd
c.4) "chgrp"
É usado para mudar um arquivo de grupo.
Exemplo:
#chgrp joca arq.txt
#chgrp users dir1
c.5) "chmod"
É o comando para mudar as permissões dos arquivos, apenas o dono do arquivo ou o root podem
mudar as permissões.
Exemplo:
$chmod 755 arq.txt
$chmod 500 dir1
c.6) "chown"
É o comando usado para mudar a posse do arquivo.
Exemplo:
#chown juca arq.txt
#chown joca dir1
c.7) "cmp"
É o comando para comparar arquivos, essa comparação é byte a byte e mostra a primeira ocorrência
onde os arquivos diferem. Pode tanto ser usado em arquivos com conteúdo texto quanto binários.
Exemplo:
$cmp arq1 arq2
c.8) "comm"
Esse comando também compara arquivos, porém diferente do cmp, mostra o que os arquivos têm
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
37
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
em comum.
Exemplo:
$comm arq1 arq2
c.9) "cp"
O comando cp é usado para copiar arquivos.
Exemplo:
$cp /etc/passwd ~juca/arq.passwd
$cp arq1.txt /tmp
c.10) "cut"
É o comando usado para segmentar ou "cortar" arquivos, usando um determinado caracter como
separador de campo.
Exemplo:
$cut -d: -f1 /etc/passwd
$cut-d":" -f1,2,3 /etc/group
D
d.1) "df"
É o comando usado para determinar o espaço (quantidade) usado de uma partição montada do
sistema de arquivos.
Exemplo:
$df -k
$df -h
$df -ki /dev/hda1
d.2) "diff"
É o comando usado para mostrar a diferença entre dois arquivos. Se houver diferença entre os dois
arquivos que estão sendo comparados, mostra a(s) linha(s) onde ocorreu essa diferença.
Exemplo:
$diff arq1.txt arq2.txt
d.3) "dump"
Esse comando é específico para fazer backups, nesse processo usualmente arquivos são copiados do
HD para o dispositivo de fita.
Exemplo:
#dump -0 -f /dev/nst0 /bin
E
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
38
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
e.1) "echo"
Esse comando "ecoa" no shell o argumento dado na linha de comando.
Exemplo:
$echo "Apenas um teste"
$echo $SHELL
$echo $PATH
e.2) "env"
Esse comando mostra o valor das variáveis de ambiente carregadas pelo usuário.
Exemplo:
$env
e.3) "exit"
Esse comando é usado para finalizar a execução de um script shell. Na linha de comando, finaliza
(abandona) o acesso shell.
Exemplo:
$exit
F
f.1) "file"
Esse comando determina o tipo do arquivo, por exemplo se é um arquivo de texto, binário, etc.
Exemplo:
$file arq1.txt
f.2) "find"
Esse comando é usado para encontrar arquivos cujo nome esteja relacionado ao padrão usado na
busca.
Exemplo:
$find ~juca -name test.txt -print
f.3) "finger"
Esse comando mostra os usuários que estão logados no host.
Exemplo:
$finger
f.4) "for"
É um comando para construir loops, ou seja, permite realizar uma tarefa repetitiva num único
comando.
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
39
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
Exemplo:
$for foo in ~juca/*.txt; do cat $foo | grep TEXTO; done
f.5) "free"
Esse comando reporta o total de memória livre e ocupada do sistema, tanto da memória física
quanto swap.
Exemplo:
$free
f.6) "fsck"
É usado pelo root para verificar a integridade do sistema de arquivo. Fsck também é usado para
reparar um sistema de arquivo danificado.
Exemplo:
#fsck /dev/hda3
f.7) "ftp"
Esse comando é aplicativo cliente do serviço de acesso FTP.
Exemplo:
$ftp 192.168.1.10
G
g.1) "grep"
O nome desse comando são as iniciais de global regular expression and print, ou seja, é um
comando usado com filtro de busca por algum padrão regular em strings ou arquivos de texto.
Exemplo:
$cat /etc/passwd | grep juca
g.2) "gzip"
Esse comando é usado para compactar arquivos, após essa compactação ele adiciona a extensão
".gz" ao arquivo.
Exemplo:
$gzip arq1.txt
g.3) "gunzip"
Esse comando é usado para descompactar arquivos compactados com o comando gzip.
Exemplo:
$gunzip arq1.txt.gz
H
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
40
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
h.1) "history"
Esse comando mostra o histórico de comandos dados no shell. Não funciona para todos tipos de
shell.
Exemplo:
$history
h.2) "HOME"
Home não é comando, mas variável de ambiente que carrega a localização da home do usuário no
sistema hierárquico de arquivo.
Exemplo:
$echo $HOME
I
i.1) "ifconfig"
Esse comando configura a(s) interface(s) de rede.
Exemplo:
$ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up
$ifconfig
K
k.1) "kill"
Esse comando é usado para enviar um sinal específico a um processo ou grupo de processos.
Exemplo:
$kill -9 exec1
L
l.1) "ln"
Esse comando cria um linque, ou seja, uma ligação entre dois arquivos.
Exemplo:
$ln -s /etc/passwd ~juca/passwd
l.2) "LOGNAME"
Logname não é comando, mas variável de ambiente que carrega o nome do usuário (username)
logado.
Exemplo:
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
41
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
$echo $LOGNAME
l.3) "ls"
Esse comando faz uma listagem dos objetos presentes num diretório.
Exemplo:
$ls
$ls /etc
$ls -l /etc/group
l.4) "lp"
Esse comando serve para enviar os dados (arquivos) para a impressora.
Exemplo:
$lp arq.txt
l.5) "lpq"
Esse comando serve para mostrar o queue (fila) de trabalhos pendentes na impressora.
Exemplo:
$lpq
l.6) "lprm"
Esse comando é usado para remover o queue de trabalho(s) pendente(s) na impressora.
Exemplo:
$lprm
M
m.1) "mesg"
O comando mesg serve para controlar a recepção de mensagens no terminal. As mensagens são
enviadas com o comando write.
Exemplo:
$mesg y
$mesg n
m.2) "mkdir"
Esse comando é usado para criar diretórios.
Exemplo:
$mkdir /tmp/teste
m.3) "more"
O comando more é usado como um filtro para visualizar o conteúdo de uma lista paginadamente na
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
42
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
tela.
Exemplo:
$more arq.txt
m.4) "mount"
Esse comando é usado pelo root para montar (anexar) um sistema de arquivo a um ponto de
montagem no sistema hierárquico de arquivo.
Exemplo:
#mount -t nfs 192.168.1.10:/mnt/cdrom /mnt/cdrom
m.5) "mv"
Esse comando movimenta arquivos de um diretório para outro, também serve para renomear
arquivos.
Exemplo:
$mv ~juca/arq1.txt /tmp
$mv ~juca/arq1.txt ~juca/arq2.txt
N
n.1) "netstat"
Mostra conexões de rede, tabelas de roteamento, estatísticas de interface e conexões.
Exemplo:
$netstat -na
P
p.1) "passwd"
Esse comando é usado para trocar a senha.
Exemplo:
$passwd
#passwd juca
p.2) "paste"
Esse comando cola linhas de um arquivo no outro, no modo default o resultado irá aparecer na saída
padrão. Nessa apresentação, o conteúdo de cada linha respectiva nos dois arquivos irá aparecer uma
ao lado da outra, agora na mesma linha na saída.
Exemplo:
$paste arq1.txt arq2.txt
p.3) "PATH"
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
43
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
Não é comando, mas variável de ambiente que guarda os diretórios onde o sistema busca por
comandos.
Exemplo:
$echo $PATH
p.4) "pipe"
Pipe não é comando, mas um operador que permite redirecionar a saída de um comando para ser a
entrada de o outro. Esse operador é representado pela barra vertical "|".
Exemplo:
$cat /etc/passwd | grep juca
p.5) "ps"
Esse comando reporta informações sobre os processos.
Exemplo:
$ps -ef
p.6) "PS1"
Não é comando, mas variável de ambiente que retorna o prompt do sistema.
Exemplo:
$echo $PS1
p.7) "pwd"
Esse comando mostra o diretório corrente no sistema hierárquico de arquivo.
Exemplo:
$pwd
R
r.1) "rm"
Esse comando é usado para remover arquivos.
Exemplo.
$rm arq1.txt
$rm -r dir1
r.2) "rmdir"
Esse comando remove diretórios vazios apenas.
Exemplo:
$rmdir dir1
S
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
44
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
s.1) "sleep"
Esse comando é usado para suspender a execução de algum comando, normalmente é usado apenas
em shell scripts. O tempo de interrupção normalmente é em segundos.
Exemplo:
sleep 10
s.2) "smbclient"
Esse comando permite acessar o recurso compartilhado pelo Servidor Samba ou NetBIOS
(Windows). O smbclient faz parte do pacote Samba Client e oferece uma interface de texto
semelhante ao cliente ftp.
Exemplo:
$smbclient //aluno10/TESTE -U juca
s.3) "smbmount"
Esse comando é usado para montar um recurso compartilhado pelo servidor Samba ou NetBIOS
(Windows). O smbmount faz parte do pacote Samba Client.
Exemplo:
$smbmount //aluno10/TESTE /mnt/samba -o username=juca,password=juca
s.4) "smbpasswd"
Esse comando permite alterar a senha do usuário no Servidor Samba.
Exemplo:
#smbpasswd juca
s.5) "sort"
Esse comando é usado para ordenar uma lista de saída.
Exemplo:
$cat /etc/passwd | sort -n
s.6) "split"
O comando split divide um arquivo grande em vários outros menores. A saída padrão para esse
comando é o sistema de arquivo, ou seja, o resultado desse comando vai para os arquivos que são
criados.
Exemplo:
$split -5 arq1.txt
s.7) "su"
Esse comando é usado para ganhar o shell do root ou superusuário, mediante envio da senha do
root. Outra função é permitir ao root se "transformar" em outro usuário.
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
45
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
Exemplo:
$su
#su - juca
s.8) "sync"
Esse comando é usado para dar um flush nos buffers do sistema de arquivo, ou seja, força a cópia
dos dados que estão nos buffers para o disco.
Exemplo:
#sync
T
t.1) "tail"
Esse comando mostra o final de um arquivo.
Exemplo:
$tail arq1.txt
t.2) "tar"
Esse comando serve para extrair ou arquivar arquivos num arquivo chamado tarfile. O tarfile pode
estar no HD, mídia removível ou fita. Na prática, o que o tar faz é apenas "aglomerar/desglomerar"
arquivos, sem compactar.
Exemplo:
$tar cvf arq1.tar /bin
t.3) "telnet"
Esse comando é um aplicativo cliente do serviço de acesso telnet.
Exemplo:
$telnet 192.168.1.10
t.4) "top"
Esse comando serve para mostrar a atividade ou uso da CPU numa interface interativa, podendo,
entre outras alternativas, mudar a forma da apresentação da lista ordenada de processos que mais
consomem CPU para uma lista ordenada de processos que mais alocam memória.
Exemplo:
$top
U
u.1) "uptime"
Esse comando mostra há quanto tempo o host está no ar, sem rebootar.
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
46
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
Exemplo:
$uptime
W
w.1) "w"
Esse comando mostra os usuários logados no host.
Exemplo:
$w
w.2) "wall"
Esse comando é usado para enviar mensagens para todos usuários logados no host.
Exemplo:
$wall "Apenas um teste de juca..."
w.3) "wc"
Esse comando é usado para contar o número de linhas, palavras ou caracteres num arquivo.
Exemplo:
$wc arq1.txt
$wc -l arq1.txt
w.4) "write"
Esse comando permite a comunicação entre dois usuários logados no host, numa interface
semelhante a um chat.
Exemplo:
$write joca pts/2
Administração de Redes de Computadores – maio/2003
Prof. Jairo - [email protected]
47
Descargar