Sei sulla pagina 1di 124

SERVIO PUBLICO FEDERAL

MINISTERIO DA EDUCAO
INSTITUTO FEDERAL DE EDUCAO, CINCIA E TECNOLOGIA DO PARA
Programa Nacional de Acesso ao Ensino Tcnico e Emprego - PRONATEC
CAMPUS BELM
AUXLAR EM ADMN8TRAAO DE REDE8
Arquitetura de Redes
Prof. 8amuel Neves
2013
Os captulos 3, 5, 6, 7, e 12 so adaptaes do texto:
Guia Foca GNU/Linux
Copyleft 1999-2002 - Gleydson Mazioli da Silva.
Fonte: http://focalinux.cipsga.org.br
O captulo 4 uma adaptao do texto:
DHCP mini-HOWTO
Copyright 1999-2002 Vladimir Vuksan <vuksan@veus.hr>.
Fonte: http://br.tldp.org/documentos/comofazer/html/ DHCP/DHCP.pt_BR.html
O captulo 8 uma adaptao do texto:
DNS HOWTO
Copyright 1999-2002 Nicolai Langfeldt <janl@math.uio.no>.
Fonte:
http://br.tldp.org/documentos/comofazer/html/DNS -HOWTO/DNS-HOWTO.pt_BR.html
O captulo 9 uma adaptao do texto:
NFS HOWTO
Copyright 1999-2002 Nicolai Langfeldt <janl@math.uio.no>.
Fonte:
http://br.tldp.org/documentos/comofazer/html/nfs.howto/nfs.howto.pt_BR.html
O captulo 13 uma adaptao do texto:
Linux: Perguntas e Respostas
Copyleft 1999-2002 - Unicamp.
Fonte: http://ftp.unicamp.br/pub/linuxdocs/conectiva/pr/pr.html
Esta apostila uma coletnea de textos com licena GNU ou livres
encontrados na Internet, conforme referncias acima.

CONTEDO ...............................................................................................................3
1 REDES DE COMPUTADORES...........................................................................9
1.1 O QUE UMA REDE...............................................................................................9
1.2 PROTOCOLO DE REDE..........................................................................................9
1.3 INTERNET...........................................................................................................10
1.4 OMODELO OSI .................................................................................................10
1.4.1 AS CAMADAS OSI.............................................................................................11
1.4.2 A CAMADA FSICA ............................................................................................11
1.4.3 A CAMADA DE ENLACE .....................................................................................12
1.4.4 A CAMADA DE REDE.........................................................................................12
1.4.5 A CAMADA DE TRANSPORTE .............................................................................12
1.4.6 A CAMADA DE SESSO......................................................................................13
1.4.7 A CAMADA DE APRESENTAO.........................................................................13
1.4.8 A CAMADA DE APLICAO................................................................................13
EXERCCIOS................................................................................................................13
2 TCP/IP .................................................................................................................15
2.1 A CAMADA FSICA..............................................................................................15
2.2 A CAMADA DE ENLACE DE DADOS......................................................................16
2.3 A CAMADA DE REDE...........................................................................................16
2.4 CAMADA DE TRANSPORTE .................................................................................16
2.4.1 TCP.................................................................................................................16
2.4.2 UDP ................................................................................................................17
2.4.3 ICMP...............................................................................................................17
2.5 MONTAGEM DOS PACOTES .................................................................................18
2.6 ENDEREAMENTO..............................................................................................19
2.6.1 ENDEREAMENTO DE ENLACE (MAC) ..............................................................19
2.6.2 ENDEREAMENTO DE REDE (IP)........................................................................19
2.6.2.1 Classes de Rede IP........................................................................................20
2.6.2.2 O endereo de loopback................................................................................21
2.6.2.3 Endereos reservados para uso em Redes Privadas........................................21
2.6.2.4 Referncia rpida de mscara de redes ............Error! Bookmark not defined.
2.6.3 ENDEREAMENTO DE SESSO (PORTAS)............................................................21
2.7 ROTEAMENTO ....................................................................................................23
2.7.1 REEMPACOTAMENTO ........................................................................................25
EXERCCIOS................................................................................................................25
4
3 CONFIGURAO DO TCP/IP NO LINUX.....................................................27
3.1 INSTALANDO UMA MQUINA EM UMA REDE EXISTENTE .....................................27
3.2 CONFIGURAO DA INTERFACE ETHERNET.......................................................27
3.2.1 A INTERFACE LOOPBACK ...................................................................................28
3.2.2 CONFIGURANDO UMA INTERFACE COM O IFCONFIG............................................28
3.2.3 CONFIGURANDO UMA INTERFACE DURANTE O BOOT...........................................28
3.2.4 DEFININDO DIVERSOS ENDEREOS IP PARA A MESMA INTERFACE .......................29
3.3 CONFIGURANDO UMA ROTA NO LINUX...............................................................31
3.4 HOSTNAME.........................................................................................................32
3.5 ARQUIVOS DE CONFIGURAO...........................................................................32
3.5.1 O ARQUIVO /ETC/HOSTS...................................................................................32
3.5.2 O ARQUIVO /ETC/NETWORKS .............................................................................33
3.5.3 O ARQUIVO /ETC/HOST.CONF...........................................................................33
3.5.4 O ARQUIVO /ETC/RESOLV.CONF .......................................................................34
3.6 OUTROS ARQUIVOS DE CONFIGURAO RELACIONADOS COM A REDE ...............34
3.6.1 O ARQUIVO /ETC/SERVICES .............................................................................34
3.6.2 O ARQUIVO /ETC/PROTOCOLS ...........................................................................35
4 DHCP...................................................................................................................36
4.1 PROTOCOLO DHCP...........................................................................................36
4.2 CONFIGURAO DO CLIENTE DHCP.................................................................36
4.2.1 OBTENDO O PROGRAMA CLIENTE (DHCPCD)......................................................36
4.2.2 SLACKWARE.....................................................................................................36
4.2.3 RED HAT 6.X E MANDRAKE 6.X.........................................................................37
4.2.4 RED HAT 5.X E CONECTIVA GNU/LINUX 3.X.....................................................38
4.2.5 DEBIAN ............................................................................................................38
4.2.6 EXECUTANDO O DHCPCD................................................................................38
4.2.7 INICIALIZANDO E ENCERRANDO O DHCPCD.........................................................40
4.2.8 SOLUO DE PROBLEMAS .................................................................................40
4.2.8.1 A placa de rede no est configurada adequadamente....................................40
4.2.8.2 O servidor DHCP suporta RFC 1541/O servidor um Windows NT.............40
4.2.8.3 Durante a inicializao se obtm a mensagem "Usando DHCP para eth0 ...
falhou" mas o sistema funciona perfeitamente. ............................................................41
4.2.8.4 A rede funciona por alguns minutos e subitamente para de responder............41
4.2.8.5 A placa Ethernet reconhecida durante a inicializao do sistema mas obtm-
se a mensagem "NO DHCPOFFER" nos arquivos de registros de ocorrncias. Isso
ocorre tambm com a placa PCMCIA..........................................................................41
4.2.8.6 Meu cliente faz as requisies mas no recebe resposta (Contribuio de Peter
Amstutz). .........................................................................................................................41
4.2.8.7 Segui todos os passos mas ainda no consigo conectar a mquina rede.......41
4.3 CONFIGURAO DO SERVIDOR DHCP...............................................................42
4.3.1 SERVIDOR DHCP PARA UNIX ..........................................................................42
5
4.3.2 CONFIGURAO DE REDE .................................................................................42
4.3.3 OPES DO DHCPD..........................................................................................43
4.3.4 INICIALIZANDO O SERVIDOR..............................................................................44
EXERCCIOS................................................................................................................44
5 COMANDOS DE REDE.....................................................................................45
5.1 O COMANDO WHO.................................................................................................45
5.2 O COMANDO TELNET ...........................................................................................45
5.3 O COMANDO FINGER ...........................................................................................46
5.4 O COMANDO FTP.................................................................................................46
5.5 O COMANDO WHOAMI ...........................................................................................47
5.6 O COMANDO DNSDOMAINNAME ..............................................................................47
5.7 O COMANDO HOSTNAME .......................................................................................47
5.8 O COMANDO TALK...............................................................................................47
5.9 O COMANDO MESG...............................................................................................48
5.10 O COMANDO PING.............................................................................................48
5.11 O COMANDO RLOGIN .........................................................................................49
5.12 O COMANDO RSH...............................................................................................49
5.13 O COMANDO W ..................................................................................................49
5.14 O COMANDO TRACEROUTE ..................................................................................50
5.15 O COMANDO NETSTAT .......................................................................................51
5.16 O COMANDO WALL.............................................................................................51
6 O SSH...................................................................................................................52
6.1 VERSO..............................................................................................................52
6.2 HISTRIA ...........................................................................................................52
6.3 CONTRIBUINDO ..................................................................................................52
6.4 CARACTERSTICAS .............................................................................................52
6.5 FICHA TCNICA ..................................................................................................53
6.6 SERVIDOR SSH....................................................................................................53
6.6.1 REQUERIMENTOS DE HARDWARE ......................................................................53
6.6.2 ARQUIVOS DE LOG CRIADOS PELO SERVIDOR SSH ...............................................54
6.6.3 INSTALAO DO SERVIDO R OPENSSH................................................................54
6.6.4 INICIANDO O SERVIDOR/REINICIANDO/RECARREGANDO A CONFI GURAO..........54
6.6.5 OPES DE LINHA DE COMANDO........................................................................54
6.7 CLIENTE SSH ......................................................................................................55
6.7.1 REDIRECIONAMENTO DE CONEXES DO X..........................................................56
6.7.2 SCP...................................................................................................................57
6.7.3 SFTP .................................................................................................................58
6.8 14.3 SERVIDOR SSH ............................................................................................59
6.8.1 SSHD ................................................................................................................59
6
6.8.2 CONTROLE DE ACESSO ......................................................................................59
6.8.3 USANDO AUTENTICAO RSA- CHAVE PBLICA/PRIVADA ................................59
6.8.4 DIFERENAS NAS VERSES DO PROTOCOLO .......................................................61
6.8.5 EXEMPLO DE SSHD_CONFIG COM EXPLICA ES DAS DIRETIVAS ..........................62
7 SERVIOS DE REDE ........................................................................................66
7.1 SERVIOS INICIADOS COMO DAEMONS DE REDE .................................................66
7.2 SERVIOS INICIADOS ATRAVS DO INETD ...........................................................66
7.2.1 /ETC/INETD.CONF ..............................................................................................67
8 DNS ......................................................................................................................70
8.1 INTRODUO AO DNS: OQUE E O QUE NO . ................................................70
8.2 UM SERVIDOR DE NOMES SOMENTE PARA CACHE. ...........................................71
8.2.1 INICIANDO O NAMED .........................................................................................74
8.3 UM DOMNIO SIMPLES: COMO CONFIGURAR UM DOMNIO PRPRIO ..................75
8.3.1 UM POUCO DE TEORIA .......................................................................................75
8.3.2 NOSSO PRPRIO DOMNIO.................................................................................79
8.3.3 A ZONA REVERSA..............................................................................................86
8.4 CONVERTER DA VERSO 4 PARA VERSO 8 ........................................................87
8.5 WINDOWS 2000 ACTIVE DIRECTORY E BIND....................................................88
8.5.1 CRIAR A ZONA PRIMRIA...................................................................................88
8.5.2 CRIAR AS SUBZONAS.........................................................................................89
9 NFS.......................................................................................................................90
9.1 INTRODUO AO NFS........................................................................................90
9.2 CONFIGURAO DO SERVIDOR NFS..................................................................90
9.2.1 PR-REQUISITOS...............................................................................................90
9.2.2 PRIMEIROS PASSOS ...........................................................................................90
9.2.3 OPORTMAPPER ..................................................................................................91
9.2.4 OMOUNTD E O NFSD ............................................................................................91
9.3 CONFIGURAO DO CLIENTE NFS ....................................................................93
9.3.1 OPES DE MONTAGEM....................................................................................94
9.3.2 OTIMIZANDO O NFS .........................................................................................94
9.4 SEGURANA E NFS ............................................................................................96
9.4.1 SEGURANA NO CLIENTE ..................................................................................97
9.4.2 SEGURANA NO SERVIDOR: NFSD......................................................................97
9.4.3 SEGURANA NO SERVIDOR: O PORTMAPPER.......................................................98
9.4.4 NFS E FIREWALLS ............................................................................................99
9.4.5 RESUMO...........................................................................................................99
9.5 PONTOS DE VERIFICAO DE MONTAGEM ........................................................99
9.6 FAQ.................................................................................................................100
10 NIS......................................................................................................................103
7
10.1 INTRODUO..................................................................................................103
10.1.1 MAPAS .........................................................................................................103
10.1.2 TIPOS DE SERVIDORES ..................................................................................103
10.2 CONFIGURANDO O SERVIDOR MESTRE ..........................................................103
10.3 CONFIGURANDO O CLIENTE ...........................................................................105
10.3.1 EXECUTANDO OS SERVIOS NO CLIENTE ........................................................105
10.3.2 CONFIGURANDO O SISTEM A DE BUSCA...........................................................105
11 FTP.....................................................................................................................106
11.1 INTRODUO AO FTP ....................................................................................106
11.2 CONFIGURAO DO SERVI DOR FTP...............................................................106
11.2.1 ARQUIVOS DE CONFIGURAO ADICIONAIS ....................................................106
11.2.2 FTP ANNIMO..............................................................................................114
EXERCCIOS..............................................................................................................115
12 SEGURANA DA REDE E CONTROLE DE ACESSO................................116
12.1 /ETC/FTPUSERS ...............................................................................................116
12.2 /ETC/SECURETTY ............................................................................................116
12.3 OMECANISMO DE CONTROLE DE ACESSOS TCPD ............................................116
12.3.1 /ETC/HOSTS.ALLOW.......................................................................................117
12.3.2 /ETC/HOSTS.DENY .........................................................................................118
12.3.3 /ETC/HOSTS.EQUIV E /ETC/SHOSTS.EQUIV .......................................................118
12.3.4 VERIFICANDO A SEGURANA DO TCPD E A SINTAXE DOS ARQUIVOS ..............119
12.4 FIREWALL ......................................................................................................120
13 TRABALHANDO COM O X-WINDOW EM REDE......................................122
13.1 ODISPLAY .....................................................................................................122
13.2 O SERVIDOR X-WINDOW................................................................................122
13.3 O CLIENTE X-WINDOW..................................................................................123
13.4 IDENTIFICAO E ENCERRAMENTO DE APLICATIVOS X-WINDOW.................123
EXERCCIOS..............................................................................................................123
APNDICE A. LICENA DE PUBLICAO LIVRE.....................................125
9


Rede a conexo de duas ou mais mquinas com o objetivo de
compartilhar recursos entre uma mquina e outra. Os recursos podem ser:
Compartilhamento do contedo de seu disco rgido (ou parte dele)
com outros usurios. Os outros usurios podero acessar o disco
como se estivesse instalado na prpria mquina. Tambm chamado
de servidor de arquivos.
Compartilhamento de uma impressora com outros usurios. Os
outros usurios podero enviar seus trabalhos para uma impressora
da rede. Tambm chamado de servidor de impresso.
Compartilhamento de acesso a Internet. Outros usurios podero
navegar na Internet, pegar seus e-mails, ler notcias, bate-papo no
IRC, ICQ atravs do servidor de acesso Internet. Tambm chamado
de servidor Proxy.
Servidor de Internet/Intranet. Outros usurios podero navegar nas
pginas Internet localizadas em seu computador, pegar e-mails, usar
um servidor de IRC para bate-papo na rede, servidor de ICQ, etc.
Com os itens acima funcionando possvel criar permisses de acesso
da rede, definindo quem ter ou no permisso para acessar cada
compartilhamento ou servio existente na mquina (www, ftp, irc, icq, etc), e
registrando/avisando sobre eventuais tentativas de violar a segurana do
sistema, firewalls, etc.
Alguns termos muito usados quando se fala sobre redes de
computadores:
host (mquina): um computador que faz parte da rede;
localhost (mquina local): o computador no qual o usurio est
trabalhando;
remote host (mquina remota): qualquer outro computador que faa
parte da rede. Geralmente o usurio no possui acesso fsico esta
mquina;
: host que disponibiliza algum recurso pela rede;
: mquina que utiliza os recursos utilizados pelo servidor;
Entre outras ilimitadas possibilidades que dependem do conhecimento
do indivduo no ambiente GNU/Linux, j que ele permite muita flexibilidade para
fazer qualquer coisa funcionar emrede.
A comunicao entre computadores em uma rede feita atravs do
Protocolo de Rede.

O protocolo de rede a linguagem usada para a comunicao entre um
computador e outro. Existem vrios tipos de protocolos usados para a
10
comunicao de dados, alguns so projetados para pequenas redes locais
(como o caso do NetBIOS) outros para redes mundiais (como o TCP/IP, que
possui caractersticas de roteamento).
Dentre os protocolos, o que mais se destaca atualmente o TCP/IP,
devido ao seu projeto, velocidade e capacidade de roteamento.

O termo internet usado para definir um conjunto de redes de
computadores, interligadas entre si. As redes podem ser homogneas (mesma
arquitetura de mquinas, sistemas operacionais e protocolos) ou heterogneas
(diversas plataformas diferentes interligadas). O objetivo permitir que os
dados sejam trocados de forma transparente, sem que um n saiba detalhes
sobre os demais.
A Internet (com i maisculo), que uma grande rede mundial de
computadores, um exemplo extremo do conceito de internet (com i
minsculo).
No final dos anos 60, o Departamento de Defesa americano iniciou uma
parceria com universidades para pesquisar novas tecnologias de comunicao
de dados. Os participantes fizeram a ARPANET, que foi a primeira rede de
troca de pacotes da histria. O experimento foi um sucesso, e a rede logo se
espalhou em instituies militares e universidades por todo pas.
Mas os primeiros protocolos da ARPANET eram lentos e sujeitos a
travamentos freqentes da rede. Foi necessria a criao de um novo conjunto
de protocolos, e no incio da dcada de 80 a ARPANET se converteu para o
TCP/IP.
O governo americano passou a exigir que todas as suas redes usassem
o TCP/IP, o que encorajou a adoo do protocolo por vrios fabricantes de
computadores.
A facilidade de operao do TCP/IP permitiu que a ARPANET crescesse
rapidamente, transformando-se no que hoje conhecemos por Internet.

Para satisfazer requerimentos de clientes para a capacidade de
computao remota, fabricantes de computadores de grande porte
desenvolveram uma variedade de arquiteturas de redes.
Algumas destas arquiteturas definem o inter-relacionamento de
fornecedores de hardware e software, em particular, para permitir o fluxo de
comunicaes atravs da rede para fabricantes de computadores em geral.
Com a finalidade de padronizar o desenvolvimento de produtos para redes de
comunicao de dados, foi elaborado um modelo aberto que teve como
referncia o OSI - Open System Interconnection pela ISO (International
Organization for Standardization).
As principais caractersticas do Modelo OSI so:
Diviso em Camadas: as diferentes funcionalidades so fornecidas
por diferentes protocolos, organizados em camadas;
11
Pontos de Acesso de Servios: as vrias camadas se comunicam
com as demais por uma interface padronizada, possibilitando a
substituio do protocolo de uma das camadas por outro equivalente.

O Modelo OSI dividido em 7 camadas, sendo que nem todas as
entidades da rede precisam implementar todas elas.

A camada fsica lida com a transmisso pura de bits atravs de um canal
de comunicao. As questes de projeto so concernentes garantia de que,
quando um lado transmite um bit 1, este seja recebido como bit 1 do outro lado.
As questes tpicas aqui so quantos volts devem ser usados para
representar um 1 e quantos um 0, quantos microssegundos dura um bit, se a
transmisso pode ocorrer simultaneamente em ambos os sentidos, como a
Aplicao
Apresentao
Sesso
Transporte
Rede
Enlace
Fsica
Rede
Enlace
Fsica
Aplicao
Apresentao
Sesso
Transporte
Rede
Enlace
Fsica
Camada N+1
Camada N
PAS
PAS
Requisio
PAS
PAS
PAS
PAS
Servio
PAS
PAS
Camada N-1

12
conexo inicial estabelecida e desfeita, quantos pinos o conector de rede
possui e para que servem.
As questes de projeto lidam majoritariamente com interfaces
mecnicas, eltricas e procedimentais, e com o meio fsico de transmisso que
est abaixo da camada fsica.
O projeto da camada fsica pode ser considerado como responsabilidade
do engenheiro eletrnico.

A tarefa principal da camada de enlace de dados pegar a facilidade de
transmisso de dados brutos e transform-la em uma linha que parea
camada de rede ser livre de erros de transmisso. tarefa dessa camada
resolver os problemas causados por quadros danificados, perdidos ou
duplicados.
Ela realiza essa tarefa fazendo com que o transmissor fragmente os
dados de entrada em quadros, transmita-os seqencialmente e processe os
quadros de confirmao mandados de volta pelo receptor.
Dado que a camada fsica meramente aceita uma seqncia de bits sem
se importar com o significado ou a estrutura, cabe camada de enlace de
dados criar e reconhecer os limites dos quadros. Isto pode ser conseguido
anexando-se padres de bits especiais ao comeo e fim do quadro.
A camada de enlace pode oferecer vrias classes diferentes de servio
camada de rede, cada qual com qualidade e preo diferentes.
tambm tarefa desta camada impedir que um transmissor rpido
afogue um receptor lento com dados, atravs de algum mecanismo regulador
de trfego.

A camada de rede se preocupa com o controle da operao da sub-
rede, determinando como os pacotes so roteados da origem para o destino.
As rotas podem ser baseadas em tabelas estticas ou altamente dinmicas,
mudando para cada pacote.
tambm funo desta camada o controle de congestionamentos de
pacotes.
A contabilidade do uso da rede outra das funes da camada de rede.

A funo bsica da camada de transporte aceitar dados da camada de
sesso, dividi-los se necessrio em unidades menores, pass-las cama de
rede e garantir que os pedaos cheguem corretamente ao outro lado.
Em condies normais, a camada de transporte cria uma conexo de
rede distinta para cada conexo de transporte exigida pela camada de sesso.
Mas devido a requerimentos de banda e limitaes de custo, pode ser
necessrio multiplexar vrias conexes de transporte em uma conexo de
rede, ou vice-versa.
A camada de transporte uma verdadeira camada fim-a-fim. Ela
responsvel pelo estabelecimento, manuteno e encerramento das conexes
fim-a-fim.
13

A camada de sesso permite a usurios em mquinas diferentes
estabelecerem sesses entre eles. Uma sesso de transporte pode ser usada
para permitir ao usurio logar-se remotamente, ou para transferir um arquivo
entre duas mquinas.
Um dos servios desta camada gerenciar o controle de dilogos,
acompanhando de quem a vez de transmitir.
Um outro servio da camada de sesso a sincronizao, fornecendo
meios de inserir checkpoints no fluxo de dados, de forma que, depois de uma
falha, somente os dados aps o ltimo checkpoint precisam ser repetidos.

Ao contrrio de todas as camadas inferiores, que se interessavam em
trocar bits confiavelmente, a camada de apresentao se relaciona com a
sintaxe e a semntica da informao transmitida.
A camada de apresentao tambm pode realizar compresso de dados
para reduzir o trfego, ou criptografia para garantir a privacidade.

A camada de aplicao dentro do processo de comunicao faz
interface com a aplicao. Ou seja, baseado em solicitaes de uma aplicao
de rede, esta camada seleciona servios a serem fornecidos por camadas mais
baixas.
Esta camada deve providenciar todos os servios diretamente
relacionados aos usurios. Alguns destes servios so:
identificao da inteno das partes envolvidas na comunicao e
sua disponibilidade e autenticidade
estabelecimento de autoridade para comunicar-se
acordo sobre o mecanismo de privacidade
determinao da metodologia de alocao de custo
determinao de recursos necessrios para prover uma qualidade de
servios aceitvel
sincronizao de cooperao para aplicaes
seleo da disciplina de dilogo
responsabilidade da recuperao de erros de estabelecimento
acordo na validao de dados
transferncia de informaes

1. Qual a diferena entre internet e Internet?


2. Qual a diferena entre cliente e servidor?
14
3. O que um protocolo de rede?
4. Qual da opes abaixo no uma camada do modelo OSI?
a) Enlace
b) Transporte
c) Sesso
d) Roteamento
e) Rede
15

O TCP/IP um protocolo que conecta redes LAN ou WAN, homogneas
ou heterogneas. Ele pode fazer tanto a comunicao entre hosts ponto-a-
ponto, como a comunicao entre cliente e servidor.
Existemdois tipos de interao entre aplicaes.
Comunicao Orientada Conexo apropriada quando as aplicaes
precisam de uma troca contnua de dados.
Em contraste, a Comunicao No Orientada Conexo apropriada
quando as aplicaes trocam mensagens isoladas, geralmente com
quantidades pequenas de dados.
Para conseguir uma troca de dados confivel entre os ns, so
necessrios vrios procedimentos: empacotamento dos dados, determinao
do caminho a ser seguido pelos pacotes, transmisso dos dados, adaptao da
taxa de transmisso de acordo com a capacidade do destino de receber dados,
gerenciamento de erros e retransmisso de dados.
Isso resulta em uma implementao complicada. Para facilitar essa
tarefa, pode se usar uma implementao modular, agrupando as tarefas
relacionadas em camadas distintas.
Para o TCP/IP foi adotado um modelo de comunicao dividido em
camadas, que depois viria a influenciar o modelo OSI que hoje considerado
padro.
Cada camada acrescenta informaes de controle ao pacote de dados e
transmite seu pacote para a camada inferior, que tambm adiciona seus dados.

A camada fsica trabalha com a mdia fsica, conectores, e os sinais que
representam 0 e 1. Por exemplo, um modem padro V.90 ou V.92
implementam as funes da camada fsica.

16

A camada de enlace de dados usa a capacidade de transmisso de
dados brutos da camada fsica e transforma-a em uma linha que parea
camada de rede ser livre de erros de transmisso. O protocolo PPP um
exemplo de camada de enlace de dados.
Na camada de Enlace de Dados, os dados so organizados emquadros.
Cada quadro tem um cabealho que inclui o endereo e controla a
informao e um trailer que usado para deteco de erros.
Um cabealho de quadro de LAN contm a os endereos fsicos de
origem e destino, que identificam as placas de rede.
Note que o Enlace pode ser uma rede local ou uma conexo Ponto-a-
Ponto.

O IP (Internet Protocol) executa as funes da camada de rede. O IP
roteia os dados entre sistemas. Os dados podem atravessar um nico enlace
ou podem ser retransmitidos por vrios enlaces pela internet. As unidades de
dados so chamadas datagramas.
Os datagramas tm um cabealho IP que contm endereamento de
rede. Os roteadores examinam o endereo de destino no cabealho IP para
direcionar os datagramas para seu destino.
A camada IP dita No-Orientada Conexo porque cada datagrama
roteado independentemente e o IP no garante a entrega confivel ou em
seqncia dos datagramas.


O TCP (Transmission Control Protocol) proporciona conexes de dados
confiveis para as aplicaes. O TCP conta com mecanismos que garantem
que os dados so entregues s suas aplicaes locais:
ntegros
Em seqncia
Completos
Sem duplicatas
Os mecanismos bsicos que o TCP usa para conseguir isso so:
Numerao dos segmentos
Dados Header Trailer


Endereo IP Origem
Endereo IP Destino
17
Estabelecimento de Timeout
Retransmisso dos segmentos
O lado que recebe os dados deve coloc-los em na seqncia correta,
descartando duplicatas e confirmando o recebimento dos mesmos.
O TCP implementado apenas nos hosts. O TCP um protocolo full-
duplex, ou seja, ambos os lados podem enviar dados ao mesmo tempo.
O TCP adiciona um cabealho ao pacote de dados da aplicao,
formando um segmento.
O TCP passa os segmentos ao IP, que ento roteia os mesmos at seu
destino. O TCP aceita segmentos do IP, determina qual aplicao o destino,
e passa os dados para a aplicao apropriada.

O UDP no faz nenhuma garantia quanto entrega dos dados, e
dever da aplicao trocar informaes que confirmem a chegada dos dados. O
UDP implementado apenas nos hosts.
Com o UDP (User Datagram Protocol), uma aplicao manda uma
mensagem isolada para outra aplicao. O UDP adiciona um cabealho,
formando um datagrama UDP.
O UDP passa os segmentos ao IP, que ento roteia os mesmos at seu
destino. O UDP aceita segmentos do IP, determina qual aplicao o destino,
e passa os dados para a aplicao apropriada.

O IP tem um projeto simples e elegante. Em condies normais, o IP faz
um uso muito eficiente da memria e recursos de transmisso.
Como IP prov um servio de expedio de datagramas sem conexo e
no confivel, e alm disso um datagrama viaja de um gateway a outro at
alcanar um gateway que possa expedi-lo diretamente aa estao destino;
necessrio um mecanismo que emita informaes de controle e de erros
quando acontecerem problemas na rede. Alguns dos problemas tpicos que
podem acontecer so:
Um gateway no pode expedir ou rotear um datagrama;
Um gateway detecta uma condio no usual, tal como
congestionamento.
O mecanismo de controle que emite mensagens quando acontece algum
erro a funo principal do protocolo ICMP. O ICMP permite aos gateways
enviar mensagens de erros ou de controle a outros gateways ou hosts. ICMP
prov comunicao entre o software de IP numa mquina e o software de IP
numa outra mquina.
Tabela 2-1 Mensagens ICMP

0 Echo Reply
3 Destination Unreachable
18
4 Source Quench
5 Redirect
8 Echo
11 Time Exceeded
12 Parameter Problem
13 Time Stamp
14 Time Stamp Reply
ICMP somente reporta condies de erros fonte original. A fonte deve
relatar os erros aos programas de aplicao individuais e tomar ao para
corrigir o problema. Uma das mensagens que o ICMP pode enviar :
Destination Unreachable, o qual, por sua vez pode ser dos seguintes tipos:
Network Unreachable (rede no alcanvel)
Host Unreachable (mquina no alcanvel)
Port Unreachable (porta no alcanvel)
Destination Host Unknown (mquina destino desconhecido)
Destination Network Unknown (rede destino desconhecida)

Na maioria das redes, a informao dividida em vrias partes,
chamadas de pacotes, por duas razes: compartilhamento de recursos e
deteco/correo de erros.
Obviamente no justo que um nico usurio da domine os recursos da
rede por muito tempo. Com a diviso da informao em pacotes, cada um dos
pacotes pode ser enviado/recebido individualmente, permitindo assim que
outros pacotes possam trafegar pela rede. Isso possibilita um
compartilhamento justo dos recursos.
Na maioria dos casos, os dispositivos so conectados atravs de cabos.
Em alguns casos, usa-se ondas de rdio ou mesmo luz infravermelha. Ambas
as formas de conexo fsica esto sujeitas a interferncias, que podem
corromper os dados que trafegam na rede. Grande parte do trabalho complexo
em redes detectar e solucionar os erros no trfego dos dados.
A maioria das tcnicas de deteco e correo de erros baseada no
uso de checksums. Quando a informao enviada, anexado em seu final
um nmero indicando a soma de todos os bytes da mesma. Na recepo, esse
nmero comparado com a soma dos dados recebidos. Se houver diferena,
a informao est corrompida e deve ser retransmitida.
19
Caso o bloco de dados seja muito grande, o reenvio vai tomar muito
tempo, degradando a performance da rede. Para minimizar este problema,
divide-se a informao em pacotes. Se houver algum erro, basta retransmitir
apenas os pacotes corrompidos.

Em uma rede, o endereo de um dispositivo uma forma de identificar
esse dispositivo como sendo nico. Normalmente, os endereos de rede
possuem um formato padronizado e bem definido.

Os endereos MAC (Media Access Control) so atribudos aos
adaptadores de rede durante sua fabricao, sendo que cada adaptador tem
um endereo que o identifica como nico. Cada fabricante tem um cdigo que
o diferencia dos demais.
Os endereos MAC so escritos no seguinte formato:
00-c0-49-3f-c6-0c
Os primeiros bytes contm o cdigo do fabricante, os demais contm o
modelo e nmero serial do adaptador de rede.

Em redes roteadas, o endereo composto de pelo menos dois
nmeros: o da rede e o do n. Se dois dispositivos possurem endereos com
o mesmo nmero de rede, ento eles esto localizados na mesma rede. Do
contrrio, esto em redes distintas, mas unidas atravs de um roteador. O
nmero que ir diferencia-los dentro desta rede o nmero do n.
Os endereos IP so nmeros que identificam seu computador em uma
rede TCP/IP. Inicialmente voc pode imaginar o IP como um nmero de
Dados
Frame
Trailer
TCP/UDP
Header
IP
Header
Frame
Header
Dados
TCP/UDP
Header
IP
Header
Dados
UDP
Header
Dados

Dados

Datagrama UDP

Datagrama

Quadro
Dados
TCP
Header

Segmento TCP
{
20
telefone. O IP composto por quatro bytes e a conveno de escrita dos
nmeros chamada de "notao decimal pontuada". Por conveno, cada
interface (placa usada p/ rede) do computador ou roteador tem um endereo
IP. Tambm permitido que o mesmo endereo IP seja usado em mais de
uma interface de uma mesma mquina, mas normalmente cada interface tem
seu prprio endereo IP.
As Redes do Protocolo Internet so seqncias contnuas de endereos
IP. Todos os endereos dentro da rede tm um nmero de dgitos dentro dos
endereos em comum. A poro dos endereos que so comuns entre todos
os endereos de uma rede chamada de poro da rede. O conjunto dos
dgitos restantes chamado de poro dos hosts. O nmero de bits que so
compartilhados por todos os endereos dentro da rede chamado de netmask
(mscara da rede) e o papel da netmask determinar quais endereos
pertencem ou no a rede. Por exemplo, considere o seguinte:
Tabela 2-2 Formao de Endereos IP
Endereo do Host
192.168.110.23
Mscara da Rede
255.255.255.0
Poro da Rede 192.168.110.
Poro do Host
.23
Endereo da Rede 192.168.110.0
Endereo Broadcast
192.168.110.255
Qualquer endereo que finalizado em zero em sua netmask revelar o
endereo da rede a que pertence. O endereo de rede ento sempre o
menor endereo numrico dentro da escalas de endereos da rede e sempre
possui a poro host dos endereos codificada como zeros.
O endereo de broadcast um endereo especial que cada computador
em uma rede "escuta" em adio a seu prprio endereo. Este um endereo
onde os datagramas enviados so recebidos por todos os computadores da
rede. Certos tipos de dados, como informaes de roteamento e mensagens
de alerta, so transmitidos para o endereo broadcast, assim todo computador
na rede pode receb-las simultaneamente.
Existem dois padres normalmente usados para especificar o endereo
de broadcast. O mais amplamente aceito para usar o endereo mais alto da
rede como endereo broadcast. No exemplo acima este seria
192.168.110.255. Por algumas razes outros sites tm adotado a conveno
de usar o endereo de rede como o endereo broadcast. Na prtica no
importa muito se usar este endereo, mas voc deve ter certeza que todo
computador na rede esteja configurado para escutar o mesmo endereo
broadcast.

Por razes administrativas aps pouco tempo no desenvolvimento do
protocolo IP alguns grupos arbitrrios de endereos foram formados em redes
21
e estas redes foram agrupadas no que foram chamadas de classes. Estas
classes armazenam um tamanho padro de redes que podem ser usadas. As
faixas alocadas so:
Tabela 2-3 Classes de Endereamento



A
00000 255.0.0.0 0.0.0.0 127.255.255.255
B
10000 255.255.0.0 128.0.0.0 - 191.255.255.255
C
11000 255.255.255.0 192.0.0.0 - 223.255.255.255
D
11100 240.0.0.0 224.0.0.0 - 239.255.255.255
E
11110 240.0.0.0 255.255.255.255
loopback
O endereo de loopback um endereo especial que permite fazer
conexes com voc mesmo. Todos os computadores que usam o protocolo
TCP/IP utilizam este endereo, e existem vrias razes porque precisa fazer
isto, por exemplo voc pode testar vrios programas de rede sem interferir com
ningum em sua rede. Por conveno, os endereos IP 127.0.0.1 a
127.255.255.254 foram escolhidos especificamente para a loopback, assim se
abrir uma conexo para 127.0.0.1, abrir uma conexo para o prprio
computador local.

Se voc estiver construindo uma rede privada que nunca ser conectada
a Internet, ento voc pode escolher qualquer endereo que quiser. No
entanto, para sua segurana e padronizao, existem alguns endereos IP's
que foram reservados especificamente para este propsito. Eles esto
especificados no RFC1597 e so os seguintes:
Tabela 2-4 Endereos IP Reservados


A 255.0.0.0 10.0.0.0 - 10.255.255.255
B 255.255.0.0 172.16.0.0 - 172.31.255.255
C 255.255.255.0 192.168.0.0 - 192.168.255.255
Voc deve decidir primeiro qual ser a largura de sua rede e ento
escolher a classe de rede que ser usada.

A tabela abaixo faz referncia s mscaras de rede mais comuns e a
quantidade de mquinas mximas que ela atinge. Note que a especificao da
mscara tem influncia direta na classe de rede usada:
22


/8 /255.0.0.0 16,777,214
/9 /255.128.0.0 8,388,606
/10 /255.192.0.0 4,194,302
/11 /255.224.0.0 2,197,150
/12 /255.240.0.0 1,048,574
/13 /255.148.0.0 524,286
/14 /255.252.0.0 262,142
/15 /255.254.0.0 131,070

/16 /255.255.0.0 65,534
/17 /255.255.128.0 32,766
/18 /255.255.192.0 16,382
/19 /255.255.224.0 8,190
/20 /255.255.240.0 4,094
/21 /255.255.248.0 2,046
/22 /255.255.252.0 1,022
/23 /255.255.254.0 510

/24 /255.255.255.0 254
/25 /255.255.255.128 126
/26 /255.255.255.192 62
/27 /255.255.255.224 30
/28 /255.255.255.240 14
/29 /255.255.255.248 6
/30 /255.255.255.252 2
/32 /255.255.255.255 1
Qualquer outra mscara fora desta tabela (principalmente para a classe
A), dever ser redimensionada com uma calculadora de IP para chegar a um
nmero aproximado de redes/mquinas aproximados que deseja.

Todo processo que deseje estabelecer comunicao com outro processo
deve se identificar de alguma forma. O TCP/IP implementa essa comunicao
atravs do uso do conceito de portas (ou ports).
23
A porta um nmero de 16 bits que identifica processos (ou servios de
rede). O nmero da porta de origem e o nmero da porta de destino esto
includos no cabealho de cada segmento TCP ou pacote UDP.
Um socket uma combinao de um endereo IP com um nmero de
porta, e identifica um processo como nico na rede.

O TCP/IP pode ser usado em redes locais e para interligao de redes.
As diversas redes locais conversam atravs dos roteadores. Pode haver mais
de um caminho entre dois pontos.
As redes isoladas so conectadas por meio de Roteadores IP.
Roteadores modernos so equipados com vrios slots que podem receber
diferentes tipos de adaptadores de rede: Ethernet, Token-Ring, FDDI, PPP, etc.
O software de IP roda nos hosts e nos roteadores.
Se o destino est no mesmo enlace, manda-se o datagrama
diretamente para ele;
Se o destino no est no mesmo enlace, manda-se o pacote para o
roteador local;
Se o destino no estiver no mesmo enlace do roteador, este ir
repass-lo ao prximo roteador. Este processo continua at que o
destino seja atingido.
IP
TCP UDP
Portas
Ap.
23
Ap.
53
Ap.
161
Ap.
80
24
Pode ser til ilustrar isto com um exemplo. Imagine um simples roteador
de escritrio, ele pode ter um link intermitente com a Internet, um nmero de
segmentos Ethernet alimentando as estaes de trabalho e outro link PPP
intermitente fora de outro escritrio. Quando o roteador recebe um datagrama
de qualquer de suas conexes de rede, o mecanismo que usa determina qual a
prxima interface deve enviar o datagrama. Computadores simples tambm
precisam rotear, todos os computadores na Internet tm dois dispositivos de
rede. Um a interface loopback (explicada acima), o outro usado para falar
com o resto da rede, talvez uma interface Ethernet, talvez uma interface serial
PPP ou SLIP.
Cada computador mantm uma lista de regras especiais de roteamento,
chamada tabela de roteamento. Esta tabela contm colunas que tipicamente
contm no mnimo trs campos, o primeiro o endereo de destino, o segundo
o nome da interface que o datagrama deve ser roteado e o terceiro
opcionalmente o endereo IP da outra mquina que levar o datagrama em
seu prximo passo atravs da rede. No GNU/Linux voc pode ver a tabela de
roteamento usando um dos seguintes comandos:
cat /proc/net/route
route -n
netstat -r
O processo de roteamento muito simples: um datagrama (pacote IP)
recebido, o endereo de destino (para quem ele ) examinado e comparado
com cada item da tabela de roteamento. O item que mais corresponder com o
endereo selecionado e o datagrama direcionado a interface especificada.
Se o campo gateway estiver preenchido, ento o datagrama
direcionado para aquele computador pela interface especificada, caso contrrio
o endereo de destino assumido sendo uma rede suportada pela interface.
Internet
Roteador
N
Rede Local
N
N
N
N
N
N
N
N
Roteador
Roteador
25
Em uma LAN pequena, as tabelas de roteamento podem ser feitas
manualmente. Em redes maiores, os roteadores mantm suas tabelas
atualizadas trocando informaes entre si. Roteadores podem descobrir
eventos como:
Uma nova rede adicionada a internet;
Um caminho foi interrompido, e um destino no pode ser atingido;
Uma nova rota foi estabelecida para um destino.
No existe um padro nico para troca de informao entre roteadores.
A liberdade de escolha do protocolo estimulou a competio e levou a grandes
melhorias nos protocolos.
Os protocolos de roteamento mais usados so o RIP e o OSPF.

Existe um evento olmpico onde um competidor nada uma parte do
percurso, pega uma bicicleta e pedala outra parte, e corre uma terceira etapa.
O IP funciona da mesma maneira. O datagrama foi projetado para poder ser
mudado de uma mdia para outra at chegar ao seu destino.
Antes de um datagrama ser transmitido por um enlace, ele
empacotado em um quadro apropriado para o enlace. Quando um roteador
recebe o quadro:
O roteador desempacota o quadro e extrai o datagrama
O roteador analisa o endereo de destino e descobre a mdia do
prximo trecho
O roteador reempacota o datagrama em um novo quadro, apropriado
para o prximo lao

1. Em que nvel de TCP/IP rodam o telnet e o ftp?


a) Fsico
b) Sesso
c) Aplicao
d) Transporte
e) Enlace
2. O que significa a sigla MAC?
a) Media Assynchronous Connection
b) Master Assynchronous Connection
c) Media Access Connection
d) Media Access Control
e) Master Access Control
26
3. Que endereo de rede no roteado na internet?
a. 128.9.0.0
b. 10.0.0.0
c. 191.168.72.0
d. 171.20.20.0
e. 8.0.0.0
4. Qual das seguintes aplicaes no usa o protocolo UDP?
a. TFTP
b. DNS
c. RPC
d. FTP
e. SNMP
5. So mscaras padro de redes classe A, B e C:
a. 0.0.0.255, 0.0.255.255, 0.255.255.255
b. 0.0.0.0, 0.0.0.255, 0.0.255.255
c. 255.0.0.0, 255.255.0.0, 255.255.255.0
d. 0.0.0.0, 255.0.0.0, 255.255.0.0
e. 255.255.255.0, 255.255.0.0, 255.0.0.0
27

Adaptado do Guia Foca GNU/Linux Intermedirio Captulo 15.

Se voc quiser instalar uma mquina GNU/Linux em uma rede TCP/IP
existente ento voc deve contatar qualquer um dos administradores da sua
rede e perguntar o seguinte:
Endereo IP de sua mquina
Nome da Mquina
Endereo IP da rede
Endereo IP de broadcast
Mscara da Rede IP
Endereo do Roteador
Endereo do Servidor de Nomes (DNS)
Voc deve ento configurar seu dispositivo de rede GNU/Linux com
estes detalhes. Voc no pode simplesmente escolh-los e esperar que sua
configurao funcione.

As interfaces de rede no GNU/Linux esto localizadas no diretrio /dev e
a maioria criada dinamicamente pelos softwares quando so requisitadas.
Este o caso das interfaces ppp e plip que so criadas dinamicamente pelos
softwares.
Abaixo a identificao de algumas interfaces de rede no GNU/Linux (o
? significa um nmero que identifica as interfaces seqencialmente, iniciando
em 0):
eth? - Placa de rede Ethernet e WaveLan.
ppp? - Interface de rede PPP (protocolo ponto a ponto).
slip? - Interface de rede serial
plip? - Interface de porta paralela
arc?e, arc?s - Interfaces Arcnet
sl?, ax? - Interfaces de rede AX25 (respectivamente para kernels
2.0.xx e 2.2.xx.
fddi? - Interfaces de rede FDDI.
dlci??, sdla? - Interfaces Frame Relay, respectivamente para para
dispositivos de encapsulamento DLCI e FRAD.
tr? Interface Token Ring
eql - Balanceador de trfego para mltiplas linhas
28

A interface loopback um tipo especial de interface que permite fazer
conexes com voc mesmo. Todos os computadores que usam o protocolo
TCP/IP utilizam esta interface e existem vrias razes porque precisa fazer
isto, por exemplo, voc pode testar vrios programas de rede sem interferir
com ningum em sua rede. Por conveno, o endereo IP 127.0.0.1 foi
escolhido especificamente para a loopback, assim se abrir uma conexo
telnet para 127.0.0.1, abrir uma conexo para o prprio computador local.
A configurao da interface loopback simples e voc deve ter certeza
que fez isto (mas note que esta tarefa normalmente feita pelos scripts de
inicializao existentes em sua distribuio).
[root@gauss:~] # ifconfig lo 127.0.0.1
Caso a interface loopback no esteja configurada, voc poder ter
problemas quando tentar qualquer tipo de conexo com as interfaces locais,
tendo problemas at mesmo com o comando ping.
ifconfig
Depois de configurada fisicamente, a interface precisa receber um
endereo IP para ser identificada na rede e se comunicar com outros
computadores, alm de outros parmetros como o endereo de broadcast e a
mscara de rede. O comando usado para fazer isso o ifconfig (interface
configure).
Para configurar a interface de rede Ethernet (eth0) com o endereo
192.168.1.1, mscara de rede 255.255.255.0, podemos usar o comando:
[root@gauss:~] # ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up
O comando acima ativa a interface de rede. A palavra up pode ser
omitida, pois a ativao da interface de rede o padro. Para desativar a
mesma interface de rede, basta usar usar o comando:
[root@gauss:~] # ifconfig eth0 down
Digitando ifconfig so mostradas todas as interfaces ativas no
momento, pacotes enviados, recebidos e colises de datagramas. Para
mostrar a configurao somente da interface eth0, use o comando: ifconfig
eth0

As interfaces de rede podem ser configuradas automaticamente durante
o boot. Para isso existem os arquivos /etc/sysconfig/network-
scripts/ifcfg-*. Vamos ver por exemplo o ifcfg-eth0:
DEVICE=eth0
BOOTPROTO=
29
ONBOOT=yes
IPADDR=192.168.72.100
NETMASK=255.255.255.0
BROADCAST=192.168.72.255
NETWORK=192.168.72.0
USERCTL=no
IPXNETNUM_802_2=""
IPXPRIMARY_802_2="no"
IPXACTIVE_802_2="no"
IPXNETNUM_802_3=""
IPXPRIMARY_802_3="no"
IPXACTIVE_802_3="no"
IPXNETNUM_ETHERII=""
IPXPRIMARY_ETHERII="no"
IPXACTIVE_ETHERII="no"
IPXNETNUM_SNAP=""
IPXPRIMARY_SNAP="no"
IPXACTIVE_SNAP="no"
Caso a interface fosse configurada por DHCP e no com um nmero
fixo, teramos o seguinte:
DEVICE=eth0
BOOTPROTO=dhcp
DHCP_HOSTNAME=gauss
ONBOOT=yes
IPADDR=
NETMASK=
BROADCAST=
NETWORK=
USERCTL=no
IPXNETNUM_802_2=""
IPXPRIMARY_802_2="no"
IPXACTIVE_802_2="no"
IPXNETNUM_802_3=""
IPXPRIMARY_802_3="no"
IPXACTIVE_802_3="no"
IPXNETNUM_ETHERII=""
IPXPRIMARY_ETHERII="no"
IPXACTIVE_ETHERII="no"
IPXNETNUM_SNAP=""
IPXPRIMARY_SNAP="no"
IPXACTIVE_SNAP="no"

Este interessante e til recurso do GNU/Linux conhecido como IP
Aliasing e permite fazer nossa interface de rede local responder por diversos
30
endereos IP diferentes, mesmo sendo de classes de rede diferentes. Para
usurios externos, a impresso que a rede tem "muitas" mquinas, quando
na realidade apenas uma responde por todos estes endereos virtuais. Outra
aplicao til durante a transio de uma faixa de endereos na rede de
192.168.0.* para 192.168.1.*, por exemplo, isto poder ser feito sem
gerar transtornos na rede e semparar o servidor.
Este recurso a base para a construo de Mquinas virtuais baseadas
em endereo IP (usado por daemons como Apache, proftpd e outros). A
configurao deste recurso simples, supondo que temos a interface eth0
com o endereo atual 192.168.1.1:
1. Compile seu kernel com o suporte a IP Aliasing (embutido ou como
mdulo).
2. Digite ifconfig eth0:0 192.168.1.10 - Isto cria um apelido para a
placa de rede, chamado eth0:0, que responder as requisies para o
endereo 192.168.1.10.
3. Execute o comando ifconfig (sem parmetros) para verificar se a
nova interface foi ativada. Voc dever ver algo como:
eth0 Encapsulamento do Link: Ethernet Endereo de HW 00:80:AE:B3:AA:AA
inet end.: 192.168.1.1 Bcast:192.168.1.255 Masc:255.255.255.0
UP BROADCASTRUNNING MULTICAST MTU:1500 Mtrica:1
RX packets:979 errors:0 dropped:0 overruns:0 frame:0
TX packets:1228 errors:0 dropped:0 overruns:0 carrier:0
colises:1 txqueuelen:100
RX bytes:71516 (69.8 Kb) TX bytes:1146031 (1.0 Mb)
IRQ:10 Endereo de E/S:0x300
eth0:0 Encapsulamento do Link: Ethernet Endereo de HW 00:80:AE:B3:AA:AA
inet end.: 192.168.1.10 Bcast:192.168.1.255 Masc:255.255.255.0
UP BROADCASTRUNNING MULTICAST MTU:1500 Mtrica:1
IRQ:10 Endereo de E/S:0x300
Note que o endereo de Hardware o mesmo para ambos os
dispositivos (porque a mesma placa de rede est respondendo
endereos diferentes).
4. Se necessrio ajuste as rotas ou gateway com o comando route (veja
seo 3.3).
Podem ser especificados quantos apelidos voc quiser e para qualquer
faixa de endereos que desejar:
ifconfig eth0:1 192.168.1.11
ifconfig eth0:2 10.0.0.1
ifconfig eth0:3 200.132.12.10
31
Para desativar uma interface virtual, utilize o comando:
ifconfig eth0:1 down.
Quando voc desativa uma interface fsica (eth0), todas as
interfaces virtuais tambm so desativadas.

A configurao da rota feita atravs da ferramenta route. Para
adicionar uma rota para a rede 192.168.1.0 acessvel atravs da interface eth0
basta digitar o comando:
[root@gauss:~] # route add -net 192.168.1.0 eth0
Para apagar a rota acima da tabela de roteamento, basta substituir a
palavra add por del. A palavra net quer dizer que 192.168.1.0 um endereo
de rede (lembre-se das explicaes em Endereo IP, Section 4.3) para
especificar uma mquina de destino, basta usar a palavra -host. Endereos de
mquina de destino so muito usadas em conexes de rede apenas entre dois
pontos (como ppp, plip, slip). Por padro, a interface especificada como
ltimo argumento. Caso a interface precise especifica-la em outro lugar, ela
dever ser precedida da opo -dev.
Para adicionar uma rota padro para um endereo que no se encontre
na tabela de roteamento, utiliza-se o gateway padro da rede. Atravs do
gateway padro possvel especificar um computador (normalmente outro
gateway) que os pacotes de rede sero enviados caso o endereo no confira
com os da tabela de roteamento. Para especificar o computador 192.168.1.1
como gateway padro usamos:
[root@gauss:~] # route add default gw 192.168.1.1 eth0
O gateway padro pode ser visualizado atravs do comando route -n e
verificando o campo gateway. A opo gw acima, especifica que o prximo
argumento um endereo IP (de uma rede j acessvel atravs das tabelas de
roteamento).
O computador gateway est conectado a duas ou mais redes ao mesmo
tempo. Quando seus dados precisam ser enviados para computadores fora da
rede, eles so enviados atravs do computador gateway e o gateway os
encaminham ao endereo de destino. Desta forma, a resposta do servidor
tambm enviada atravs do gateway para seu computador ( o caso de uma
tpica conexo coma Internet).
A nossa configurao ficaria assim:
route add -net 192.168.1.0 eth0
route add default gw 192.168.1.1 eth0
Para mais detalhes, veja a pgina de manual do route ou o NET3-4-
HOWTO.
32

Todas as mquinas que integram uma rede TCP/IP devem ter um nome
pelo qual so conhecidas pelas outras mquinas da rede. Esse nome
chamado de hostname. O comando utilizado para se configurar o hostname
o hostname.
[root@gauss:~] # hostname gauss.alfamidia
Para verificar o nome da mquina, usa-se o comando hostname sem
parmetros:
[root@gauss:~] # hostname
gauss.alfamidia
O hostname tambm pode ser configurado automaticamente durante o
boot, atravs do arquivo /etc/sysconfig/network. Vejamos um exemplo:
NETWORKING=yes
HOSTNAME="gauss.alfamidia"
NISDOMAIN=""
GATEWAY=
GATEWAYDEV=
Com esse arquivo, o nome da estao vai ser inicializado
automaticamente durante o boot.

/etc/hosts
Este arquivo contm uma relao entre o endereo IP e o nome de
computadores. A incluso de um computador neste arquivo dispensa a
consulta de um servidor de nomes para obter um endereo IP, sendo muito til
para mquinas que so acessadas freqentemente. A desvantagem de fazer
isto que voc mesmo precisar manter este arquivo atualizado e se o
endereo IP de algum computador for modificado, esta alterao dever ser
feita em cada um dos arquivos hosts das mquinas da rede. Em um sistema
bem gerenciado, os nicos endereos de computadores que aparecero neste
arquivo sero da interface loopback e os nomes de computadores.
# /etc/hosts
127.0.0.1 localhost loopback
192.168.0.1 this.host.name
Voc pode especificar mais que um nome de computador por linha como
demonstrada pela primeira linha, a que identifica a interface loopback.
33
/etc/networks
O arquivo /etc/networks tem uma funo similar ao arquivo
/etc/hosts. Da mesma forma que cada mquina da rede pode ter um nome,
as prprias redes tambm podem ter nomes. Esse arquivo serve para fazer a
relao entre nomes de redes e nmero IP.
Ele contm um banco de dados simples de nomes de redes contra
endereos de redes. Seu formato consiste em dois campos por linha e seus
campos so identificados como:
Nome_da_Rede Endereo_IP_da_Rede
Abaixo um exemplo de como se parece este arquivo:
loopnet 127.0.0.0
localnet 192.168.1.0
amprnet 44.0.0.0
Quando usar comandos como route, se um destino uma rede e esta
rede se encontra no arquivo /etc/networks, ento o comando route
mostrar o nome da rede ao invs de seu endereo.
/etc/host.conf
Esse arquivo serve para configurar o sistema de resoluo de nomes,
onde possvel configurar alguns itens que controlam o comportamento do
resolvedor de nomes. A principal opo desse arquivo a order, que
determina a ordem em que os servios sero analisados. As opes vlidas
so:
bind: consulta um servidor DNS;
hosts: consulta o arquivo /etc/hosts;
nis: consulta o NIS;
O formato deste arquivo descrito em detalhes na pgina de manual
resolv+. Em quase todas as situaes, o exemplo seguinte funcionar:
order hosts,bind
multi on
Este arquivo de configurao diz ao resolvedor de nomes para checar o
arquivo /etc/hosts (parmetro hosts) antes de tentar verificar um servidor
de nomes (parmetro bind) e retornar um endereo IP vlido para o
computador procurado. multi on retornar todos os endereos IP resolvidos
no arquivo /etc/hosts ao invs do primeiro.
34
Os seguintes parmetros podem ser adicionados para evitar ataques de
IP spoofing:
nospoof on
spoofalert on
O parmetro nospoof on ativa a resoluo reversa do nome (para
checar se o endereo pertence realmente quele nome) e o spoofalert on
registra falhas desta operao no syslog.
/etc/resolv.conf
Esse arquivo informa como vai ser a consulta ao servidor DNS. O
/etc/resolv.conf o arquivo de configurao principal do cdigo do
resolvedor de nomes. Seu formato um arquivo texto simples com um
parmetro por linha, e os endereos de servidores DNS externos so
especificados nele. Existem trs palavras chaves normalmente usadas que
so:
domain Especifica o nome do domnio padro, para que no seja
necessrio digitar todo o domnio para se acessar as mquinas da
rede local..
search Especifica uma lista de nomes de domnio alternativos ao
procurar por um computador, separados por espaos. A linha
search pode conter no mximo 6 domnios ou 256 caracteres.
nameserver Especifica o endereo IP de um servidor DNS para
resoluo de nomes. Podem ser especificados at trs servidores.
Como exemplo, o /etc/resolv.conf se parece com isto:
domain maths.wu.edu.au
search maths.wu.edu.au wu.edu.au
nameserver 192.168.10.1
nameserver 192.168.12.1
Este exemplo especifica que o nome de domnio a adicionar ao nome
no qualificado (Ex. hostnames sem o domnio) maths.wu.edu.au e que se
o computador no for encontrado naquele domnio ento a procura segue para
o domnio wu.edu.au diretamente. Duas linhas de nomes de servidores
foram especificadas, cada uma pode ser chamada pelo cdigo resolvedor de
nomes para resolver o nome.

/etc/services
O arquivo /etc/services um banco de dados simples que associa
um nome amigvel a humanos a uma porta de servio amigvel a mquinas.
um arquivo texto de formato muito simples, cada linha representa um item no
banco de dados. Cada item dividido em trs campos separados por qualquer
nmero de espaos em branco (tab ou espaos). Os campos so:
35
nome porta/protocolo apelidos # comentrio
Uma palavra simples que representa o nome do servio sendo descrito.
porta/protocolo
Este campo dividido em dois sub-campos.
porta: Um nmero que especifica o nmero da porta em que o
servio estar disponvel. Muitos dos servios comuns tm
designados um nmero de servio. Estes esto descritos no RFC-
1340.
protocolo: Este sub-campo pode ser ajustado para tcp ou udp.
importante notar que o item 18/tcp muito diferente do item 18/udp e
que no existe razo tcnica porque o mesmo servio precisa existir
em ambos. Normalmente o senso comum prevalece e que somente
se um servio esta disponvel em ambos os protocolos tcp e udp,
voc precisar especificar ambos.
apelidos: Outros nomes podem ser usados para se referir a
entrada deste servio.
comentrio: Qualquer texto aparecendo em uma linha aps um
caractere "#" ignorado e tratado como comentrio.
/etc/protocols
O arquivo /etc/protocols um banco de dados que mapeia nmeros de
identificao de protocolos novamente em nomes de protocolos. Isto usado
por programadores para permiti-los especificar protocolos por nomes em seus
programas e tambm por alguns programas tal como tcpdump permitindo-os
mostrar nomes ao invs de nmeros em sua sada. A sintaxe geral deste
arquivo :
nomeprotocolo nmero apelidos
36

Adaptado do DHCP mini-HOWTO, por Vladimir Vuksan.

DHCP significa Protocolo de Configurao Dinmica de Mquinas.
usado para controlar parmetros de controle de rede vitais para as mquinas
(ao ser executado em clientes) com a ajuda de um servidor. O DHCP mantm
compatibilidade reversa com o BOOTP. Para maiores informaes veja a RFC
2131 (antiga RFC 1531) e outras (veja a seo de Recursos Internet no final
deste documento).
Este mini-HOWTO aborda tanto o servidor DHCP como o cliente DHCP.
Muitos usurios precisam do cliente, que usado nas estaes de trabalho,
para obter as informaes de rede de um servidor remoto. O servidor usado
pelos administradores de sistemas para distribuir informaes de rede para os
clientes. Ento caso o leitor seja somente um usurio normal de rede,
necessitar somente do programa cliente.

Atualmente, existem trs clientes DHCP para Linux: o dhcpcd, pump
and dhclient. Este mini-HOWTO trata principalmente do dhcpcd.

Independente da distribuio que se esteja utilizando ser necessrio
obter um programa cliente DHCP para Linux. O pacote necessrio chamado
dhcpcd.
Dependendo da sua distribuio, voc pode ter que baixar o daemon
cliente DHCP. Se voc no quer compil-lo a partir do cdigo fonte, o pacote
que voc precisa chama-se dhcpcd.

Pode-se obter a ltima verso do DHCPcd a partir de qualquer espelho
do Metalab ou nos seguintes endereos:
ftp://metalab.unc.edu/pub/Linux/system/network/daemons
ftp://ftp.phystech.com/pub/ (Site Principal)
Transfira a ltima verso do programa dhcpcd.tar.gz
37
Descompacte-a atravs do comando:
tar -zxvf dhcpcd-1.3.18pl1.tar.gz
v para o diretrio gerado e compile o dhcpcd, atravs dos seguintes
comandos:
cd dhcpcd-1.3.18pl1
make
Instale-o, (voc deve ser o superusurio para fazer isso), atravs do
comando:
make install
Este procedimento ir criar o diretrio /etc/dhcpc onde o DHCPcd ir
armazenar as informaes DHCP e o arquivo dhcpcd ser copiado em
/usr/sbin.
Para que o sistema utilize o DHCP durante a inicializao, execute os
seguintes comandos:
cd /etc/rc.d
mv rc.inet1 rc.inet1.OLD
Isso mover o antigo script de inicializao da rede para rc.inet1.OLD.
Agora ser necessrio criar o novo script rc.inet1. O cdigo a seguir tudo o
que preciso:
#!/bin/sh
#
# rc.inet1 Este script inicializa o sistema INET bsico
HOSTNAME=`cat /etc/HOSTNAME` # este procedimento provavelmente no
# necessrio, mas ser mantido mesmo assim
# Anexar os dispositivos de rede locais
/sbin/ifconfig lo 127.0.0.1
/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
# Caso se tenha uma conexo Ethernet, as linhas a seguir devem ser
# utilizadas para configurar a interface eth0. Caso se esteja usando a
# interface local ou SLIP, no inclua o restante das linhas no arquivo.
/usr/sbin/dhcpcd
Salve o programa e reinicialize o computador.
Ao finalizar v para a seo 4.2.6.

A configurao do DHCPcd sobre estas distribuies de GNU/Linux
muito fcil. Tudo o que se precisa fazer inicializar o Painel de Controle
digitando:
control-panel
Depois disso, selecione "Configurao de Rede". Na interface Ethernet
desejada (normalmente eth0) defina DHCP como o protocolo de configurao
da interface. Os demais parmetros devem ser deixados em branco.
38
Ao finalizar v para a seo 4.2.6.
Note que o RedHat 6.x por padro instala um cliente DHCP chamado
pump no lugar do dhcpcd mencionado anteriormente. O CD-ROM inclui um
pacote do dhcpcd, ento se no for possvel configurar o pump pode ser
tentado o dhcpcd. Depois de instalar o dhcpcd (ex: rpm -i dhcpcd-
1.3.17pl2-1.i386.rpm), preciso fazer algumas alteraes.

A configurao do DHCPcd sobre estas distribuies de GNU/Linux
muito fcil. Tudo o que se precisa fazer inicializar o Painel de Controle
digitando:
control-panel
Depois disso, selecione "Configurao de Rede". Na interface Ethernet
desejada (normalmente eth0) defina DHCP como o protocolo de configurao
da interface. Os demais parmetros devem ser deixados em branco.
Ao finalizar v para a seo 4.2.6.

H um pacote Debian do DHCPcd em:
http://ftp.debian.org/debian/dists/slink/main/binary -i386/net/
Ou pode-se seguir as instrues de instalao do Slackware.
Para desempacotar um pacote do tipo deb deve-se executar o seguinte
comando:
dpkg -i /where/ever/your/debian/packages/are/dhcpcd*deb
Aparentemente no h necessidade de qualquer configurao para o
DHCPcd conforme o descrito a seguir:
De: Heiko Schlittermann (heiko@os.inf.tu-dresden.de)
O pacote dhcpcd instala o script de inicializao usual para pacotes
Debian em /etc/init.d/nome_pacote, neste caso como /etc/init.d/dhcpcd, e
estabelece os links dos diversos diretrios /etc/rc?.d/.
O contedo dos diretrios /etc/rc?.d/ ser ento executado durante a
inicializao do sistema.
Caso o sistema no seja reinicializado aps a instalao, o daemon
deve se iniciado manualmente:
/etc/init.d/dhcpcd start
Ao finalizar v para a seo 4.2.6.

Aps a reinicializao da mquina, a interface de rede deve ser
configurada. Digite:
ifconfig
Deve-se obter algo como:
lo Link encap:Local Loopback
inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
RX packets:302 errors:0 dropped:0 overruns:0 frame:0
39
TX packets:302 errors:0 dropped:0 overruns:0 carrier:0 coll:0
eth0 Link encap:Ethernet HWaddr 00:20:AF:EE:05:45
inet addr:24.128.53.102 Bcast:24.128.53.255 Mask:255.255.254 .0
^^^^^^^^^^^^^^^^^^^^^^^
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
RX packets:24783 errors:1 dropped:1 overruns:0 frame:1
TX packets:11598 errors:0 dropped:0 overruns:0 carrier:0 coll:96
Interrupt:10 Base address:0x300
Caso se tenha algum nmero normal no campo inet addr, ento a
mquina estar configurada. Caso se obtenha 0.0.0.0 no se desespere,
trata-se de uma configurao temporria antes que o dhcpcd obtenha o
endereo IP. Se mesmo depois de alguns minutos se visualizar somente o
endereo 0.0.0.0, por favor verifique a seo 4.2.8. O DHCPcd um
daemon que seguir rodando enquanto o computador estiver ligado. A cada
trs horas ele ir contatar o servidor DHCP e tentar renovar a reserva do
endereo IP. Todas as mensagens sero registradas no arquivo do syslog (no
Slackware em /var/adm/syslog, RedHat/Conectiva/Debian em
/var/log/syslog).
Um detalhe final: necessrio especificar os servidores de nomes. H
duas formas de faz-lo, pode-se solicitar ao provedor para informar os
endereos do servidor de nomes e coloc-los em /etc/resolv.conf ou o
DHCPcd obter uma lista do servidor DHCP e construir umresolv.conf em
/etc/dhcpc.
Decidi usar o resolv.conf gerados pelo DHCPcd da seguinte forma:
Gere uma cpia de segurana do /etc/resolv.conf da seguinte forma:
mv /etc/resolv.conf /etc/resolv.conf.OLD
Caso o diretrio /etc/dhcpc no exista, ele deve ser criado da seguinte
forma:
mkdir /etc/dhcpc
Crie um link simblico de /etc/dhcpc/resolv.conf para
/etc/resolv.conf, atravs do seguinte comando:
ln -s /etc/dhcpc/resolv.conf /etc/resolv.conf
Caso isso no funcione, pode-se tentar o ajuste sugerido por
nothing@cc.gatech.edu, com uma pequena correo por Henrik Stoerner.
O ltimo passo foi executado somente porque meu dhcpcd no cria o
arquivo /etc/dhcpc/resolv.conf. Efetuei as seguintes mudanas no
arquivo /etc/sysconfig/network-scripts/ifup (que so mudanas
feias, mas funcionam):
elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then
echo -n "Usando DHCP para ${DEVICE}... "
/sbin/dhcpcd -c /etc/sysconfig/network-scripts/ifdhcpc-done ${DEVICE}
echo "echo \$$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" |sh
if [ -f /var/run/dhcp-wait-${DEVICE}.pid ]; then
echo "falhou."
exit 1
40
Foi mudada para:
elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then
echo -n "Usando DHCP para ${DEVICE}... "
/sbin/dhcpcd
echo "echo \$$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" |sh
if [ ! -f /var/run/dhcp-wait-${DEVICE}.pid ]; then
^^^^^^
echo "falhou."
exit 1
Note o ! (ponto de exclamao) em if [ ! -f /var/run/dhcp-
wait-${DEVICE}.pid ];
Agora sente-se e aproveite. :-).

Caso se necessite de conectividade de rede somente ocasionalmente,
pode-se inicializar o dhcpcd a partir da linha de comando (deve-se reinicializar
para se executar este passo) com:
/usr/sbin/dhcpcd
Quando se quiser finalizar as funcionalidades de rede, digite:
/usr/sbin/dhcpcd -k

Caso se tenha seguido todos os passos descritos anteriormente e no
foi possvel acessar a rede, h algumas causas provveis:

Durante o processo de inicializao o GNU/Linux ir tentar localizar a
placa de rede e dever algo parecido com isso:
eth0: 3c509 at 0x300 tag 1, 10baseT port, address 00 20 af ee 11 11, IRQ 10.
3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov
Se uma mensagem como esta no aparecer, a placa Ethernet pode no
ter sido reconhecida pelo Linux. Caso se utilize uma placa genrica (como um
clone NE2000), procure por um disco com utilitrios DOS que possam ser
usados para configurar a placa. Tente diferentes IRQs at que o GNU/Linux
reconhea a placa (IRQs 9, 10, 12 so normalmente boas alternativas).

Tente executar o dhcpcd digitando:
dhcpcd -r
Use o comando ifconfig para verificar se a interface de rede est
configurada (espere alguns segundos pelo processo de configurao, pois
inicialmente o endereo apresentado ser inet.addr=0.0.0.0)
Caso o problema seja resolvido desta forma, deve-se adicionar o
indicador "-r" aos programas de inicializao, ou seja alm de usar o
/sbin/dhcpcd deve-se comandar /sbin/dhcpcd -r
41


Aparentemente se est usando RedHat e as instrues no foram
seguidas adequadamente :-). Voc est esquecendo do ponto de exclamao
em um dos comandos, v at a seo 4.2.6 e verifique como corrigir o
problema.

H algumas notcias de que o programa gated (servidor de caminho


padro) gera erros em mquinas GNU/Linux conforme o descrito acima.
Verifique se o programa gated est sendo executado atravs do seguinte
comando:
ps -auxww | grep gate
Caso ele esteja sendo executado, tente remov-lo com o gerenciador
RPM ou removendo a entrada em/etc/rc.d/


preciso ter certeza de que a porta 10BaseT (RJ45) da placa de rede


est ativada. A melhor forma de verificar isso checar qual o conector que
est configurado na inicializao, ou seja:
eth0: 3c509 at 0x300 tag 1, 10baseT port, address 00 20 af ee 11 11, IRQ 10.
^^^^^^^^^^^^
3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov
Tenho recebido notcias de usurios de portteis que tm tido este tipo
de problema com os utilitrios PCMCIA (especificamente o ifport) que deve
ser configurado para um conector de tipo 10Base2 (thinnet). Deve-se ter
certeza de estar usando o padro 10BaseT para a conexo. Caso no tenha,
deve-se reconfigurar a placa e reinicializar o computador.


Em alguns sistemas, necessrio incluir algum hostname para sua
mquina como parte da requisio. Com o dhcpcd, use dhcpcd h
algumhost.


O modem a cabo normalmente ir guardar o endereo Ethernet da placa
de rede, ento ao se mudar o computador ou se tentar utilizar uma outra placa,
ser necessrio ensinar o modem a reconhecer o novo hardware.
Normalmente basta desligar o modem e relig-lo enquanto o computador
estiver ligado ou ento chamar o suporte tcnico e avis-lo de que a placa de
rede foi alterada.
42
Existem regras de firewall (regras ipfwadm) que desabilita o trfego nas
portas 67 e 68, usadas pelo DHCP para distribuir informaes de configurao.
Verifique as regras do firewall cuidadosamente.


H diversos servidores DHCP disponveis para sistema do tipo Unix,
comerciais ou de livre distribuio. Um dos mais populares servidores DHCP
de livre distribuio o DHCPd de Paul Vixie/ISC. A verso atual 1.0
(sugerida por muitos usurios), mas a 2.0 encontra-se em estgio beta. Ela
pode ser obtida em:
ftp://ftp.isc.org/isc/dhcp/
Descompacte-a, v at o diretrio da distribuio e digite:
./configure
Levar algum tempo para se configurar todos os parmetros. Aps isto
estar finalizado, digite:
make
e
make install

Ao finalizar a instalao digite ifconfig -a. Deve-se obter um resultado
similar a:
eth0 Link encap:10Mbps Ethernet HWaddr 00:C0:4F:D3:C4:62
inet addr:183.217.19.43 Bcast:183.217.19.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2875542 errors:0 dropp ed:0 overruns:0
TX packets:218647 errors:0 dropped:0 overruns:0
Interrupt:11 Base address:0x210
Caso o parmetro MULTICAST no esteja presente, deve-se
reconfigurar o kernel para sua adio. Em muitos sistemas isso no ser
necessrio.
O prximo passo ser adicionar a rota 255.255.255.255. Apresentamos
um extrato retirado ao arquivo README do DHCPd:
"Para que o dhcpd funcione perfeitamente, escolha alguns clientes
DHCP (por exemplo Windows 9x), que sejam capazes de enviar pacotes com
um endereo IP de destino 255.255.255.255. Infelizmente o GNU/Linux teima
em mudar 255.255.255.255 no endereo de divulgao da subrede local (neste
caso 192.5.5.223). Isso cria uma violao do protocolo DHCP e enquanto
muitos clientes DHCP no avisam do problema, outros (como os clientes
DHCP Microsoft) o fazem. Clientes com este tipo de problema no visualizam
a mensagem DHCPOFFER enviada pelo servidor."
Digite:
route add -host 255.255.255.255 dev eth0
caso se obtenha a mensagem
"255.255.255.255: mquina desconhecida"
43
deve-se tentar adicionar a seguinte entrada ao arquivo /etc/hosts:
255.255.255.255 all-ones
tente ento:
route add -host all-ones dev eth0
ou
route add -net 255.255.255.0 dev eth0
eth0 obviamente o nome do dispositivo de rede que est sendo usado.
Caso seja diferente, faa as devidas alteraes.

Agora necessrio configurar o DHCPd. Para se fazer isso deve-se
criar ou editar o arquivo /etc/dhcpd.conf.
Comumente se deseja definir endereos IP de forma aleatria. Isso
pode ser feito da seguinte forma:
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "dominio.org.br";
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
range 192.168.1.150 192.168.1.200;
}
Isso far com que o servidor DHCP fornea ao cliente um endereo IP
na faixa 192.168.1.10-192.168.1.100 ou 192.168.1.150-192.168.1.200. Ele
liberar um endereo por 600 segundos caso o cliente no defina um tempo
especfico de utilizao de endereo. De qualquer forma o tempo mximo
permitido ser de 7.2 segundos. O servidor ir "avisar" ao cliente que ele pode
usar 255.255.255.0 como mscara de subrede, 192.168.1.255 como endereo
de distribuio, 192.168.1.254 como roteador ou caminho padro, 192.168.1.1
e 192.168.1.2 como servidores DNS.
Pode-se ainda definir endereos IP especficos baseados nos endereos
Ethernet dos clientes, como por exemplo:
host conec {
hardware ethernet 08:00:2b:4c:59:23;
fixed-address 192.168.1.222;
}
Este procedimento ir definir o endereo 192.168.1.222 para o cliente
com endereo Ethernet igual a 08:00:2b:4c:59:23.
Pode-se misturar os procedimentos, definindo-se certos clientes com
endereos IP estticos (por exemplo servidores) e outros com endereos
dinmicos (como por exemplo portteis). H diversas opes como: endereos
de servidores Windows, servidores de data e horrio, etc... Caso se necessite
alguma destas opes por favor verifique a pgina de manual on line do
dhcpd.conf.
44

Podemos agora acionar o servidor DHCP. Basta simplesmente digitar
ou incluir nos programas de inicializao do sistema:
/usr/sbin/dhcpd
Caso se deseje verificar se tudo est funcionando perfeitamente, deve-
se acionar inicialmente o modo de depurao e colocar o servidor em primeiro
plano. Isso pode ser feito atravs do comando:
/usr/sbin/dhcpd -d -f
Inicialize algum dos clientes e verifique a console do servidor. Devero
ser apresentadas diversas mensagens de depurao.

1. Qual a utilidade de um servidor DHCP?


2. Quais os clientes DHCP mais utilizados no GNU/Linux?
45

Adaptado do Guia Foca GNU/Linux Intermedirio Captulo 11.
Este captulo traz alguns comandos teis para uso em rede e ambientes
multiusurio.
who
Mostra quem est atualmente conectado no computador. Este comando
lista os nomes de usurios que esto conectados em seu computador, o
terminal e data da conexo.
who [opes]
onde:
opes
-H, --heading
Mostra o cabealho das colunas.
-i, -u, --idle
Mostra o tempo que o usurio est parado em Horas:Minutos.
-m, i am
Mostra o nome do computador e usurio associado ao nome.
equivalente a digitar who i am ou who am i.
-q, --count
Mostra o total de usurios conectados aos terminais.
-T, -w, --mesg
Mostra se o usurio pode receber mensagens via talk (conversao).
+ O usurio recebe mensagens via talk
- O usurio no recebe mensagens via talk.
? No foi possvel determinar o dispositivo de terminal onde o usurio
est conectado.
telnet
Permite acesso a um computador remoto. mostrada uma tela de
acesso correspondente ao computador local onde deve ser feita a autenticao
do usurio para entrar no sistema. Muito til, mas deve ser tomado cuidados
ao disponibilizar este servio para evitar riscos de segurana.
telnet [opes] [ip/dns] [porta]
onde:
ip/dns
Endereo IP do computador de destino ou nome DNS.
porta
Porta onde ser feita a conexo. Por padro, a conexo feita na porta
23.
46
opes
-8
Requisita uma operao binria de 8 bits. Isto fora a operao em
modo binrio para envio e recebimento. Por padro, telnet no usa 8 bits.
-a
Tenta um login automtico, enviando o nome do usurio lido da varivel
de ambiente USER.
-d
Ativa o modo de debug.
-r
Ativa a emulao de rlogin.
-l [usurio]
Faz a conexo usando [usurio] como nome de usurio.
Exemplo: telnet 192.168.1.1, telnet 192.168.1.1 23.
finger
Mostra detalhes sobre os usurios de um sistema. Algumas verses do
finger possuem bugs e podem significar um risco para a segurana do sistema.
recomendado desativar este servio na mquina local.
finger [usurio] [usurio@host]
Onde:
usurio
Nome do usurio que deseja obter detalhes do sistema. Se no for
digitado o nome de usurio, o sistema mostra detalhes de todos os usurios
conectados no momento.
usurio@host
Nome do usurio e endereo do computador que deseja obter detalhes.
-l
Mostra os detalhes de todos os usurios conectados no momento. Entre
os detalhes, esto includos o nome do interpretador de comandos (shell) do
usurio, diretrio home, nome do usurio, endereo, etc.
-p
No exibe o contedo dos arquivos .plan e .project
Se for usado sem parmetros, mostra os dados de todos os usurios
conectados atualmente ao seu sistema.
Exemplo: finger, finger root.
ftp
Permite a transferncia de arquivos do computador remoto/local e vice
versa. O file transfer protocol o sistema de transmisso de arquivos mais
usado na Internet. requerida a autenticao do usurio para que seja
permitida a conexo. Muitos servidores ftp disponibilizam acesso annimo aos
usurios, com acesso restrito.
Uma vez conectado a um servidor ftp, voc pode usar a maioria dos
comandos do GNU/Linux para oper-lo.
ftp [ip/dns]
47
Abaixo alguns dos comandos mais usados no FTP:
ls
Lista arquivos do diretrio atual.
cd [diretrio]
Entra em um diretrio.
get [arquivo]
Copia um arquivo do servidor ftp para o computador local. O arquivo
gravado, por padro, no diretrio onde o program ftp foi executado.
hash [on/off]
Por padro esta opo est desligada. Quando ligada, faz com que o
caracter "#" seja impresso na tela indicando o progresso do download.
mget [arquivos]
Semelhante ao get, mas pode copiar diversos arquivos e permite o uso
de curingas.
send [arquivo]
Envia um arquivo para o diretrio atual do servidor FTP (voc precisa de
uma conta com acesso a gravao para fazer isto).
prompt [on/off]
Ativa ou desativa a pergunta para a cpia de arquivo. Se estiver como
off assume sim para qualquer pergunta.
Exemplo: ftp ftp.br.debian.org
whoami
Mostra o nome que usou para se conectar ao sistema. til quando
voc usa vrias contas e no sabe com qual nome entrou no sistema :-)
dnsdomainname
Mostra o nome do domnio de seu sistema.
hostname
Mostra ou muda o nome de seu computador na rede.
talk
Inicia conversa com outro usurio em uma rede local ou Internet. Talk
um programa de conversao em tempo real onde uma pessoa v o que a
outra escreve.
talk [usurio] [tty]
ou
talk [usurio@host]
Onde:
usurio
Nome de login do usurio que deseja iniciar a conversao. Este nome
pode ser obtido com o comando who (veja who, Seo 9.1).
tty
48
O nome de terminal onde o usurio est conectado, para iniciar uma
conexo local.
usurio@host
Se o usurio que deseja conversar estiver conectado em um computador
remoto, voc deve usar o nome do usurio@hosname do computador.
Aps o talk ser iniciado, ele verificar se o usurio pode receber
mensagens, em caso positivo, ele enviar uma mensagem ao usurio dizendo
como responder ao seu pedido de conversa. Veja em5.1 O comando who.
Voc deve autorizar o recebimento de talks de outros usurios para que
eles possam se comunicar com voc , para detalhes veja o comando O
comando mesg a seguir.
mesg
Permite ou no o recebimentos de requisies de talk de outros
usurios.
mesg [y/n]
Onde: y permite que voc receba "talks" de outros usurios.
Digite mesg para saber se voc pode ou no receber "talks" de outros
usurios. Caso a resposta seja "n" voc poder enviar um talk para algum
mas o seu sistema se recusar em receber talks de outras pessoas.
interessante colocar o comando mesg y em seu arquivo de
inicializao .bash_profile para permitir o recebimento de "talks" toda vez que
entrar no sistema.
ping
Verifica se um computador est disponvel na rede. Este comando
muito utilizado por alguns programas de conexo e administradores para
verificar se uma determinada mquina est conectada na rede e tambm para
verificar o tempo de resposta de cada mquina da rede. O ping envia pacotes
ICMS ECHO_REQUEST para um computador, este quando recebe o pacote
envia uma resposta ao endereo de origem avisando que est disponvel na
rede.
ping [opes][IP/DNS]
onde:
IP/dns
Endereo IP ou nome DNS do endereo.
opes
-c [num]
Envia num pacotes ao computador de destino.
-f
Flood ping. Envia novos pacotes antes de receber a resposta do
pacote anterior. Para cada requisio enviada, um "." mostrado na
tela e para cada resposta recebida, um backspace mostrado.
Somente o usurio root pode utilizar esta opo e pode te auxiliar muito
na deteco de erros de transmisso de pacotes em interfaces das
mquinas em sua rede.
49
-i [seg]
Aguarda [seg] segundos antes de enviar cada pacote.
-q
No mostra as requisies enquanto so enviadas, somente
mostra as linhas de sumrio no inicio e trmino do programa.
-s [tamanho]
Especifica o tamanho do pacote que ser enviado.
-v, --verbose
Sada detalhada, tanto os pacotes enviados como recebidos so
listados.
Exemplo: ping 192.168.1.1, ping www.br.debian.org.
rlogin
Executa um login em uma mquina local ou remota.
rlogin [opes] [IP/DNS]
onde:
IP/DNS
Endereo IP ou DNS do computador que ser acessado.
opes
-l [nome]
Entra com o user id [nome] no sistema.
rlogin usado para executar comandos interativamente no computador
de destino (como se voc estivesse sentado diante dele, muito semelhante ao
telnet). Para executar comandos no interativamente veja rsh, Seo 11.11.
rsh
Executa um comando em um computador local ou remoto.
rsh [opes] [IP/DNS] [comando]
Onde:
IP/DNS
Endereo IP ou nome DNS do computador.
comando
Comando que ser executado no computador local/remoto.
opes
-l [nome]
Entra no sistema usando o login [nome].
rsh usado somente para executar comandos. Para usar um shell
interativo veja e O comando rlogin.
w
Mostra quemest conectado no sistema e o que cada umest fazendo.
w [opes][usurio]
onde:
50
usurio
Nome do usurio que deseja ver os detalhes. Se o usurio no for
digitado, o comando w mostra detalhes de todos os usurios conectados no
sistema.
opes
-h
No mostra o cabealho
-u
Ignora os nomes de usurios enquanto verifica os processo atuais e
tempos de CPU.
-f
Mostra ou oculta o campo FROM na listagem.
traceroute
Mostra o caminho percorrido por um pacote para chegar ao seu destino.
Este comando mostra na tela o caminho percorrido entre os Gateways da rede
e o tempo gasto de retransmisso. Este comando til para encontrar
computadores defeituosos na rede caso o pacote no esteja chegando ao seu
destino.
traceroute [opes] [host/IP de destino]
Onde:
host/IP destino
o endereo para onde o pacote ser enviado (por exemplo,
www.debian.org). Caso o tamanho do pacote no seja especificado, enviado
um pacote de 38 bytes.
opes
-l
Mostra o tempo de vida do pacote (ttl)
-m [num]
Ajusta a quantidade mximas de ttl dos pacotes. O padro 30.
-n
Mostra os endereos numericamente ao invs de usar resoluo DNS.
-p [porta]
Ajusta a porta que ser usada para o teste. A porta padro 33434.
-r
Pula as tabelas de roteamento e envia o pacote diretamente ao
computador conectado a rede.
-s [end]
Usa o endereo IP/DNS [end] como endereo de origem para
computadores com mltiplos endereos IPs ou nomes.
-v
Mostra mais detalhes sobre o resultado do traceroute.
-w [num]
Configura o tempo mximo que aguardar por uma resposta. O padro
3 segundos.
51
Exemplos: traceroute www.debian.org, traceroute www.linux.org.
netstat
Mostra conexes de rede, tabela de roteamento, estatsticas de
interfaces, conexes masquerade, e mensagens.
netstat [opes]
Onde:
opes
-i [interface]
Mostra estatsticas da interface [interface].
-M, --masquerade
Se especificado, tambm lista conexes masquerade.
-n, --numeric
Usa endereos numricos ao invs de tentar resolver nomes de hosts,
usurios e portas.
-c, --continuos
Mostra a listagema cada segundo at que a CTRL+C seja pressionado.
Se no for especificada nenhuma opo, os detalhes das conexes
atuais sero mostrados.
wall
Envia uma mensagem a todos os usurios do sistema. Este comando
faz a leitura de um arquivo ou entrada padro e escreve o resultado em todos
os terminais onde existem usurios conectados. Somente o usurio root pode
utilizar este comando.
wall [arquivo]
Exemplos: wall /tmp/mensagem.txt, echo Teste de mensagem enviada a
todos os usurios conectados ao sistema wall.
52

Adaptado do Guia Foca GNU/Linux Intermedirio Captulo 14.
O servio de ssh permite fazer o acesso remoto ao console de sua
mquina, em outras palavras, voc poder acessar sua mquina como se
estivesse conectado localmente ao seu console (substituindo o rlogin e rsh). A
principal diferena com relao ao servio telnet padro, rlogin e rsh que toda
a comunicao entre cliente/servidor feita de forma encriptada usando
chaves pblicas/privadas RSA para criptografia garantindo uma transferncia
segura de dados.
A velocidade do console remoto conectado via Internet excelente
(melhor que a obtida pelo telnet e servios r*) dando a impresso de uma
conexo em tempo real (mesmo em links discados de 9.600 KB/s), a
compactao dos dados tambm pode ser ativada para elevar ainda mais a
velocidade entre cliente-servidor ssh. Alm do servio de acesso remoto, o scp
possibilita a transferncia/recepo segura de arquivos (substituindo o rcp).
Em conexes sem criptografia (rsh, rlogin) os dados trafegam de forma
desprotegida e caso exista algum sniffer instalado em sua rota com a mquina
destino, todo o que fizer poder ser capturado (incluindo senhas).

assumido que esteja usando a verso 2.0 do ssh. As explicaes
contidas aqui podem funcionar para verses posteriores, mas recomendvel
que leia a documentao sobre modificaes no programa (changelog) em
busca de mudanas que alterem o sentido das explicaes fornecidas aqui.

O openSSH (explicado neste captulo) baseado na ltima verso livre
do implementao de Tatu Ylonen com todos os algoritmos patenteados (para
bibliotecas externas) removidos, todos as falhas de segurana corrigidas,
novas caractersticas e muitas outras melhorias. O openSSH foi criado por
Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt e Dug
Song.

A Homepage principal do OpenSSH
http://www.unixuser.org/~haruyama/security/openssh/index.html . Falhas, correes e
sugestes podem ser enviadas para a lista de discusso openssh-unix-
dev@mindrot.org (aberta a postagens de usurios no inscritos).

Abaixo as principais caractersticas do servio ssh (Openssh).
Conexo de dados criptografada entre cliente/servidor.
Cpia de arquivos usando conexo criptografada.
53
Suporte a ftp criptografado (sftp).
Suporte a compactao de dados entre cliente/servidor.
Controle de acesso das interfaces servidas pelo servidor ssh.
Suporte a controle de acesso tcp wrappers.
Autenticao usando um par de chaves pblica/privada RSA ou DSA.
Algoritmo de criptografia livre de patentes.
Suporte a PAM.
Suporte a caracteres ANSI (cores e cdigos de escape especiais no
console).

Pacote: ssh
Utilitrios:
ssh - Cliente ssh (console remoto).
slogin - Link simblico para o programa ssh.
sshd - Servidor de shell seguro ssh.
scp - Programa para transferncia de arquivos entre cliente/servidor
ssh-keygen - Gera chaves de autenticao para o ssh
sftp - Cliente ftp comsuporte a comunicao segura.
sftp-server - Servidor ftp com suporte a comunicao segura.
ssh-add - Adiciona chaves de autenticao DSA ou RSA ao
programa de autenticao.
ssh-agent - Agente de autenticao, sua funo armazenar a chave
privada para autenticao via chave pblica (DSA ou RSA).
ssh-keyscan - Scaneia por chaves pblicas de autenticao de hosts
especificados. O principal objetivo ajudar na construo do arquivo
local know_hosts.
ssh-copy-id - Usado para instalao do arquivo identity.pub em uma
mquina remota.
Arquivos de configurao:
/etc/ssh/sshd_config - Arquivo de configurao do servidor ssh.
/etc/ssh/ssh_config - Arquivo de configurao do cliente ssh.
~/.ssh/config - Arquivo de configurao pessoal do cliente ssh.


recomendado no mnimo 6MB de memria RAM para a execuo do
servio ssh mais o kernel do Linux. Este limite deve ser redimensionado para
servidores de acesso dedicado, uma quantidade de 64MB deve ser confortvel
para centenas de usurios conectados simultaneamente (o que raramente
acontece).
54
O ssh que acompanha a distribuio Debian vem com o suporte a tcp
wrappers compilado por padro.

Detalhes sobre a execuo do servidor sshd (como inicio, autenticao e
trmino) so enviadas ao syslog do sistema. A prioridade e nvel so definidos
no arquivo de configurao /etc/ssh/sshd_config (veja 6.8.5 Exemplo de
sshd_config com explicaes das diretivas).

apt-get install ssh
Por padro o servidor sshd instalado como daemon, tambm
possvel executa-lo via inetd mas isto no aconselhvel porque o servidor
gera uma chave aleatria de seo toda vez que iniciado, isto podendo levar
vrios segundos (quando usada a verso 1 do protocolo ssh, veja 6.8.4
Diferenas nas verses do protocolo).

O arquivo que controla o funcionamento do daemon do ssh controlado
pelo arquivo /etc/init.d/ssh.
A execuo do ssh atravs de inetd automtica quando feita uma
requisio para a porta 22.

Opes de linha de comando do servidor sshd:
-b bits - Especifica o nmero de bits da chave do servidor (768 por
padro).
-d - Modo de depurao - O servidor envia detalhes sobre seu
funcionamento aos logs do sistema e no executado em
segundo plano. Ele tambm responder conexes pelo mesmo
processo. Podem ser usadas no mximo 3 opes -d para
aumentar os detalhes de depurao.
-f arquivo_configurao Indica um arquivo de configurao
alternativo (por padro usado /etc/ssh/sshd_config). O ssh
pode ser configurado atravs de opes de linha de comando,
mas requer um arquivo de configurao para ser executado.
Opes de linha de comando substituem as especificadas no
arquivo de configurao.
-g segundos - Especifica o tempo mximo para a digitao de
senha de acesso. Aps o tempo especificado o servidor encerra
a conexo. O valor padro 600 segundos e 0 desativa este
recurso.
-h arquivo_chave - Diz qual arquivo contm a chave privada local.
O padro /etc/ssh/ssh_host_key e somente o usurio root deve
ter permisses de leitura neste arquivo. Ser necessrio
especificar esta opo caso o sshd no esteja sendo executado
como usurio root.
55
possvel ter mltiplos arquivos de chaves para os protocolos 1 e 2 do
ssh.
-i - Indica que o servidor sshd ser executado pelo inetd. Isto no
aconselhvel porque o servidor gerar a chave aleatria de
seo toda vez que for iniciado e isto pode levar alguns
segundos. Esta opo pode se tornar vivel com o uso do
protocolo 2 ou criando chaves pequenas como 512 bytes (no ssh
1), mas a segurana criptogrfica tambm ser diminuda. Veja
as diferenas entre os dois protocolos em 6.8.4 Diferenas nas
verses do protocolo.
-k segundos - Especifica a freqncia da gerao de novas
chaves do daemon sshd. O valor padro 3600 segundos e 0
desativa este recurso.
NO desative este recurso!!! Esta opo traz a segurana
que uma nova chave gerada de servidor ser gerada constantemente (esta
chave enviada junto com a chave pblica quando o cliente conecta e fica
residente na memria voltil), assim mesmo que um cracker consiga obt-la
interceptando as conexes, ser praticamente impossvel tentar qualquer coisa.
Valores menores tendema aumentar ainda mais a segurana.
-p porta - Especifica a porta que o daemon sshd atender as
requisies. Por padro usada a porta 22.
-q - Nenhuma mensagem ser enviada ao syslog do sistema.
-u tam - Especifica o tamanho do campo de nome do computador
que ser armazenado no arquivo utmp. A opo u0 faz somente
endereos IP serem gravados.
-D - Quando usada no faz o sshd iniciar em segundo plano.
-V verso_cliente - Assume que o cliente possui a verso ssh
especificada (1 ou 2) e no faz os testes de identificao de
protocolo.
-4 - Fora o uso do protocolo IP tradicional (IPv4).
-6 - Fora o uso da nova gerao do protocolo IP (IPv6).
A maioria das opes so realmente teis para modificar o
comportamento do servidor ssh sem mexer em seu arquivo de configurao
(para fins de testes) ou para executar um servidor ssh pessoal, que dever ter
arquivos de configurao especficos.

Esta a ferramenta usada para sees de console remotos. O arquivo
de configurao de usurios ~/.ssh/config, e o arquivo global
/etc/ssh/ssh_config. Para conectar a um servidor ssh remoto:
ssh ip/nome_do_servidor_ssh
O uso da opo -C recomendado para ativar o modo de compactao
dos dados (til em conexes lentas). A opo -l usurio pode ser usada para
alterar a identificao de usurio (quando no usada, o login local usado
como nome de usurio remoto). Uma porta alternativa pode ser especificada
usando a opo -p porta (a 22 usada por padro).
56
Na primeira conexo, a chave pblica do servidor remoto ser gravada
em ~/.ssh/know_hosts ou ~/.ssh/know_hosts2 (dependendo da verso do
servidor ssh remoto, veja 6.8.4 Diferenas nas verses do protocolo), e
verificada a cada conexo como checagem de segurana para se certificar que
o servidor no foi alvo de qualquer ataque ou modificao no autorizada das
chaves. Por padro, o cliente utilizar o protocolo ssh verso 1, a opo -2
permite usar o protocolo verso 2.
Variveis de ambiente personalizadas para o ssh podero ser definidas
no arquivo ~/.ssh/environment. Comandos que sero executados somente na
conexo ssh em ~/.ssh/rc e /etc/ssh/sshrc caso contrrio ser executado o
xauth por padro.
Para utilizar autenticao Rhosts/Rhosts+RSA (arquivos
~/.rhosts/~/.shosts) o programa ssh dever ter permisses SUID root e
conectar usando portas baixas (menores que 1024).
Exemplos:
# Conecta-se ao servidor remoto usando o login do usurio atual
ssh ftp.sshserver.org
# Conecta-se ao servidor remoto usando o login john (via ssh verso 2)
ssh -2 ftp.sshserver.org -l john
# Conecta-se ao servidor remoto usando compactao e o login john
ssh ftp.sshserver.org -C -l john
# Conecta-se ao servidor remoto usando compactao, o login john,
# ativa o redirecionamento do agente de autenticao ( -A) e redirecionamento
# de conexes X11 (-X). Veja a prxima seo para entender como o
# suporte a redirecionamento de conexes do X f unciona.
ssh ftp.sshserver.org -C -A -X -l john

O redirecionamento de conexes do X Window poder ser habilitado em
~/.ssh/config ou /etc/ssh/ssh_config ou usando as opes -A -X na linha de
comando do ssh (as opes -a e -x desativam as opes acima
respectivamente). Uma varivel $DISPLAY criada automaticamente para
fazer o redirecionamento ao servidor X local.
Ao executar um aplicativo remoto, a conexo redirecionada a um
DISPLAY proxy criado pelo ssh (a partir de :10, por padro) que faz a conexo
com o display real do X (:0), ou seja, ele pular os mtodos de autenticao
xhost e cookies. Por medidas de segurana recomendvel habilitar o
redirecionamento individualmente somente se voc confia no administrador do
sistema remoto.
# Exemplo de configurao do ssh_config
# Permite Redirecionamento de conexes para o prprio computador (nomes de
# mquinas podem ser especificadas).
Host 127.0.0.1
ForwardAgent yes
ForwardX11 yes
57
# Opes especficas do cliente para conexes realizadas a 192.168.1.4
usando
# somente o protocolo 2
Host 192.168.1.4
# As 2 linhas abaixo ativam o redirecionamento de conexes do X
ForwardAgent yes
ForwardX11 yes
PasswordAuthentication yes
Port 22
Protocol 2
Cipher blowfish
# Opes especficas do cliente para conexes realizadas a 192.168.1.5
usando
# somente o protocolo 1
Host 192.168.1.5
# As 2 linhas abaixo desativam o redirecionamento de conexes do X
ForwardAgent no
ForwardX11 no
PasswordAuthentication yes
Port 22
Protocol 1
Cipher blowfish
# CheckHostIP yes
# RhostsAuthentication no
# RhostsRSAAuthentication yes
# RSAAuthentication yes
# FallBackToRsh no
# UseRsh no
# BatchMode no
# StrictHostKeyChecking yes
# IdentityFile ~/.ssh/identity
# IdentityFile ~/.ssh/id_dsa
# IdentityFile ~/.ssh/id_rsa1
# IdentityFile ~/.ssh/id_rsa2
# EscapeChar ~

Permite a cpia de arquivos entre o cliente/servidor ssh. A sintaxe
usada por este comando a seguinte:
scp [origem] [destino]
Os parmetros de origem e destino so semelhantes ao do comando cp
mas possui um formato especial quando especificado uma mquina remota:
Um caminho padro - Quando for especificado um arquivo local.
Por exemplo: /usr/src/arquivo.tar.gz.
58
usuario@host_remoto:/diretrio/arquivo - Quando desejar copiar o
arquivo de/para um servidor remoto usando sua conta de usurio.
Por exemplo: gleydson@ftp.debian.org:~/arqs.
A opo -C recomendvel para aumentar a taxa de transferncia de
dados usando compactao. Caso a porta remota do servidor sshd seja
diferente de 22, a opo -P porta dever ser especificada ( "P" maiscula
mesmo, pois a -p usada para preservar permisses/data/horas dos arquivos
transferidos).
Exemplos:
# Para copiar um arquivo local chamado /pub/teste/script.sh para
# meu diretrio pessoal em ftp.sshserver.org
scp -C /pub/teste/script.sh gleydson@ftp.sshserver.org:~/
# Para fazer a operao inversa a acima (copiando do servidor remoto pa ra o
local)
# s inverter os parmetros origem/destino:
scp -C gleydson@ftp.sshserver.org:~/script.sh /pub/teste
# Para copiar o arquivo local chamado /pub/teste/script.sh para
# o diretrio /scripts dentro do meu diretrio pessoal em ftp.sshserver.org
# com o nome teste.sh
scp -C /pub/teste/script.sh gleydson@ftp.sshserver.org:~/scripts/teste.sh
# O exemplo abaixo faz a transferncia de arquivos entre 2 computadores
remotos:
# O arquivo teste.sh lido do servi dor server1.ssh.org e copiado para
# server2.ssh.org (ambos usando o login gleydson)
scp -C gleydson@server1.ssh.org:~/teste.sh gleydson@server2.ssh.org:~/

Permite realizar transferncia de arquivos seguras atravs do protocolo
ssh. A conexo e transferncias so realizadas atravs da porta 22 (ainda no
possvel modificar a porta padro). A sintaxe para uso deste comando a
seguinte:
sftp usuario@host_remoto
Compactao pode ser especificada atravs da opo -C. Um arquivo
contendo os comandos usados na seo sftp poder se especificado atravs
da opo -b arquivo para automatizar tarefas.
Para desativar o servidor sftp, remova a linha SubSystem sftp
/usr/lib/sftp-server (que inicializa o sub-sistema ftp) do arquivo
/etc/ssh/sshd_config e reinicie o servidor sshd.
O suporte ao programa sftp somente est disponvel ao protocolo
ssh verso 2 e superiores.
Algumas opes comuns do cliente ftp padro (como mget) ainda
no esto disponveis ao sftp. Veja a pgina de manual para detalhe sobre as
opes disponveis.
59


Este o daemon de controle da conexo encriptada via protocolo ssh,
transferncia de arquivos e shell interativo. As opes de linha de comando
esto disponveis em 6.6.5 Opes de linha de comando. Seu arquivo de
configurao principal /etc/ssh/sshd_config, um exemplo e descrio das
opes deste arquivo encontrada em 6.8.5 Exemplo de sshd_config com
explicaes das diretivas.
recomendvel que o arquivo /etc/ssh/sshd_config seja
lido somente pelo dono/grupo, por conter detalhes de acesso de usurios,
grupos e intervalo entre a gerao de chave de seo.
Se estiver ocorrendo falhas no acesso ao servidor ssh, verifique
as permisses nos arquivos /etc/hosts.allow e /etc/hosts.deny (o
nome do servio sshd). Mesmo operando como daemon, o servidor utiliza
estes arquivos para fazer um controle de acesso adicional.

definido pelas opes ListenAddress, AllowUsers, DenyUsers,
AllowGroups, DenyGroups e PermitRootLogin do arquivo de
configurao sshd_config (veja 6.8.5 Exemplo de sshd_config com
explicaes das diretivas) e via tcpd (arquivos hosts.allow e hosts.deny).

Este mtodo de autenticao permite a criao de um par de chaves:
uma pblica (que ser distribudo nas mquinas que voc conecta) e outra
privada (que ficar em seu diretrio pessoal). A encriptao e decriptao so
feitas usando chaves separadas e no possvel conseguir a chave de
decriptao usando a chave de encriptao. possvel inclusive gerar uma
chave sem senha para entrar diretamente em um sistema remoto (este
esquema um pouco mais seguro que os arquivos ~/.rhosts e
~/.shosts), mas dever ser levado em considerao a possibilidade de
acesso fsico ao seu diretrio pessoal, qualquer um que tenha posse de sua
chave privada poder ter acesso ao sistema remoto.
Siga os seguintes passos para se autenticar usando RSA 1 - usada na
verso 1 do ssh:
1. Gere um par de chaves pblica/privada usando o comando:
ssh-keygen
Um par de chaves RSA verso 1 ser gerado com o tamanho de 1024
bits por padro que garante uma boa segurana/velocidade e salvas no
diretrio ~/.ssh com o nome identity e identity.pub. Para alterar o tamanho da
chave use a opo -b tamanho. Depois de gerar a chave, o ssh-keygen pedir
uma frase-senha ( recomendvel ter um tamanho maior que 10 caracteres e
podem ser includos espaos). Se no quiser digitar uma senha para acesso
60
ao sistema remoto, tecle <Enter> quando perguntado. Mude as permisses do
diretrio ~/.ssh para 750.
A opo -f especifica o diretrio e nome das chaves. A chave pblica
ter a extenso .pub adicionada ao nome especificado.
Nunca distribua sua chave privada, nem armazene-a em
servidores de acesso pblicos ou outros mtodos que permitem outros terem
acesso a ela. Se precisar de uma cpia de segurana, faa em disquetes e
guarde-a em um lugar seguro.
2. Instale a chave pblica no servidor remoto que deseja se conectar, por
exemplo, www.sshserver.org:
ssh-copy-id -i ~/.ssh/identity gleydson@www.sshserver.org
A funo do utilitrio acima entrar no sistema remoto e adicionar a
chave pblica local ~/.ssh/identity.pub no arquivo
/home/gleydson/.ssh/authorized_keys do sistema remoto www.sshserver.org.
O mesmo processo poder ser feito manualmente usando os mtodos
tradicionais (ssh/scp). Caso o arquivo remoto
/home/gleydson/.ssh/authorized_keys no existe, ele ser criado. Seu formato
idntico ao ~/.ssh/know_hosts e contm uma chave pblica por linha.
3. Agora utilize o ssh para entrar no sistema remoto usando o mtodo de
chave pblica/privada. Entre com a senha que usou para gerar o par de
chaves pblico/privado (ele entrar diretamente caso no tenha digitado
uma senha).
Para autenticar em uma verso 2 do ssh (usando chave RSA 2 ou DSA):
1. Gere um par de chaves pblica/privada usando o comando:
ssh-keygen -t rsa -f ~/.ssh/id_rsa
ou
ssh-keygen -t dsa -f ~/.ssh/id_rsa
Um par de chaves RSA 2/DSA ser gerado. Para alterar o tamanho da
chave use a opo -b tamanho. Depois de gerar a chave, o ssh-keygen pedir
uma frase-senha ( recomendvel ter um tamanho maior que 10 caracteres e
podem ser includos espaos). Se no quiser digitar uma senha para acesso
ao sistema remoto, tecle <Enter> quando perguntado. Mude as permisses do
diretrio ~/.ssh para 750.
Nunca distribua sua chave privada, nem armazene-a em
servidores de acesso pblicos ou outros mtodos que permitem outros terem
acesso a ela. Se precisar de uma cpia de segurana, faa em disquetes e
guarde-a em um lugar seguro.
2. Instale a chave pblica no servidor remoto que deseja se conectar
copiando o arquivo com:
61
scp ~/.ssh/id_rsa.pub usuario@servidorremoto:~/.ssh/authorized_keys2
Caso o arquivo remoto /home/gleydson/.ssh/authorized_keys2 no
existe, ele ser criado. Seu formato idntico ao ~/.ssh/know_hosts2 e contm
uma chave pblica por linha.
3. Agora utilize o ssh para entrar no sistema remoto usando o mtodo de
chave pblica/privada. Entre com a senha que usou para gerar o par de
chaves pblico/privado (ele entrar diretamente caso no tenha digitado
uma senha).
O tipo de chave criada por padro a rsa1 (compatvel com as verses
1 e 2 do ssh). A opo -t [chave] poder ser usada (ao gerar a chave) para
selecionar o mtodo de criptografia:
rsa1 - Cria uma chave rsa compatvel com a verso 1 e 2 do ssh (esta
a padro).
rsa - Cria uma chave rsa compatvel somente com a verso 2 do ssh.
dsa - Cria uma chave dsa compatvel somente com a verso 2 do ssh.
Para trocar a senha utilize o comando:
ssh-keygen -p -t rsa -f ~/.ssh/identity
Ser pedida sua senha antiga e a nova (no mesmo estilo do passwd).
Opcionalmente voc pode utilizar a sintaxe:
ssh-keygen -p -f ~/.ssh/identity -P senha_antiga -N senha_nova
Que troca a senha em um nico comando (til para ser usado em scripts
junto com a opo -q para evitar a exibio de mensagens de sada do ssh-
keygen).

Retirada da pgina de manual do sshd:
Protocolo SSH verso 1
Cada servidor possui uma chave RSA especfica (1024 bits por padro)
usada para identifica-lo. Quando o sshd inicia, ele gera uma chave RSA do
servidor (768 bits por padro, valor definido por ServerKeyBits) que recriada
a cada hora (modificado por KeyRegenerationInterval no sshd_config) e
permanece sempre residente na RAM.
Quando um cliente se conecta o sshd responde com sua chave pblica
da mquina e chaves do servidor. O cliente ssh compara a chave RSA com
seu banco de dados (em ~/.ssh/know_hosts) para verificar se no foi
modificada.
Estando tudo OK, o cliente gera um nmero aleatrio de 256 bits, o
encripta usando ambas as chaves de mquina e chave do servidor e envia este
nmero ao servidor. Ambos os lados ento usam este nmero aleatrio como
chave de seo que usado para encriptar todas as comunicaes seguintes
na seo.
O resto da seo usa um mtodo de embaralhamento de dados
convencional, atualmente Blowfish ou 3DES (usado como padro). O cliente
62
seleciona o algoritmo de criptografia que ser usado de um destes oferecidos
pelo servidor. Aps isto o servidor e cliente entram em um dilogo de
autenticao. O cliente tenta se autenticar usando um dos seguintes mtodos
de autenticao:
~/.rhosts ou ~/.shosts (normalmente desativada).
~/.rhosts ou ~/.shosts combinado com autenticao RSA
(normalmente desativada).
Autenticao RSA por resposta de desafio.
Autenticao baseada em senha.
A autenticao usando Rhosts normalmente desativada por ser muito
insegura mas pode ser ativada no arquivo de configurao do servidor se
realmente necessrio. A segurana do sistema no melhorada a no ser que
os servios rshd, rlogind, rexecd e rexd estejam desativados (assim, o rlogin e
rsh sero completamente desativados na mquina).
Protocolo SSH verso 2
A verso 2 funciona de forma parecida com a 1: Cada mquina possui
uma chave DSA especfica usada para se identificar. A diferena que
quando o sshd inicia, ele no gera uma chave de servidor. A segurana de
redirecionamento oferecida atravs da concordncia do uso de uma chave
Diffie-Hellman. Esta concordncia de chave resulta em uma seo com chave
compartilhada. O resto da seo encriptada usando um algoritmo simtrico,
como Blowfish, 3DES, CAST128, Arcfour, 128 bit AES, ou 256 bit AES.
O cliente que seleciona o algoritmo de criptografia que ser usado entre
os oferecidos pelo servidor. Adicionalmente a integridade da seo oferecida
atravs de um cdigo de autenticao de mensagem criptogrfica (hmac-sha1
ou hmac-md5). A verso 2 do protocolo oferece um mtodo de autenticao
baseado em chave pblica (PubkeyAuthentication) e o mtodo de autenticao
convencional usando senhas.
sshd_config
Abaixo segue um exemplo deste arquivo que poder ser adaptado ao
seu sistema. O objetivo ser ao mesmo tempo til para sua configurao e
didtico:
# Modelo personalizado para o guia Foca GNU/Linux baseado na configurao
# original do FreeBSD.
# Autor: Gleydson Mazioli da Silva
# Data: 20/09/2001.
# Porta padro usada pelo servidor sshd. Mltiplas portas podem ser
# especificadas separadas por espaos.
Port 22
# Especifica o endereo IP das interfaces de rede que o servidor sshd
# servir requisies. Mltiplos endereos podem ser especificados
# separados por espaos. A opo Port deve vir antes desta opo
ListenAddress 0.0.0.0
# Protocolos aceitos pelo servidor, primeiro ser verificado se o cliente
63
# compatvel com a verso 2 e depois a verso 1. Caso seja especificado
# somente a verso 2 e o cliente seja verso 1, a conexo ser descartada.
# Quando no especificada, o protocolo ssh 1 usado como padro.
Protocol 2,1
# As 4 opes abaixo controlam o acesso de usurios/grupos no sistema.
# Por padro o acesso a todos garantido (exceto o acesso root se
# PermitRootLogin for "no"). AllowUsers e AllowGroups definem uma lista
# de usurios/grupos que podero ter acesso ao sistema. Os coringas
# "*" e "?" podem ser especificados. Note que somente NOMES so vlidos,
# UID e GID no podem ser especificados.
#
# As diretivas Allow so processadas primeiro e depois Deny. O mtodo que
# estas diretivas so processadas idntico a diretiva
# "Order mutual-failure" do controle de acesso do Apache:
# O usurio dever TER acesso via AllowUsers e AllowGroups e NO ser bloque ado
# por DenyUsers e DenyGroups para ter acesso ao sistema. Se uma das diretivas
# no for especificada, "*" assumido como padro.
# Estas permisses so checadas aps a autenticao do usurio, porque
# dados a ele pelo /etc/passwd e PAM so obtidos a ps o processo de
# autenticao.
#AllowUsers gleydson teste?
#DenyUsers root adm
#AllowGroups users
#DenyGroups root adm bin
# Permite (yes) ou no (no) o login do usurio root
PermitRootLogin no
# Chaves privadas do servidor (as chaves p blicas possuem um ".pub" adicionado
# no final do arquivo.
HostKey /etc/ssh/ssh_host_key
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
# Tamanho da chave. 768 bits o padro
ServerKeyBits 768
# Tempo mximo para login no sistema antes da conexo ser fechada
LoginGraceTime 600
# Tempo para gerao de nova chave do servidor (segundos). O padro
# 3600 segundos (1 hora).
KeyRegenerationInterval 3600
# Ignora os arquivos ~/.rhosts e ~/.shosts
IgnoreRhosts yes
# Ignora (yes) ou no (no) os arquivos ~/.ssh/known_hosts quando for usado
64
# para a opo RhostsRSAAuthentication. Se voc no confia neste mecanismo
# ajuste esta opo para yes.
IgnoreUserKnownHosts no
# Checa por permisses de dono dos arquivos e diretrio de usu rio antes de
# fazer o login. muito recomendvel para evitar riscos de segurana
# com arquivos lidos por todos os usurios.
StrictModes yes
# Permite (yes) ou no (no) o redirecionamento de conexes X11. A segurana
# do sistema no aumentada com a desativao desta opo, outros mtodos
# de redirecionamento podem ser usados
X11Forwarding yes
# Especifica o nmero do primeiro display que ser usado para o redirecionamento
# X11 do ssh. Por padro usado o display 10 como inicial para evitar conf lito
# com display X locais
X11DisplayOffset 10
# Mostra (yes) ou no (no) a mensagem em /etc/motd no login. O padro "no".
PrintMotd no
# Mostra (yes) ou no (no) a mensagem de ltimo login do usurio. O padro
"no".
PrintLastLog no
# Permite (yes) ou no (no) o envio de pacotes keepalive (para verificar se o
# cliente responde. Isto bom para fechar conexes que no respondem mas
# tambm podem fechar conexes caso no existam rotas para o cliente
# naquele momento ( um problema temporrio). Colocando esta opo como
# "no" por outro lado pode deixar usurios que no tiveram a oportunidade
# de efetuar o logout do servidor dados como "permanentemente conectados"
# no sistema. Esta opo deve ser ativada/desativada aqui e no programa
# cliente para funcionar.
KeepAlive yes
# Facilidade e nvel das mensagens do sshd que aparecero no syslogd
SyslogFacility AUTH
LogLevel INFO
# Especifica se somente a autenticao via arquivos ~/.rhosts e /etc/hosts.equiv

# suficiente para entrar no sistema. No muito bom usar "yes" aqui.


RhostsAuthentication no
# Mesmo que o acima com o acrscimo que o arquivo /etc/ssh/ssh_known_hosts tambm
# verificado. Tambm evite usar "yes" aqui.
RhostsRSAAuthentication no
65
# Especifica se a autenticao via RSA permitida (s usado na verso 1 do
# protocolo ssh). Por padro "yes".
RSAAuthentication yes
# Permite autenticao usando senhas (serve para ambas as verses 1 e 2 do ssh).
# O padro "yes".
PasswordAuthentication yes
# Se a PasswordAuthentication for usada, permite (yes) ou no (no) login
# sem senha. O padro "no".
PermitEmptyPasswords no
# Ativa senhas s/key ou autenticao PAM NB interativa. Nenhum destes
# compilado por padro junto com o sshd. Leia a pgina de manual do
# sshd antes de ativar esta opo em um sistema que usa PAM.
ChallengeResponseAuthentication no
# Verifica se o usurio possui emails ao entrar no sistema. O padro "no".
# Este mdulo tambm pode estar sendo habilitado usando PAM (neste caso
# cheque a configurao em /etc/pam.d/ssh).
CheckMail no
# Especifica se o programa login usado para controlar a sees de shell
# interativo. O padro "no".
UseLogin no
# Especifica o nmero mximo de conexes de autenticao simultneas feitas
# pelo daemon sshd. O valor padro 10. Valores aleatrios podem ser
# especificados usando os campos "inicio:taxa:mximo". Por exemplo,
# 5:40:15 rejeita at 40% das tentativas de autenticao que excedam o
# limite de 5 at atingir o limite mximo de 15 conexe s, quando
# nenhuma nova autenticao permitida.
MaxStartups 10
#MaxStartups 10:30:60
# Mostra uma mensagem antes do nome de usurio/senha
Banner /etc/issue.net
# Especifica se o servidor sshd far um DNS reverso para verificar se o
# endereo confere com a origem (isto til para bloquear conexes
# falsificadas - spoofing). O padro "no".
ReverseMappingCheck yes
# Ativa o subsistema de ftp seguro. Para desabilitar comente a linha
# abaixo
Subsystem sftp /usr/lib/sftp-server
66

Adaptado do Guia Foca GNU/Linux Avanado Captulo 4.
Servio de rede o que est disponvel para ser acessado pelo usurio.
No TCP/IP, cada servio associado a um nmero chamado porta que onde
o servidor espera pelas conexes dos computadores clientes. Uma porta de
rede pode se referenciada tanto pelo nmero como pelo nome do servio.
Abaixo, alguns exemplos de portas padres usadas em servios TCP/IP:
21 - FTP (transferncia de arquivos)
23 - telnet (terminal virtual remoto)
25 - SMTP (envio de e-mails)
53 - DNS (resolvedor de nomes)
79 - finger (detalhes sobre usurios do sistema)
80 - HTTP (protocolo www - transferncia de pginas Internet)
110 - pop-3 (recebimento de mensagens)
119 nntp (usado por programas de noticias)
O arquivo padro responsvel pelo mapeamento do nome dos servios
e das portas mais utilizadas o /etc/services (para detalhes sobre o seu
formato, veja a seo 3.6.1).
daemons
Servios de rede iniciados como daemons ficam residentes o tempo todo
na memria, esperando que algum se conecte (tambm chamado de modo
standalone). Um exemplo de daemon o servidor proxy squid e o servidor
web apache operando no modo daemon.
Alguns programas servidores oferecem a opo de serem executados
como daemons ou atravs do inetd. recomendvel escolher daemon se o
servio for solicitado freqentemente (como o caso dos servidores web ou
proxy).
Para verificar se um programa est rodando como daemon, basta digitar
ps ax e procurar o nome do programa, em caso positivo ele um daemon.
Normalmente os programas que so iniciados como daemons tm seus
prprios recursos de segurana/autenticao para decidir quem tem ou no
permisso de se conectar.
inetd
Servios iniciados pelo inetd so carregados para a memria somente
quando so solicitados. O controle de quais servios podem ser carregados e
seus parmetros, feitos atravs do arquivo /etc/inetd.conf.
Um daemon chamado inetd l as configuraes deste arquivo e
permanece residente na memria, esperando pela conexo dos clientes.
67
Quando uma conexo solicitada, o daemon inetd verifica as permisses de
acesso nos arquivos /etc/hosts.allow e /etc/hosts.deny e carrega o
programa servidor correspondente no arquivo /etc/inetd.conf. Um arquivo
tambm importante neste processo o /etc/services que faz o mapeamento
das portas e nomes dos servios.
Alguns programas servidores oferecem a opo de serem executados
como daemons ou atravs do inetd. recomendvel escolher inetd se o
servio no for solicitado freqentemente (como o caso de servidores ftp,
telnet, talk, etc).

O arquivo /etc/inetd.conf um arquivo de configurao para o daemon
servidor inetd. Sua funo dizer ao inetd o que fazer quando receber uma
requisio de conexo para um servio em particular. Para cada servio que
deseja aceitar conexes, voc precisa dizer ao inetd qual daemon servidor
executar e como executa-lo.
Seu formato tambm muito simples. um arquivo texto com cada
linha descrevendo um servio que deseja oferecer. Qualquer texto em uma
linha seguindo uma "#" ignorada e considerada um comentrio. Cada linha
contm sete campos separados por qualquer nmero de espaos em branco
(tab ou espaos). O formato geral o seguinte:
servio tipo_soquete proto opes usurio caminho_serv. opes_serv.
servio
o servio relevante a este arquivo de configurao pego do arquivo
/etc/services.
tipo_soquete
Este campo descreve o tipo do soquete que este item utilizar, valores
permitidos so: stream, dgram, raw, rdm, ou seqpacket. Isto um pouco
tcnico de natureza, mas como uma regra geral, todos os servios baseados
em tcp usam stream e todos os protocolos baseados em udp usam dgram.
Somente alguns tipos de daemons especiais de servidores usam os outros
valores.
protocolo
O protocolo considerado vlido para esta item. Isto deve bater com
um item apropriado no arquivo /etc/services e tipicamente ser tcp ou udp.
Servidores baseados no Sun RPC (Remote Procedure Call), utilizam rpc/tcp ou
rpc/udp.
opes
Existem somente duas configuraes para este campo. A configurao
deste campo diz ao inetd se o programa servidor de rede libera o soquete aps
ele ser iniciado e ento se inetd pode iniciar outra cpia na prxima requisio
de conexo, ou se o inetd deve aguardar e assumir que qualquer servidor j
em execuo pegar a nova requisio de conexo.
Este um pequeno truque de trabalho, mas como uma regra, todos os
servidores tcp devem ter este parmetro ajustado para nowait e a maior parte
dos servidores udp deve t-lo ajustado para wait. Foi alertado que existem
algumas excesses a isto, assim deixo isto como exemplo se no estiver
seguro.
68
usurio
Este campo descreve que conta de usurio usurio no arquivo
/etc/passwd ser escolhida como dono do daemon de rede quando este for
iniciado. Isto muito til se voc deseja diminuir os riscos de segurana. Voc
pode ajustar o usurio de qualquer item para o usurio nobody, assim se a
segurana do servidor de redes quebrada, a possibilidade de problemas
minimizada. Normalmente este campo ajustado para root, porque muitos
servidores requerem privilgios de usurio root para funcionarem corretamente.
caminho_servidor
Este campo o caminho para o programa servidor atual que ser
executado.
argumentos_servidor
Este campo inclui o resto da linha e opcional. Voc pode colocar neste
campo qualquer argumento da linha de comando que deseje passar para o
daemon servidor quando for iniciado.
Uma dica que pode aumentar significativamente a segurana de seu
sistema comentar (colocar uma #no inicio da linha) os servios que no sero
utilizados.
Abaixo um modelo de arquivo /etc/inetd.conf usado em sistemas Debian:
# /etc/inetd.conf: veja inetd(8) para mais detalhes.
#
# Banco de Dados de configuraes do servi dor Internet
#
#
# Linhas iniciando com "#:LABEL:" ou "#<off>#" no devem
# ser alteradas a no ser que saiba o que est fazendo!
#
#
# Os pacotes devem modificar este arquivo usando update -inetd(8)
#
# <nome_servio> <tipo_soquete> <proto> <opes> <usu rio> <caminho_servidor>
<args>
#
#:INTERNO: Servios internos
#echo stream tcp nowait root internal
#echo dgram udp wait root internal
#chargen stream tcp nowait root internal
#chargen dgram udp wait root internal
#discard stream tcp nowait root internal
#discard dgram udp wait root internal
#daytime stream tcp nowait root internal
#daytime dgram udp wait root internal
time stream tcp nowait root internal
#time dgram udp wait root internal
#:PADRES: Estes so servios padres.
#:BSD: Shell, login, exec e talk so protocolos BSD.
69
#shell stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rshd
#login stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rlogind
#exec stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rexecd
talk dgram udp wait nobody.tty /usr/sbin/tcpd
/usr/sbin/in.talkd
ntalk dgram udp wait nobody.tty /usr/sbin/tcpd
/usr/sbin/in.ntalkd
#:MAIL: Mail, news e servios uucp.
Smtp stream tcp nowait mail /usr/sbin/exim exim -bs
#:INFO: Servios informativos
#:BOOT: O servio Tftp oferecido primariamente para a inicializao. Alguns
sites
# o executam somente em mquinas atuando como "servidores de inicializao".
#:RPC: Servios baseados em RPC
#:HAM-RADIO: servios de rdio amador
#:OTHER: Outros servios
70

Adaptado do DNS HowTo, por Nicolai Langfeldt
Traduo Original da Conectiva Informtica - Maro de 1999

Para iniciantes, DNS o Servidor de Nomes do Domnio. O DNS
converte os nomes das mquinas para nmeros IP, que so os endereos das
mquinas, mapeando de nome para endereo e de endereo para nome. Este
COMO FAZER documenta como definir tais mapeamentos usando o sistema
Linux. Um mapeamento simplesmente uma associao entre duas
informaes, neste caso um nome de mquina, como ftp.linux.org, e o nmero
IP da mquina, como por exemplo 199.249.150.4.
DNS , para os no iniciados (voc), uma das reas mais opacas da
administrao de rede. Este COMO FAZER tentar clarificar alguns conceitos
e aspectos sobre este tema. Ele descreve como configurar um nome do
servidor DNS simples. Comeando com um nico servidor de cache e
seguindo at a configurao de um servidor primrio DNS para um domnio.
Para configuraes mais complexas pode-se checar a seo de Perguntas e
Respostas deste documento. Caso no esteja l descrito, pode ser necessrio
ler a documentao que acompanha os fontes. Esclareceremos em que
consiste esta documentao no ltimo captulo.
Antes de comear, h que se configurar uma mquina para que ela
possa se conectar interna e externamente e assim permitir as conexes rede.
Deve ser possvel executar o comando telnet 127.0.0.1 e ter acesso mquina
local (teste agora!). necessrio ainda ter-se arquivos de exemplo
/etc/nsswitch.conf (ou /etc/host.conf), /etc/resolv.conf e /etc/hosts como ponto
de partida, uma vez que no explicaremos aqui a sua funo. Caso ainda no
se tenha tudo isso configurado e operando, o documento NET-3 ou o COMO
FAZER PPP explicam como configur-los.
Ao nos referirmos a 'mquina local', estamos referenciando mquina
na qual se est tentando configurar o DNS e no a qualquer outra mquina que
se possa ter disposio e que esteja conectada rede.
Presumimos que esta mquina no est atrs de algum firewall que
bloqueie as pesquisas de nomes. Caso seja necessria alguma configurao
especial, por favor veja a seo de Perguntas e Respostas.
O servio de nomes no Unix feito por um programa servidor
denominado named. Ele integrante do pacote de bind que coordenado por
Paul Vixie para o Consrcio de Programas Para a Internet. O Servidor de
nomes est includo na maioria das distribuies GNU/Linux e usualmente
instalado como /usr/sbin/named. Caso se tenha um named disposio pode-
se us-lo; caso contrrio possvel obter-se um binrio a partir de um site ftp
Linux, ou conseguir os fontes mais recentes em
ftp.isc.org:/isc/bind/src/cur/bind-8/. Este COMO FAZER trata sobre o bind em
sua verso 8. A verso antiga do COMO FAZER, que tratava sobre o bind 4,
71
ainda est ainda disponvel em http://www.math.uio.no/~janl/DNS/ no caso de
se necessitar utilizar o bind 4. Caso a pgina do manual sobre o servidor de
nomes fale sobre named.conf ento tem-se disponvel o bind 8, caso mencione
o named.boot ento trata-se do bind 4. Caso se tenha o 4 e se esteja com
problemas de segurana, deve-se atualizar para a verso 8 mais recente.
O DNS um banco de dados distribudo por toda a rede. necessrio
ter-se extremo cuidado com tudo o que for colocado nele. Ao se colocar dados
sem significado, outros utilizaro estes dados e certamente tudo ficar um
pouco "estranho". O DNS deve estar sempre atualizado e arrumado, evitando-
se assim problemas desagradveis. Deve-se aprender a us-lo, administr-lo,
depur-lo para tornar-se um bom administrador da rede, evitando sobrecargas
geradas por problemas de administrao.
Neste documento so afirmadas categoricamente algumas coisas que
no so completamente verdadeiras (sendo ento pelo menos meias
verdades). Tudo em nome da simplificao. As coisas (provavelmente!)
funcionaro quando o leitor acreditar no que est dito!
Devem ser feitas cpias de segurana de todos os arquivos.
aconselhvel, ainda, que elas sejam alteradas de tempos em tempos. Assim
se depois de todas as tentativas, nada funcionar, pode-se retornar situao
anterior.

Um servidor de nomes somente para cache deve ser capaz de encontrar
as respostas s pesquisas de nomes e endereos e deve ainda guardar as
respostas, para a prxima em que sejam necessrias. Isto diminuir o tempo
de espera significativamente, especialmente quando se tem uma conexo
lenta.
Inicialmente necessrio ter-se um arquivo /etc/named.conf, o qual ser
lido quando o servidor de nomes for inicializado. Por enquanto ele pode conter
simplesmente:
// Configurao do arquivo para um servidor de nomes somente para cache
options{
directory "/var/named";
// No comentar isto pode ajudar caso se tenha um firewall presente
// e as coisas no estejam funcionando:
// endereo de pesquisa: porta 53;
};
zone "." {
type hint;
file "rott.hints ";
};
zone "0.0.127.in-addr.arpa" {
type master;
72
file "pz/127.0.0";
};
A linha `directory' indica onde os arquivos devem estar localizados.
Todos os arquivos subseqentes sero relativos a este. Assim pz um
diretrio sob /var/named, ou seja estar localizado em /var/named/pz.
/var/named o diretrio definido pelo Padro de Sistemas de Arquivos Linux.
O arquivo denominado /var/named/root.hints deve conter:
. 6D IN NS G.ROOT -SERVERS.NET.
. 6D IN NS J.ROOT -SERVERS.NET.
. 6D IN NS K.ROOT -SERVERS.NET.
. 6D IN NS L.ROOT -SERVERS.NET.
. 6D IN NS M.ROOT -SERVERS.NET.
. 6D IN NS A.ROOT -SERVERS.NET.
. 6D IN NS H.ROOT -SERVERS.NET.
. 6D IN NS B.ROOT-SERVERS.NET.
. 6D IN NS C.ROOT -SERVERS.NET.
. 6D IN NS D.ROOT -SERVERS.NET.
. 6D IN NS E.ROOT -SERVERS.NET.
. 6D IN NS I.ROOT -SERVERS.NET.
. 6D IN NS F.ROOT -SERVERS.NET.
G.ROOT-SERVERS.NET. 5w6d16h IN A 192.112.36.4
J.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.10
K.ROOT-SERVERS.NET. 5w6d16h IN A 193.0.14.129
L.ROOT-SERVERS.NET. 5w6d16h IN A 198.32.64.12
M.ROOT-SERVERS.NET. 5w6d16h IN A 202.12.27.33
A.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.4
H.ROOT-SERVERS.NET. 5w6d16h IN A 128.63.2.53
B.ROOT-SERVERS.NET. 5w6d16h IN A 128.9.0.107
C.ROOT-SERVERS.NET. 5w6d16h IN A 192.33.4.12
D.ROOT-SERVERS.NET. 5w6d16h IN A 128.8.10.90
E.ROOT-SERVERS.NET. 5w6d16h IN A 192.203.230.10
I.ROOT-SERVERS.NET. 5w6d16h IN A 192.36.148.17
F.ROOT-SERVERS.NET. 5w6d16h IN A 192.5.5.241
Este arquivo descreve o nome dos servidores raiz no mundo. Este
contedo pode mudar com o passar do tempo e tem que ser atualizado
permanentemente. Veja a seo de manuteno para saber como mant-lo
atualizado.
A prxima seo em named.conf zone. Explicaremos o seu uso num
captulo adiante. Por hora somente faamos deste um arquivo chamado
127.0.0 no subdiretrio pz:
@ IN SOA ns.linux.bogus.hostmaster.linux.bogus. (
1 ; Serial
8H ; Atualizao
2H ; Tentativas
1W ; Expirao
1D) ; TTL mnimo
NS ns.linux.bogus.
73
1 PTR localhost
Em seguida, ser necessrio um arquivo /etc/resolv.conf com o seguinte
contedo:
search subdomnio.seu\_domnio.edu.br seu\_domnio.edu.br
nome\_do\_servidor 127.0.0.1
A linha `search' especifica que o domnio deve ser pesquisado para
qualquer nome de mquina com a qual se queira conectar. A linha
`nameserver' especifica o endereo do servidor de nomes. Neste caso, a
prpria mquina, uma vez que nela que o programa named executado (j
que 127.0.0.1 foi informado, no importando se a mquina tem tambm outro
endereo). Caso se queira indicar vrios servidores de nomes, deve-se criar
uma linha `nameserver' para cada um deles. (Nota: O programa named nunca
l este arquivo, e sim o resolvedor que utilizar o named).
Vamos ilustrar um pouco mais a funo deste arquivo: caso um cliente
tente procurar por itamaraca, ento itamaraca.subdomnio.seu_domnio.edu.br
ser a primeira tentativa, ento ser tentado itamaraca.seu_domnio.edu.br e
finalmente somente itamaraca. Se um cliente tentar procurar metalab.unc.edu,
metalab.unc.edu.subdomnio.seu_domnio.edu.br ser tentado inicialmente
(sim, no faz muito sentido, mas o jeito que ele funciona), ento
metalab.unc.edu.seu_domnio.edu.br, e finalmente metalab.unc.edu. Caso se
queira colocar muitos domnios na linha search, isso pode provocar uma
sobrecarga nos tempos de pesquisa.
O exemplo presume que a mquina pertence ao domnio
subdomnio.seu_domnio.edu.br, sendo provavelmente o servidor de nomes
nome_da_mquina.subdomnio.seu_domnio.edu.br. A linha de busca no
deve conter o TLD (Domnio Raiz `edu.br' neste caso). Caso seja necessrio
conectar-se com freqncia a mquinas de outros domnios, deve-se
acrescentar aqueles domnios linha de busca, como por exemplo:
search subdomnio.seu_domnio.edu.br seu_domnio.edu.br outro_domnio.com.br
e assim por diante. Obviamente deve-se utilizar nomes reais de
domnios. Os aqui colocados servem somente como exemplos. Por favor
atente para a falta de pontos no final dos nomes dos domnios.
A seguir, dependendo da verso da biblioteca libc, tanto pode ser
necessrio atualizar o /etc/nsswitch.conf ou o /etc/host.conf. Caso se tenha o
nsswitch.conf este ser utilizado, caso contrrio, atualizaremos o host.conf.

Este um arquivo longo que especifica onde podem ser obtidos


diferentes tipos de dados, de que arquivos e de qual base de dados.
Usualmente contm comentrios teis no topo, que podem ser lidos agora.
Depois disso, deve ser encontrada uma linha que comece com `hosts:', onde
se pode ler:
hosts: files dns
Caso no haja nenhuma linha iniciada com `hosts:' ento deve ser
includa a linha acima. Ela indica que os programas devem primeiramente
pesquisar o arquivo /etc/hosts, e aps ento verificar o DNS de acordo com o
configurado no arquivo resolv.conf.

74
Provavelmente contm vrias linhas, uma delas deve comear com
order e deve ter o seguinte:
order hosts, bind
Se no houver nenhuma linha `order', ento uma deve ser criada. Esta
linha indica que a resoluo de nomes de mquinas deve pesquisar
inicialmente no arquivo /etc/hosts, e depois pesquisar junto ao servidor de
nomes (definido em resolv.conf como 127.0.0.1). Estes dois ltimos arquivos
esto documentados na pgina de manual do utilitrio resolver(8) (para
acess-la execute man 8 resolv) na maioria das distribuies Linux. Aquela
pgina do manual clara e em nossa opinio, todos devem l-la
(especialmente os administradores de DNS). Faa-o agora caso voc seja um
daqueles que diz para si mesmo: "Eu vou ler mais tarde", mas nunca o faz.

Aps tudo isto hora de iniciar o servidor de nomes. Caso se esteja
usando uma conexo discada, primeiro deve-se estabelecer a conexo. Deve-
se digitar ento `ndc start', sem opes. Caso isto no funcione, pode-se tentar
`/usr/sbin/ndc start'. Caso isto no funcione, deve-se verificar a seo
Perguntas e Respostas. Agora possvel testar a configurao. Ao se
visualizar o arquivo de mensagens syslog (usualmente chamado
/var/adm/messages; podem ser examinados tambm o diretrio /var/log e o
arquivo syslog) ao se iniciar o servidor de nomes (executando-se tail -
f/var/log/messages ) deve-se obter algo como:
(linhas terminadas em\ continuam na linha seguinte)
Feb 15 01:26:17 roke named[6091]: starting. named 8.1.1 Sat Feb 14 \
00:18:20 MET 1998 ^Ijanl@roke.uio.no:/var/tmp/bind -8.1.1/src/bin/named
Feb 15 01:26:17 roke named[6091]: cache zone "" (IN) loaded (serial 0)
Feb 15 01:26:17 roke named[6091]: master zone "0.0.127.in -addr.arpa" \
(IN) loaded (serial 1)
Feb 15 01:26:17 roke named[6091]: listening [127.0.0.1].53 (lo)
Feb 15 01:26:17 roke named[6091]: listening [129.240.230.92].53 (ippp0)
Feb 15 01:26:17 roke named[6091]: Forwarding source address is [0.0.0.0].1040
Feb 15 01:26:17 roke named[6092]: Ready to answer queries.
Se houver alguma mensagem de erro, ela deve ser examinada. O
named indicar o arquivo onde o problema se encontra (ou named.conf. ou
root.hints, esperamos). O servidor de nomes deve ser finalizado e os arquivos
devemser corrigidos.
Agora hora de iniciar o nslookup para examinar o trabalho realizado
at aqui.
$ nslookup
default Server: localhost
Address: 127.0.0.1
>
Caso este seja o resultado obtido, parabns, est funcionando.
Esperamos que sim. Caso se obtenha um resultado diferente, deve-se retornar
e verificar todos os passos. Cada vez que se altere o arquivo named.conf ser
necessrio reiniciar o servidor de nomes usando o comando ndc restart.
75
Agora podemos fazer pesquisas no sistema. Podemos procurar por
alguma mquina prxima; A pat.uio.no est prxima a mim na Universidade de
Oslo:
> pat.uio.no
Server: localhost
Address: 127.0.0.1
Name: pat.uio.no
Address: 129.240.130.16
O nslookup agora perguntou ao seu servidor de nomes para procurar a
mquina pat.uio.no. Este contactou uma dos servidores de nomes listados no
arquivo root.hints, e perguntou a um deles qual o caminho para a mquina
desejada. Pode levar bem pouco tempo antes de se obter o resultado,
enquanto named procura todos os domnios definidos em /etc/resolv.conf.
Ao se pesquisar novamente, tem-se:
> pat.uio.no
Server: localhost
Address: 127.0.0.1
Non-authoritative answer:
Name: pat.uio.no
Address: 129.240.2.50
Note a linha `Non-authoritative answer:' que obtivemos desta vez. Isto
indica que o servidor de nomes no saiu pela rede para perguntar sobre a
mquina desejada. Ao invs disto procurou em seu cache e encontrou-o l.
Mas a informao do cache pode estar desatualizada (antiga). Ento se est
informado deste perigo (muito pequeno) quando o sistema informa `resposta
No autorizada:'. Quando o nslookup disser isto pela segunda vez para a
mesma mquina, pode-se estar certo de que o cache est funcionando e
fornecendo a informao certa. Pode sair-se do comando nslookup digitando-
se `exit'.
Agora que sabemos como configurar um servidor de nomes de cache,
aproveite para tomar uma cerveja, leite, ou qualquer coisa que se queira para
comemorar este fato memorvel.
Simples

Antes de realmente comearmos esta seo, forneceremos alguns
ensinamentos sobre o funcionamento do DNS; preciso l-los porque
fundamental para um administrador de rede. Caso no se queira, deve-se pelo
menos pesquis-los rapidamente, at chegar aonde se quer ir no arquivo
named.conf.
DNS uma sistema hierrquico. O mais alto nvel representado por `.'
e denominado "raiz". Sob "." h diversos Domnios de Alto Nvel (TLDs), sendo
os mais conhecidos ORG, COM, EDU e NET, mas existem muitos mais.
Ao se procurar uma mquina, a pesquisa ocorre recursivamente dentro
da hierarquia, comeando no topo. Caso se queira descobrir o endereo de
76
prep.ai.mit.edu, o servidor de nomes local tem que encontrar um nome de
servidor que responda pelo domnio edu. Ele pergunta a um servidor . (ele j
conhece os servidores ., a partir do arquivo root.hints), e o servidor . fornecer
uma lista dos servidores do domnio edu:
$ nslookup
Default Server: localhost
Address: 127.0.0.1
Comearemos perguntando por umservidor raiz:
> server c.root -servers.net.
Default Server: c.root -servers.net
Address: 192.33.4.12
A seguir definiremos o tipo de pesquisa que desejamos fazer. Neste
caso NS (registros de servidores de nomes):
> set q=ns
A seguir perguntaremos pelos servidores que respondem pelo domnio
edu:
> edu.
O ponto aps edu significativo. Ele indica ao servidor que estamos
pesquisando os servidores sob os quais o domnio edu est configurado (isto
de alguma maneira simplifica a busca):
edu nome do servidor = A.ROOT-SERVERS.NET
edu nome do servidor = H.ROOT-SERVERS.NET
edu nome do servidor = B.ROOT-SERVERS.NET
edu nome do servidor = C.ROOT-SERVERS.NET
edu nome do servidor = D.ROOT-SERVERS.NET
edu nome do servidor = E.ROOT-SERVERS.NET
edu nome do servidor = I.ROOT-SERVERS.NET
edu nome do servidor = F.ROOT-SERVERS.NET
edu nome do servidor = G.ROOT-SERVERS.NET
A.ROOT-SERVERS.NET endereo na internet = 198.41.0.4
H.ROOT-SERVERS.NET endereo na internet = 128.63.2.53
B.ROOT-SERVERS.NET endereo na internet = 128.9.0.107
C.ROOT-SERVERS.NET endereo na internet = 192.33.4.12
D.ROOT-SERVERS.NET endereo na internet = 128.8.10.90
E.ROOT-SERVERS.NET endereo na internet = 192.203.230.10
I.ROOT-SERVERS.NET endereo na internet = 192.36.148.17
F.ROOT-SERVERS.NET endereo na internet = 192.5.5.241
G.ROOT-SERVERS.NET endereo na internet = 192.112.36.4
A resposta nos indica que *.root-servers.net serve edu., podemos ento
continuar perguntando, por exemplo ao servidor C.ROOT-SERVERS.NET.
Agora queremos saber quem serve o prximo nvel do nome da mquina:
mit.edu.:
> mit.edu.
Server: c.root-servers.net
Address: 192.33.4.12
Non-authoritative answer:
mit.edu nameserver = W20NS.mit.edu
77
mit.edu nameserver = BITSY.mit.edu
mit.edu nameserver = STRAWB.mit.edu
Authoritative answers can be found from:
W20NS.mit.edu internet address = 18.70.0.160
BITSY.mit.edu internet address = 18.72.0.3
STRAWB.mit.edu internet address = 18.71.0.151
A resposta indica que strawb, w20ns e bitsy servem o domnio mit.
Vamos selecionar umdeles e perguntar-lhe sobre ai.mit.edu:
> servidor W20NS.mit.edu.
Os nomes das mquinas no so sensveis a maisculas e minsculas,
mas sugerimos o uso do mouse para cortar e colar como esto na tela.
Servidor: W20NS.mit.edu
Endereo: 18.70.0.160
> ai.mit.edu.
Server: W20NS.mit.edu
Address: 18.70.0.160
Non-authoritative answer:
ai.mit.edu nameserver = ALPHA-BITS.AI.MIT.EDU
ai.mit.edu nameserver = GRAPE-NUTS.AI.MIT.EDU
ai.mit.edu nameserver = TRIX.AI.MIT.EDU
ai.mit.edu nameserver = MUESLI.AI.MIT.EDU
ai.mit.edu nameserver = LIFE.AI.MIT.EDU
ai.mit.edu nameserver = BEET-CHEX.AI.MIT.EDU
ai.mit.edu nameserver = MINI-WHEATS.AI.MIT.EDU
ai.mit.edu nameserver = COUNT-CHOCULA.AI.MIT.EDU
ai.mit.edu nameserver = MINTAKA.LCS.MIT.EDU
Authoritative answers can be found from:
AI.MIT.EDU nameserver = ALPHA-BITS.AI.MIT.EDU
AI.MIT.EDU nameserver = GRAPE-NUTS.AI.MIT.EDU
AI.MIT.EDU nameserver = TRIX.AI.MIT.EDU
AI.MIT.EDU nameserver = MUESLI.AI.MIT.EDU
AI.MIT.EDU nameserver = LIFE.AI.MIT.EDU
AI.MIT.EDU nameserver = BEET-CHEX.AI.MIT.EDU
AI.MIT.EDU nameserver = MINI-WHEATS.AI.MIT.EDU
AI.MIT.EDU nameserver = COUNT-CHOCULA.AI.MIT.EDU
AI.MIT.EDU nameserver = MINTAKA.LCS.MIT.EDU
ALPHA-BITS.AI.MIT.EDU internet address = 128.52.32.5
GRAPE-NUTS.AI.MIT.EDU internet address = 128.52.36.4
TRIX.AI.MIT.EDU internet address = 128.52.37.6
MUESLI.AI.MIT.EDU internet address = 128.52.39.7
LIFE.AI.MIT.EDU internet address = 128.52.32.80
BEET-CHEX.AI.MIT.EDU internet address = 128.52.32.22
MINI-WHEATS.AI.MIT.EDU internet address = 128.52.54.11
COUNT-CHOCULA.AI.MIT.EDU internet address = 128.52.38.22
MINTAKA.LCS.MIT.EDU internet address = 18.26.0.36
78
Desta forma, obtemos que museli.ai.mit.edu um dos servidores de
nomes de ai.mit.edu:
> server MUESLI.AI.MIT.EDU
Default Server: MUESLI.AI.MIT.EDU
Address: 128.52.39.7
Agora mudaremos o tipo de pergunta. J que encontramos o servidor
de nomes, agora podemos perguntar tudo o que quisermos sobre
prep.ai.mit.edu.
> set q=any
> prep.ai.mit.edu.
Server: MUESLI.AI.MIT.EDU
Address: 128.52.39.7
prep.ai.mit.edu CPU = dec/decstation-5000.25 OS = unix
prep.ai.mit.edu
inet address = 18.159.0.42, protocol = tcp
ftp telnet smtp finger
prep.ai.mit.edu preference = 1, mail exchange r = gnu-life.ai.mit.edu
prep.ai.mit.edu internet address = 18.159.0.42
ai.mit.edu nameserver = beet-chex.ai.mit.edu
ai.mit.edu nameserver = alpha-bits.ai.mit.edu
ai.mit.edu nameserver = mini-wheats.ai.mit.edu
ai.mit.edu nameserver = trix.ai.mit.edu
ai.mit.edu nameserver = muesli.ai.mit.edu
ai.mit.edu nameserver = count-chocula.ai.mit.edu
ai.mit.edu nameserver = mintaka.lcs.mit.edu
ai.mit.edu nameserver = life.ai.mit.edu
gnu-life.ai.mit.edu internet address = 128.52.32.60
beet-chex.ai.mit.edu internet address = 128.52.32.22
alpha-bits.ai.mit.edu internet address = 128.52.32.5
mini-wheats.ai.mit.edu internet address = 128.52.54.11
trix.ai.mit.edu internet address = 128.52.37.6
muesli.ai.mit.edu internet address = 128.52.39.7
count-chocula.ai.mit.edu internet address = 128.52.38.22
mintaka.lcs.mit.edu internet address = 18.26.0.36
life.ai.mit.edu internet address = 128.52.32.80
Assim comeando por . fomos capazes de descobrir os nomes dos
servidores do prximo nvel de domnio. Caso se esteja usando um servidor
DNS prprio ao invs de usar todos aqueles outros servidores, o named
certamente guardaria no cache todas as informaes que tenha encontrado,
no sendo necessria toda esta pesquisa na prxima vez que fosse realizada
uma nova pesquisa de localizao desta mquina.
Um tema muito menos comentado, mas tambm muito importante in-
addr.arpa. Ele tambm est aninhado como um domnio 'normal'. in-addr.arpa
permite-nos conseguir os nomes das mquinas atravs de seus endereos.
Uma coisa importante aqui, notar que ip#s so escritos ao contrrio no
campo in-addr.arpa. Caso se tenha o endereo da mquina: 192.128.52.43,
named proceder exatamente como no exemplo prep.ai.mit.edu: encontrar
79
servidores arpa., in-addr.arpa., 192.in-addr.arpa., 128.192.in-addr.arpa.,
52.128.192.in-addr.arpa.. Encontrar ento os registros necessrios para
43.52.128.192.in-addr.arpa. Engenhoso no? (Diga `Sim', por favor!.) Porm
no se preocupe endereos reversos somente so confusos nos dois primeiros
anos.
Acabamos de contar uma mentira. O DNS no funciona exatamente da
maneira aqui descrita. Mas no tenha dvida que muito prximo disso.

Agora vamos definir nosso prprio campo. Vamos criar o domnio
linux.bogus e definir suas mquinas. Usaremos o nome de domnio bogus para
estarmos certos de no estarmos perturbando ningum.
Mais uma coisa antes de comearmos: nem todos os caracteres so
permitidos nos nomes das mquinas. Estamos limitados ao caracteres do
alfabeto: a-z e ao nmeros: 0-9, alm do caracter '-' (hfen). Devemos nos
restringir queles caracteres. Os caracteres maisculos e minsculos so
idnticos para o DNS, assim pat.uio.no igual a Pat.UiO.No.
Comearemos esta parte com uma linha em named.conf:
zone "0.0.127.in-addr.arpa" {
type master;
file "pz/127.0.0";
};
Por favor note a falta de `.' no final dos nomes dos campos neste
arquivo. Isto nos diz que podemos definir uma zona 0.0.127.in-addr.arpa, na
qual somos os servidores principais e que as informaes esto guardadas em
um arquivo chamado pz/127.0.0. Ns j configuramos este arquivo
anteriormente com o seguinte contedo:
@ IN SOA ns.linux.bogus.hostmaster.linux.bogus. (
1 ; Serial
8H ; Atualizao
2H ; Tentativas
1W ; Expirao
1D) ; TTL mnimo
NS ns.linux.bogus.
1 PTR localhost
Por favor note o `.' no final de todos os nomes completos de campo
neste arquivo, em contraste ao arquivo acima named.conf. Algumas pessoas
gostam de comear cada arquivo de zona com uma diretiva $ORIGIN, mas isto
suprfluo. A origem (onde pertence o DNS na hierarquia) de um arquivo de
zona especificado na seo de zona do arquivo named.conf, a qual neste
caso 0.0.127.in-addr.arpa.
Este `arquivo de zona ' contm 3 `registros de recursos' (RRs): SOA, NS
e um PTR. SOA a contrao para Incio de Autoridade. O `@' uma
80
observao especial que significa origem e desde que a coluna do campo para
este arquivo diz 0.0.127.in-addr.arpa, a primeira linha realmente quer dizer
0.0.127.in-addr.arpa. IN SOA ...
NS o nome do servidor RR. No h '@' no incio desta linha, est
implcito desde que a ltima linha comeou com o caracter '@'. Economiza-se
assim alguma digitao e a possibilidade de cometer algum erro. Assim na
linha NS se l
0.0.127.in-addr.arpa. IN NS ns.linux.bogus
Indicando ao DNS que a mquina o servidor de nomes do domnio
0.0.127.in-addr.arpa chamada ns.linux.bogus. 'ns' um nome comum para
servidor de nomes, mas como em servidores web so costumeiramente
chamados www.domnio, este nome pode ser qualquer coisa.
E finalmente o registro PTR diz que a mquina no endereo 1 na
subrede 0.0.127.in-addr.arpa, ou seja, 127.0.0,1 denominado localhost.
O registro SOA o prembulo para todos os arquivos de zona e deve
haver exatamente um em cada arquivo de zona, devendo necessariamente ser
o primeiro registro. Ele descreve a zona, sua origem (uma mquina servidor de
nomes ns.linux.bogus), quem a responsvel por seu contedo
(hostmaster@linux.bogus), qual a verso do arquivo de zona (serial: 1) e outras
coisas que tm a ver com guarda de dados em cache e servidores secundrios
de DNS. Para os demais campos, Atualizao, Tentativas, Expirao e TTL,
pode-se usar os valores aqui indicados e se estar seguro.
Agora reinicializaremos o servidor de nomes (atravs do comando ndc
restart), e usaremos nslookup para examinar o que foi feito:
$ nslookup
Servidor Padro: localhost
Endereo: 127.0.0.1
> 127.0.0.1
Servidor: localhost
Endereo: 127.0.0.1
Nome: localhost
Endereo: 127.0.0.1
observamos ento que possvel chegar a localhost a partir do
endereo 127.0.0.1. Agora a nossa tarefa principal, no campo linux.bogus,
vamos inserir uma nova seo chamada 'zone' no named.conf:
zone "linux.bogus" {
notify no;
type master;
file "pz/linux.bogus";
};
Note-se a ausncia de `.' no nome do domnio no arquivo named.conf.
81
No arquivo de zona do domnio linux.bogus colocaremos alguns dados
totalmente inventados:
;
; Arquivo zona para linux.bogus
;
; O arquivo completo de zone
;
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; serial, data de hoje + serial de hoje
#
8H ; Atualizao, segundos
2H ; T entativa, segundos
1W ; Expirao, segundos
1D ) ; TTL, segundos
;
NS ns ; Endereo Internet do nome do servidor
MX 10 mail.linux.bogus ; Servidor de Correio Primrio
MX 20 mail.friend.bogus. ; Servidor de Correio Secundrio
;
localhost A 127.0.0.1
ns A 192.168.196.2
mail A 192.168.196.4
Dois aspectos devem ser observados sobre o registro SOA.
ns.linux.bogus deve ser uma mquina real com um registro A. No permitido
ter um registro CNAME para a mquina mencionada no registro SOA. O nome
no precisa ser 'ns', pode ser qualquer nome de mquina vlido. Em seguida, a
hostmaster.linux.bogus deve ser lido como hostmaster@linux.bogus, o qual
deve ser um nome alternativo de correio, ou caixa postal, acessado pela(s)
pessoa(s) que mantm o DNS e leiam a correspondncia freqentemente.
Qualquer correspondncia relativa ao domnio ser enviada para o endereo
relacionado aqui. O nome no precisa ser 'hostmaster', pode ser qualquer
endereo e-mail vlido, mas espera-se que o endereo e-mail 'hostmaster'
funcione bem.
H um novo tipo RR neste arquivo, o MX, ou registro de recurso de
servidor de correio. Este arquivo diz aos sistemas de correspondncia para
onde enviar a correspondncia endereada para algum@linux.bogus, ou seja
no nosso caso mail.linux.bogus ou mail.friend.bogus. O nmero antes de cada
nome de mquina define a prioridade. O RR com o nmero mais baixo tem
prioridade. Caso ele no esteja ativo ou apresentar algum erro, a mensagem
pode ser enviada a um outro servidor de mensagens com um nmero mais
alto, um operador de correspondncia secundrio, ou seja, no nosso caso,
mail.friend.bogus que temprioridade 20.
Ao se reiniciar o servidor de nomes executando-se ndc restart
obteremos os seguintes resultados com o nslookup:
$ nslookup
> set q=any
> linux.bogus
82
Server: localhost
Address: 127.0.0.1
linux.bogus
origin = ns.linux.bogus
mail addr = hostmaster.linux.bogus
serial = 199802151
refresh = 28800 (8 horas)
retry = 7200 (2 horas)
expire = 604800 (7 dias)
minimum ttl = 86400 (1 dia)
linux.bogus nameserver = ns.linux.bogus
linux.bogus preference = 10, mail exchanger = mail.linux.bogus.linux.bogus
linux.bogus preference = 20, mail exchanger = mail.friend.bogus
linux.bogus nameserver = ns.linux.bogus
ns.linux.bogus internet address = 192.168.196.2
mail.linux.bogus internet address = 192.168.196.4
Com um exame mais apurado pode-se descobrir um pequeno problema.
A linha
linux.bogus preference = 10, mail exchanger = mail.linux. bogus.linux.bogus
deveria ser
linux.bogus preference = 10, mail exchanger = mail.linux.bogus
Deliberadamente cometemos o erro para que o leitor aprenda com ele:-)
Examinando o arquivo de zona, percebemos que na linha
MX 10 mail.linux.bogus ; Servidor primrio de correio
est faltando um ponto. Ou seja h 'linux.bogus' demais. Caso um nome
de mquina no seja seguido por um ponto num arquivo de zona, a origem
ser acrescentada ao final causando o duplo linux.bogus.linux.bogus. Portanto
MX 10 mail.linux.bogus. ; Servidor primrio de correio
ou
MX 10 mail ; Servidor primrio de correio
esto corretos. Particularmente, sugerimos a ltima forma, por ser mais
econmica e menos sujeita a erros. Existem alguns bem conhecidos usurios
de bind que discordam e outros que concordam com isto. Num arquivo de
zona, o domnio pode tanto ser totalmente identificado e terminado com um `.'
ou no deve ser includo de forma alguma, utilizando ento o padro da
origem.
Devemos salientar que em um arquivo named.conf no deve haver `.'
depois dos nomes dos domnios. Voc no tem idia de quantas vezes um `.'
gerou uma enormidade de problemas e confundiu um punhado de
administradores.
Agora que j expressamos nosso ponto de vista. Estamos com o novo
arquivo de zona e com informaes extras:
83
;
; Arquivo de zona para linux.bogus
;
; O arquivo de zona completo
;
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; serial, data de hoje + serial de hoje #
8H ; Atualizar, segundos
2H ; Tentativas, segundos
1W ; Expirao, segundos
1D ) ; TTL, segundos
;
TXT "Linux.Bogus, os especialistas DNS "
NS ns ; Endereo Internet do servidor de nomes
NS ns.friend.bogus.
MX 10 mail ; Servidor de correio primrio
MX 20 mail.friend.bogus. ; Servidor de correio secundrio
localhost A 127.0.0.1
gw A 192.168.196.1
HINFO "Cisco" "IOS"
TXT "O roteador"
ns A 192.168.196.2
MX 10 mail
MX 20 mail.friend.bogus.
HINFO "Pentium" "Linux 2.0"
www CNAME ns
donald A 192.168.196.3
MX 10 mail
MX 20 mail.friend.bogus.
HINFO "i486" "Linux 2.0"
TXT "DEK"
correio A 192.168.196.4
MX 10 mail
MX 20 mail.friend.bogus.
HINFO "386sx" "Linux 2.2"
ftp A 192.168.196.5
MX 10 mail
MX 20 mail.friend.bogus.
HINFO "P6" "Linux 2.0.36"
H diversos RRs novos: HINFO (INFOrmao da Mquina) tem duas
partes, sendo aconselhvel indicar os dois. A primeira parte o hardware ou
84
CPU da mquina, e a segunda parte o software ou OS da mquina. O
servidor de nomes 'ns' tem uma CPU Pentium e executa o Linux 2.0. CNAME
(NOME Cannico) uma maneira de dar a uma mesma mquina vrios
nomes. Assim www um nome alternativo para o ns.
O uso do registro CNAME um pouco controvertido. Mas seguro
seguir a regra onde um registro MX, CNAME ou SOA nunca deve referir-se a
um registro CNAME , e devem referir-se somente a um registro A, sendo
portanto incorreto ter-se:
itamaracabar CNAME www ; NO!
o correto seria:
itamaracabar CNAME ns ; SIM!
tambm seguro supor que um CNAME no um nome de mquina
vlido para um endereo e-mail, por exemplo webmaster@www.linux.bogus
um endereo ilegal, conforme a configurao acima. No se deve esperar que
muito administradores de servidores de mensagens usem esta configurao,
mesmo se ela funcionar localmente. A maneira para evitar isto usar registros
de tipo A ( e talvez alguns outros tambm, como um registro MX):
www A 192.168.196.2
Um grande nmero de magos do DNS, sugerem que o CNAME no seja
utilizado. Por isso, devemos considerar esta sugesto muito seriamente.
Mas como se pode perceber, este COMO FAZER e muitos sites no
seguem esta regra.
possvel carregar o novo banco de dados executando-se ndc reload, o
que far com que o named leia seus arquivos novamente.
$ nslookup
Default Server: localhost
Address: 127.0.0.1
> ls -d linux.bogus
Isto significa que todos os registros devem ser apresentados. O
resultado ser:
<tscreen><verb>
[localhost]
$ORIGIN linux.bogus.
@ 1D IN SOA ns hostmaster (
199802151 ; nro. serial
8H ; atualizar
2H ; tentativas
1W ; expirao
1D ) ; mnimo
1D IN NS ns
85
1D IN NS ns.friend.bogus.
1D IN TXT "Linux.Bogus, os consultores DNS"
1D IN MX 10 mail
1D IN MX 20 mail.friend.bogus.
gw 1D IN A 192.168.196.1
1D IN HINFO "Cisco" "IOS"
1D IN TXT "O roteador"
mail 1D IN A 192.168.196.4
1D IN MX 10 mail
1D IN MX 20 mail.friend.bogus.
1D IN HINFO "386sx" "Linux 1.0.9"
localhost 1D IN A 127.0.0.1
www 1D IN CNAME ns
donald 1D IN A 192.168.196.3
1D IN MX 10 mail
1D IN MX 20 mail.friend.bogus.
1D IN HINFO "i486" "Linux 1.2"
1D IN TXT "DEK"
ftp 1D IN A 192.168.196.5
1D IN MX 10 mail
1D IN MX 20 mail.friend.bogus.
1D IN HINFO "P6" "Linux 1.3.59"
ns 1D IN A 192.168.196.2
1D IN MX 10 mail
1D IN MX 20 mail.friend.bogus.
1D IN HINFO "Pentium" "Linux 1.2"
@ 1D IN SOA ns hostmaster (
199802151 ; nro. serial
8H ; atualizar
2H ; tentativas
1W ; expirao
1D ) ; mnimo
Parece timo. Como se pode ver parece muito com o arquivo de zona.
Vamos verificar o que ele diz para www:
> set q=any
> www.linux.bogus.
Server: localhost
Address: 127.0.0.1
www.linux.bogus canonical name = ns.linux.bogus
linux.bogus nameserver = ns.linux.bogus
linux.bogus nameserver = ns.friend.bogus
ns.linux.bogus internet address = 192.168.196.2
Em outras palavras, o nome real de www.linux.bogus ns.linux.bogus, e
ele fornece algumas informaes adicionais que ele possua sobre ns, o
suficiente para um programa conectar-se a ele.
Agora estamos no meio do caminho.
86

Agora os programas podem converter os nomes em linux.bogus para
endereos com os quais eles podem se conectar. Porm pedida tambm
uma zona reversa, que torne o DNS capaz de converter um endereo em um
nome. Este nome usado por muitos servidores de espcies diferentes (FTP,
IRC, WWW e outros) para decidir se eles querem conversar com a mquina
local ou no, e em caso positivo, tambm qual a prioridade que deve ser dada
a esta mquina. Para o acesso completo a todos os servios da Internet, uma
zona reversa necessria.
Deve-se colocar o seguinte emnamed.conf:
zone "196.168.192.in-addr.arpa" {
notify no;
type master;
file "pz/192.168.196";
};
Estes parmetros so exatamente iguais para 0.0.127.in-addr.arpa e os
contedos so semelhantes:
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; Nro.Serial, data + nro. srie
8H ; Atualizar
2H ; Tentativas
1W ; Expirao
1D) ; TTL mnimo
NS ns.linux.bogus.
1 PTR gw.linux.bogus.
2 PTR ns.linux.bogus.
3 PTR donald.linux.bogus.
4 PTR mail.linux.bogus.
5 PTR ftp.linux.bogus.
Agora ao reinicializar o servidor de nomes (ndc restart) e examinar o
trabalho realizado, utilizando-se o nslookup, teremos:
> 192.168.196.4
Server: localhost
Address: 127.0.0.1
Name: mail.linux.bogus
Address: 192.168.196.4
Ento caso tudo parea correto, vamos examinar todas as demais
informaes:
> ls -d 196.168.192.in-addr.arpa
[localhost]
$ORIGIN 196.168.192.in-addr.arpa.
@ 1D IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; nro. serial
8H ; atualizar
2H ; tentativas
1W ; expirao
87
1D ) ; ttl mnimo
1D IN NS ns.linux.bogus.
1 1D IN PTR gw.linux.bogus.
2 1D IN PTR ns.linux.bogus.
3 1D IN PTR donald.linux.bogus.
4 1D IN PTR mail.linux.bogus.
5 1D IN PTR ftp.linux.bogus.
@ 1D IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; nro. serial
8H ; atualizar
2H ; tentativas
1W ; expirao
1D ) ; ttl mnimo
Parece bom!
H algumas coisas que devemos acrescentar. Os nmeros IP usados
nos exemplos acima foram tirados dos blocos de 'redes privadas', ou seja, eles
no podem ser usados publicamente na Internet. Por isso eles so seguros
para serem usados em um exemplo de um COMO FAZER. A segunda coisa
a linha notify no;, a qual indica que o servidor de nomes no notificar o
servidor secundrio (escravo), quando houver uma atualizao para um dos
arquivos de zona. No bind-8 o servidor de nomes pode notificar os outros
servidores relacionados nos registros NS no arquivo de zona, toda vez que ela
for atualizada. Isto conveniente para o uso dirio e usual, mas em nossas
experincias particulares com zonas, esta caracterstica deve ser desativada,
afinal no queremos que a experincia polua toda a Internet, queremos?
E claro, este domnio totalmente inventado, assim como todos os
endereos que esto nele. Para um exemplo real de um domnio real, veja a
prxima seo.

Esta foi originalmente uma seo sobre o uso da bind 8 escrita por David
E. Smith (dave@bureau42.ml.org). Ela foi editada para conter o novo nome da
seo.
No h muito a acrescentar. Exceto pelo uso do servidor named.conf ao
invs de servidor named.boot, tudo mais idntico; bind8 vem com um
programa perl que converte arquivos de estilo velho para o novo formato.
Exemplo de um named.boot (velho estilo) para um servidor de nomes somente
para cache:
directory /var/named
cache . root. hints
primary 0.0.127.IN-ADDR.ARPA 127.0.0.zone
primary localhost localhost.zone
Na linha de comando, no diretrio bind8/src/bin/named (presume-se aqui
que se tenham os fontes da distribuio. Caso se localize somente o pacote
binrio, o programa estar por perto. -ed.), digite:
./named-bootconf.pl < named.boot > named.conf
88

http://www.revistadolinux.com.br/artigos/005,030,3,160,979.html
Guilherme de Assis Brasil
gabrasil@aspdatasul.com.br
Como todos sabemos, o Windows 2000 trouxe considerveis mudanas
em relao ao seu antecessor, o Windows NT 4.0. Uma destas mudanas foi a
implementao do novo servio de diretrios, o "Active Directory", que guarda
informaes sobre os recursos da rede e os disponibiliza para usurios e
aplicaes. Este servio utiliza-se de vrios recursos de integrao com
padres da Internet como o DNS (Domain Name Service - Servio de Nome de
Domnio), por exemplo.
Neste aspecto, a migrao para a plataforma Windows 2000 pode se
tornar um problema se voc no usa o servidor de DNS da Microsoft, o que
at uma situao bastante comum. Normalmente, os administradores de DNS
mais avanados gostam de manter os arquivo de zona de seus domnios bem
documentados e organizados, e quando a funo de "Atualizao Dinmica"
(RFC 2136) habilitada, isso se torna uma tarefa impossvel. Para desgosto
deste seleto time de administradores o Active Directory do Windows 2000 usa
extensamente o suporte as "Atualizaes Dinmicas" para funcionar
corretamente e caso este no esteja habilitado, algumas partes do servio de
diretrios pode no funcionar, como por exemplo a replicao de dados entre
controladores de domnio. Porm existe uma forma simples de deixar o Active
Directory funcionando sem a desorganizao habitual das atualizaes
dinmicas.
Estaremos ento mostrando como configurar o BIND (testamos no BIND
8.2.3 instalado em um Linux Slackware 7.1) para que o Active Directory
funcione perfeitamente. importante lembrar que a tcnica mostrada aqui vale
para qualquer outro servidor de DNS que suporte "Atualizaes Dinmicas" e
registros SRV (RFC 2782), com as devidas diferenas de sintaxe de
configurao.
Para tal feito ser necessria a criao de uma zona primria sem
suporte a atualizao dinmica e mais quatro subzonas comeste suporte.
O procedimento para configurar corretamente o BIND e deix-lo pronto
para que o Active Directory possa utiliz-lo bem simples e os passos esto
abaixo:

A zona primria deve ser criada normalmente, usarei o exemplo de um
domnio chamado "intranet" para ilustrar os exemplos. Esta zona no ter
suporte atualizao dinmica e todas as incluses de novas mquinas
ocorrero aqui.
Inclua a seguinte entrada no arquivo de configurao do BIND
(geralmente "named.conf")
zone "intranet" in {
type master;
file "intranet.zone";
};
89
Esta uma entrada padro para a incluso de uma zona (domnio) no
BIND, o arquivo "intranet.zone" deve ser criado normalmente, como
qualquer outro arquivo de zona de domnio, mas importante que os
servidores que utilizaro os recursos do Active Directory esteja cadastrados
corretamente tanto neste arquivo, como seus devidos reversos.

Quatro subzonas devem ser criadas, so elas "_msdcs", "_udp",
"_tcp", "_sites". Estas subzonas tero suporte a atualizaes dinmicas e o
acesso para escrever nestas zonas deve ser liberado para as mquinas com o
active directory.
As entradas no arquivo "named.conf" so:
zone "_msdcs.intranet" in {
type master;
file "msdcs.zone";
check-names ignore;
allow-update { x.x.x.x/xx };
};
zone "_udp.intranet" in {
type master;
file "udp.zone";
check-names ignore;
allow-update { x.x.x.x/xx };
};
zone "_tcp.intranet" in {
type master;
file "tcp.zone";
check-names ignore;
allow-update { x.x.x.x/xx };
};
zone "_sites.intranet" in {
type master;
file "sites.zone";
check-names ignore;
allow-update { x.x.x.x/xx };
};
O "x.x.x.x/xx" representa o nmero IP da rede onde esto as mquinas
que usaro a atualizao dinmica. Por exemplo, para permitir atualizaes
partindo da rede 192.168.0.0 com mscara 255.255.255.0 (classe C) deve-se
colocar a entrada: "192.168.0.0/24".
90

Adaptado do NFS HowTo, por Nicolai Langfeldt
Traduo Original da Conectiva Informtica - Janeiro de 1999

NFS, o Sistema de Arquivos em Rede tem trs importantes
caractersticas:
Possibilita o compartilhamento de arquivos sobre uma rede local.
Funciona bastante bem.
Possibilita diversos problemas de segurana que so bem
conhecidos por intrusos, e podem ser explorados na obteno de
acesso (leitura, gravao e remoo) de todos os arquivos de um
sistema.
Abordaremos todos estes assuntos neste Como Fazer. Por favor, no
deixe de ler os itens sobre segurana neste Como Fazer, o que tornar a rede
menos vulnervel a riscos tolos de segurana. As passagens sobre segurana
sero bastante tcnicas e exigiro conhecimento sobre redes IP e sobre os
termos usados. Caso no se reconhea algum dos termos aqui usados,
verifique o Como Fazer - Redes ou obtenha um livro sobre administrao de
redes TCP/IP. Esta uma boa idia de qualquer forma, caso se esteja
administrando mquinas Unix/Linux. Um livro muito bom TCP/IP Network
Administration de Craig Hunt, publicado pela O'Reilly & Associates, Inc. E aps
toda esta leitura, certamente voc ser mais valorizado no mercado de
trabalho, e isso no se pode perder ;-)
H duas sees de ajuda com problemas no NFS, chamadas Lista de
Verificao e FAQs. Por favor, leia estas sees com ateno caso algo no
funcione da maneira esperada.


Antes de continuar a ler este captulo ser necessrio poder executar o
programa telnet de e para as mquinas que sero usadas como servidor e
cliente.

Antes que se possa fazer qualquer coisa, ser necessrio ter um
servidor NFS configurado. Caso se faa parte de alguma rede de um
departamento ou rede universitria provavelmente j existiro diversos
servidores NFS sendo executados. Casos eles permitam o acesso ou ao invs
disso, se esteja lendo este Como Fazer para se obter acesso a um servidor
NFS, no necessrio ler esta seo, podendo passar diretamente seo 9.3
Configurao do Cliente NFS.
91
Caso se necessite configurar um sistema diferente do GNU/Linux para
atuar como servidor, ser necessrio ler o manual do sistema para descobrir
como habilitar o NFS e a exportao de sistemas de arquivos. H uma seo
neste documento explicando como fazer isto em muitos sistemas diferentes.
Aps se descobrir isso tudo, pode-se continuar na leitura desta seo.
Aqueles que continuaram a sua leitura esto avisados: vamos ter que
configurar uma srie de programas.
portmapper
O portmapper no GNU/Linux chamado tambm de portmap ou
rpc.portmap. A pgina de manual online diz que se trata de "mapeador de
portas DARPA para nmeros de programas RPC". Este o primeiro problema
de segurana com o qual nos deparamos neste Como Fazer. A descrio de
como evitar estes problemas podem ser encontrada na seo 9.4 Segurana e
NFS, a qual eu repito que deve ser lida.
Inicializando o portmapper! Ele chamado de portmap ou rpc.portmap e
deve estar localizado no diretrio /usr/sbin (em algumas mquinas ele
chamado de rpcbind). Pode-se inicializ-lo manualmente por hora, mas ele
dever ser reinicializado toda vez que o sistema operacional for ativado, sendo
ento necessrio editar os programas rc. Estes programas so explicados
mais detalhadamente na pgina de manual do processo init, e usualmente
esto localizados nos diretrios /etc/rc.d, /etc/init.d ou
/etc/rc.d/init.d. Caso haja um programa chamado inet ou algo similar,
este provavelmente ser aquele que deve ser editado. Porm, como faz-lo
est alm do escopo deste documento. Deve-se iniciar o programa portmap e
verificar se ele est ativo atravs do comando ps -aux. Encontrou-o? timo.
mountd nfsd
Os prximos programas que necessitam ser executados so chamados
mountd e nfsd. Porm, antes, necessrio editar outro arquivo. Desta vez o
/etc/exports. O formato geral das entradas neste arquivo o seguinte:
diretrio computador(opo)
Onde:
diretrio: caminho completo do diretrio a ser exportado. Se o
diretrio no for seguido por um computador ou opo, qualquer
computador ter acesso apenas de leitura (ro) ao diretrio;
computador: mquinas que tero acesso ao diretrio exportado. Se
nenhum computador for fornecido, o diretrio ser exportado a
qualquer computador. Os valores vlidos so:
o Nome de mquina, como gauss.alfamidia.com.br;
o Grupos de computadores, como *.alfamidia.com.br;
o Endereo IP/mscara, como 172.20.0.0/255.255.0.0;
opo: define o tipo de acesso. Se no for informado, assumido
apenas leitura (ro). Os valores mais comuns so:
o ro: apenas leitura;
o rw: leitura e escrita.
92
Digamos que se deseje que o sistema de arquivo
/mn/parolin/local, o qual est localizado na mquina parolin se torne
disponvel para a mquina chamada batel. Deve-se ento utilizar a seguinte
configurao no arquivo /etc/exports na parolin:
/mn/parolin/local batel(rw)
As linhas acima fornecem a batel acesso de leitura e gravao (rw) para
/mn/parolin/local. Ao invs de rw poderamos informar ro, o que fornece
acesso somente para leitura e que o padro quando este parmetro no
informado. H diversas opes que podem ser utilizadas e que sero
discutidas juntamente com aspectos de segurana mais adiante. Elas esto
descritas nas pginas de manual online do comando exports, a qual deve ser
lida ao menos uma vez na vida. H ainda formas melhores de incluir diversas
mquinas no arquivo exports. Pode-se por exemplo, usar grupos de rede caso
se esteja utilizando NIS (ou NYS) (NIS foi conhecido como YP) e especificar
sempre um domnio com caracteres de generalizao, ou subredes IP como
mquinas que tm permisso para montar algo. Porm necessrio
considerar que poder ser possvel obter acesso ao servidor de forma no
autorizada caso se utilize autorizaes to genricas.
o arquivo exports no tem a mesma sintaxe que em outros Unixes.
Aps a definio dos diretrios a serem exportados no arquivo
/etc/exports, ser necessrio executar o comando exportfs para
processar este arquivo e atualizar o arquivo /var/lib/nfs/xtab. O arquivo
xtab contm informaes sobre os diretrios exportados e o arquivo que o
mountd l quando est processando a solicitao de montagem do cliente. O
formato do comando o seguinte:
[root@gauss /root] # exportfs -r
Agora que configuramos o mountd (ou talvez ele seja chamado
rpc.mountd) e o nfsd (o qual pode ser chamado rpc.nfsd), ambos iro ler o
arquivo exports.
Caso se edite o /etc/exports deve-se estar seguro de que os programas
nfsd e mountd fiquem cientes destas alteraes. A forma tradicional atravs
da execuo do comando exportfs. Muitas distribuies GNU/Linux no
possuem o programa exportfs. Caso este seja o seu caso, pode-se instalar o
seguinte programa na mquina local:
#!/bin/sh
killall -HUP /usr/sbin/rpc.mountd
killall -HUP /usr/sbin/rpc.nfsd
echo re-exportando sistemas de arquivos
O programa acima deve ser salvo, por exemplo como /usr/sbin/exportfs,
e deve ser executado o comando chmod a+rx exportfs. Agora, toda vez que
uma alterao for efetuada, deve-se executar o comando exportfs a seguir,
comprivilgios de superusurio.
Agora deve-se checar se mountd e nfsd esto sendo adequadamente
executados. Inicialmente deve-se executar o comando rpcinfo -p. Ele dever
apresentar uma sada similar a:
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
93
100005 1 udp 745 mountd
100005 1 tcp 747 mountd
100003 2 udp 2049 nfs
100003 2 tcp 2049 nfs
Como se pode perceber, o portmapper anunciou os seus servios, assim
como mountd e nfsd.
Caso se obtenha uma mensagem similar a rpcinfo: no foi possvel
contactar o portmapper: RPC: Erro no sistema remoto - Conexo recusada ou
algo similar, possivelmente o portmapper no esteja sendo executado. Caso
se obtenha uma mensagem similar a Nenhum programa remoto registrado.
Ento, ou o portmapper no deseja falar com a mquina local ou existe algum
erro. Pode-se finalizar o nfsd, o mountd e o portmapper e tentar reinici-los
nesta ordem novamente.
Aps verificar os servios disponveis segundo o portmapper, pode-se
fazer uma checagem atravs do comando ps. O portmapper continuar a
reportar um servio, mesmo aps o programa responsvel ter sido finalizado
com erro, por exemplo. Ento um comando ps poder ser a maneira mais
simples de descobrir que programas esto efetivamente sendo executados.
Evidentemente, ser necessrio modificar os arquivos rc do sistema
para inicializar o mountd e o nfsd, assim como o portmapper, quando o sistema
operacional for carregado. muito provvel que estes programas j existam
na mquina local e que se deva somente descomentar as sees adequadas
ou ativ-los nos nveis de execuo corretos.
Pginas de manual online que j devem ter sido visitadas at agora:
portmap, mountd, nfsd, e exports.
Bem, caso tudo tenha sido feito exatamente como foi descrito aqui, j
temos disposio todo o conjunto de ferramentas necessrias para iniciar um
cliente NFS.

Inicialmente necessrio ter um kernel com o suporte a sistemas de
arquivo NFS compilado ou como um mdulo. Isso deve ser configurado antes
da compilao do kernel. Caso se esteja utilizando uma distribuio muito boa
e nunca se tenha lidado com o kernel ou mdulos, nfs est magicamente sua
disposio.
O comando showmount lista os diretrios que o servidor exporta e os
clientes que tm permisso para montar esses diretrios:
[root@gauss /root] # showmount -exports parolin
/mn/parolin/local batel(rw)
Pode-se agora, na linha de comandos do superusurio, informar o
comando de montagem apropriado e o sistema de arquivos estar disponvel.
Continuando com nosso exemplo anterior, desejamos montar
/mn/parolin/local a partir de parolin. Isso deve ser feito atravs do
seguinte comando:
mount t nfs parolin:/mn/parolin/local /mnt/nfs
ou
mount -o rsize=1024,wsize=1024 parolin:/mn/parolin/local /mnt/nfs
94
(Retornaremos posteriormente s opes rsize e wsize). O sistema de
arquivos est agora disponvel sob /mnt e pode-se acess-lo atravs do
comando cd, assim como verificar o seu contedo atravs do comando ls, e
observar os arquivo individualmente. Pode-se perceber que ele no to
rpido quando um sistema local, mas muito mais amigvel que o uso do ftp.
Se, ao invs de montar um sistema de arquivos, o comando mount apresente
uma mensagem de erro como mount:parolin:/mn/parolin/local falhou, razo
fornecida pelo servidor: Permisso negada, ento o arquivo exports contm
algum erro. Caso ele informe mount clntudp_create: RPC: Programa no
registrado isso significa que os programas nfsd ou mountd no esto sendo
executados no servidor.
Para desmontar o sistema de arquivos basta comandar:
umount /mnt
Para que um sistema de arquivos nfs seja montado na inicializao do
sistema operacional, deve-se editar o arquivo /etc/fstab da forma usual. No
caso de nosso exemplo, deve-se adicioar a seguinte linha:
# dispositivo pto.montagem tipo_sist_arqs opes dump ordem verif.
parolin:/mn/parolin/local /mnt nfs rsize=1024,wsize=1024 0 0
Bem, parece tudo. Quase. Continue a leitura por favor.

H algumas opes que devem ser consideradas. Eles definem a forma
como o cliente NFS lida com uma queda do servidor ou da rede. Um dos
aspectos mais interessantes sobre NFS que ele lida com estas situaes com
elegncia, desde que o cliente esteja corretamente configurado. H dois tipos
distintos de parmetros de tratamento de falhas:
O cliente NFS reporta um erro ao processar o acesso a um
arquivo localizado em um sistema de arquivos montado via NFS.
Alguns programas podem lidar com isto com compostura, outros no.
Esta opo no recomendada.
O programa que acessa um arquivo em um sistema de
arquivos montado via NFS ir travar sempre que o servidor no
responder. O processo no pode ser interrompido ou finalizado a
menos que se tenha especificado intr. Quando o servidor NFS esteja
novamente ativo, o programa ir continuar a partir do ponto onde
tenha parado. Isso provavelmente o que se deseje.
Recomendamos o uso do parmetro hard,intr em todos os sistemas
de arquivos montados via NFS.
A partir do exemplo anterior, esta seria a entrada no arquivo fstab:
# dispositivo pto.montagem tipo_sist_arqs op es dump ordem verif.
parolin:/mn/parolin/local /mnt nfs rsize=1024,wsize=1024,hard,intr 0 0

Normalmente, caso as opes rsize e wsize seja especificados, o NFS
ir ler e gravar blocos de 4096 e 8172 bytes. Algumas combinaes de kernel
do GNU/Linux e placas de rede no podem lidar com blocos grandes e no
95
podem ser otimizados. Ento vamos tentar descobrir como encontrar os
parmetros rsize e wsize que funcionem da maneira mais otimizada possvel.
possvel testar a velocidade das opes com um simples comando. Dado o
comando mount conforme descrito acima, logo temos acesso de gravao ao
disco, podendo executar um teste de performance de gravao seqencial:
time dd if=/dev/zero of=/mnt/testfile bs=16k count=4096
Este comando criar um arquivo de 64 Mb de bytes zerados (que deve
ser grande o suficiente para que o cache no altere significativamente a
performance. Pode ser usado um arquivo maior caso o sistema local tenha
muita memria). Isso pode ser feito algumas vezes (5-10?), para que se possa
ter uma mdia bem fundamentada. Neste casos, o importante medir o tempo
de "relgio" e o tempo efetivamente gasto na conexo. Aps, pode-se testar a
performance da leitura ao se ler o arquivo de volta:
time dd if=/mnt/testfile of=/dev/null bs=16k
Isso pode ser feito algumas vezes. Aps deve-se executar o comando
mount e umount novamente com tamanhos maiores em rsize e wsize. Eles
devem ser provavelmente mltiplos de 1024, e no maior que 16384 visto que
este o tamanho mximo do NFS verso 2. Exatamente aps a montagem de
um tamanho maior, acesse o sistema de arquivos montado atravs do
comando cd e explore-o atravs do comando ls, para estar seguro que ele est
funcionando perfeitamente. Caso os parmetros rsize/wsize sejam muito
grandes, os sintomas no so muito bvios. Um tpico sintoma uma lista
incompleta dos arquivos produzida pelo comando ls e nenhuma mensagem de
erro. Ou ao se ler um arquivo ele falha misteriosamente, sem mensagens de
erro. Aps definir que os parmetros rsize/wsize funcionam perfeitamente
deve-se executar os testes de performance. SunOS e Solaris tem a reputao
de funcionar muito melhor com blocos de 4096 bytes.
kernels mais recentes do GNU/Linux (desde o 1.3) executam a leitura
antecipada para rsizes maiores ou iguais ao tamanho de pgina da mquina.
Em mquinas Intel o tamanho de pgina de 4.096 bytes. A leitura adiantada
aumenta significativamente a performance de leitura do NFS. Ou seja, sempre
que possvel deve-se usar o rsize de 4.096 bytes em mquinas Intel.
Lembre-se de editar o arquivo /etc/fstab com os valores de rsize/wsize
encontrados.
Uma sugesto para incrementar a performance de gravao do NFS
desabilitar o sincronismo de gravao do servidor. A especificao NFS indica
que a gravao NFS solicitada no pode ser considerada finalizadas antes dos
dados serem gravados em um meio no voltil (normalmente o disco rgido).
Isso restringe a performance de gravao de alguma forma, enquanto que
gravaes assncronas iro aumentar a velocidade do NFS. O servidor
GNU/Linux nfsd nunca faz gravaes sncronas uma que a prpria
implementao do sistema de arquivos no o faz, mas em servidores em
sistemas operacionais diferentes isso pode aumentar a performance atravs do
seguinte parmetro no arquivo exports:
/dir -async,access=linuxbox
ou algo similar. Por favor verifique a pgina de manual online da
mquina em questo. Cabe salientar que esta opo aumenta o risco de perda
de dados no caso de algum problema ocorrer antes da efetiva gravao dos
dados.
96

No me considero um expert em segurana de computadores. Porm
existem algumas sugestes importantes. importante ressaltar que esta no
uma lista completa de todos os aspectos relacionados com segurana e caso
se imagine que implementando somente estes no se poder ter qualquer
problema relacionado com o tema segurana, por favor me envie seu email que
eu tenho uma ponte e desejo vend-la.
Esta seo provavelmente fora de questo caso se esteja em uma
rede fechada onde todos os usurios so conhecidos e ningum que no seja
confivel pode acessar a rede, ou seja no h forma de discar para a rede e
no h forma de conectar-se a outras redes onde existam usurios no
confiveis. Isso soa como parania? No sou paranico. Isso somente um
aviso bsico de segurana. E lembre-se, o que aqui for dito somente uma
base para o tema. Um site seguro necessita de um administrador diligente e
com conhecimento que consiga encontrar informaes sobre problemas de
segurana correntes e potenciais.
NFS um problema bsico, caso o cliente no seja informado do
contrrio ir confiar no servidor NFS e vice e versa. Isso pode ser ruim, pois se
a senha do superusurio no servidor NFS for quebrada, a senha dos
superusurios dos clientes tambm o ser com relativa facilidade. E vice e
versa. H algumas estratgias para se evitar isso, as quais mencionaremos
adiante.
Um leitura obrigatria so os avisos do CERT sobre NFS, onde muitos
dos textos lidam com conselhos sobre segurana. Veja em ftp.cert.org/01-
README por uma lista atualizada dos avisos CERT. Aqui esto alguns dos
relacionados comNFS:
CA-91:21.SunOS.NFS.Jumbo.and.fsirand 12/06/91
Vulnerabilidade preocupa Sun Microsystems, Inc. (Sun) Sistema de Arquivos
em Rede (NFS) e o programa fsirand. Estas vulnerabilidades afetam o SunOS
verses 4.1.1, 4.1 e 4.0.3 em todas as arquiteturas. Atualizaes esto
disponveis para SunOS 4.1.1. Uma atualizao inicial para o NFS SunOS 4.1
est tambm disponvel. Sun ir disponibilizar atualizaes completas para as
verses SunOS 4.1 e SunOS 4.0.3 emuma verso posterior.
CA-94:15.NFS.Vulnerabilidades 12/19/94
Este aviso descreve as medidas de segurana a serem tomadas para evitar
diversas vulnerabilidades do Sistema de Arquivos em Rede (NFS). Os avisos
foram gerados devido ao incremento do comprometimento de superusurios
atravs de invasores usando ferramentas que exploram estas falhas.
CA-96.08.pcnfsd 04/18/96
Este aviso descreve a vulnerabilidade do programa pcnfsd (tambm conhecido
como rpc.pcnfsd). Uma atualizao est includa.
97

No cliente, podemos decidir se desejamos ou no confiar no servidor,
atravs de algumas opes na montagem. Por exemplo, possvel proibir
programas suid a funcionarem em sistemas de arquivos NFS atravs da opo
nosuid. Esta pode ser uma boa idia que deve ser considerada no uso de
todos os discos montados via NFS. Esta opo indica que o superusurio do
servidor no pode fazer um programa com caractersticas de suid no sistema
de arquivos, o que possibilitaria que ele acessasse o cliente como um usurio
normal e usasse o programa suid-superusurio para tornar-se root na mquina
cliente. Deve-se proibir tambm a execuo de arquivo em sistemas de
arquivos montados, atravs da opo noexec. Porm isso pode ser
impraticvel por vezes, assim como o nosuid uma vez que um sistema de
arquivos normalmente contm alguns programas que necessitam ser
executados. Estes parmetros podem ser informados na coluna opes,
juntamente com os parmetros rsize e wsize, separados por vrgulas.

No servidor pode-se decidir sobre a possibilidade de confiar na conta do
superusurio do cliente. Isso definido atravs do uso da opo root_squash
no arquivo exports:
/mn/parolin/local batel(rw,root_squash)
Agora caso um usurio com nmero de identificao igual a 0 (UID)
tentar acessar (ler, gravar, remover) o sistema de arquivos, o servidor
substituir o UID pela identificao da conta "nobody" (ningum). Isso faz com
que o superusurio da mquina cliente no possa acessar arquivos ou
executar mudanas autorizadas somente para o superusurio do servidor. Isso
aconselhvel e provavelmente deva-se usar root_squash em todos os
sistemas exportados. "Porm o superusurio cliente pode ainda usar o
comando 'su' para tornar-se qualquer outro usurio e acessar e alterar
quaisquer arquivos", o que se pode pensar primeira vista. A resposta :
sim, desta forma que as coisas funcionam com Unix e NFS. Isso traz uma
implicao importante: todos os binrios e arquivos importantes devem
pertencer ao superusurio root, e no a bin ou outra conta diferente, uma vez
que somente a conta do superusurio da mquina cliente pode acessar a conta
do superusurio no servidor. Na pgina de manual online do nfsd h diversas
outras opes squash que podem ser usadas, ento o administrador deve
decidir quem no pode ter acesso conta do superusurio. Existemopes de
se evitar o uso de faixas ou de qualquer UID ou GID que se deseje. Isso est
descrito na mesma pgina de manual.
root_squash na verdade o padro do nfsd do Linux. Para permitir
acesso a um sistema de arquivos como superusurio deve-se usar a opo
no_root_squash.
Outro aspecto importante garantir que o nfsd verifique que todas as
requisies so provenientes de uma porta autorizada. Caso se aceite
requisies de qualquer porta antiga de um usurio sem privilgios especiais,
torna-se simples acessar o sistema de arquivos atravs da Internet, por
exemplo. Basta usar o protocolo nfs e identificar-se como qualquer usurio que
se deseje. Ooopss. O nfsd do GNU/Linux realiza esta verificao por padro,
98
em outros sistemas operacionais deve-se habilitar esta opo. Isso dever
estar descrito na pgina de manual do servidor nfs do sistema.
Um dado adicional. Nenhum sistema de arquivo deve ser exportado
para o 'localhost' ou 127.0.0.1. Acredite em mim.

O portmapper bsico em combinao com nfsd tem um problema de
desenho que torna possvel obter arquivos em servidores NFS sem a
necessidade de quaisquer privilgios. Felizmente o portmapper do GNU/Linux
relativamente seguro contra este tipo de ataque, o que pode ser evitado
atravs da configurao de uma lista de acessos em dois arquivos,
Inicialmente editaremos o /etc/hosts.deny. Ele dever conter a seguinte
linha:
portmap: ALL
atravs da qual o acesso ser bloqueado para todos os cliente. Isto
talvez seja um pouco drstico, ento podemos tornar as definies um pouco
mais maleveis atravs da edio do arquivo /etc/hosts.allow. Inicialmente
necessrio definir que ser colocado nele. Ele contm basicamente uma lista
de todas as mquinas que podem acessar o portmapper local. Em um sistema
GNU/Linux h normalmente poucas mquinas que necessitem este tipo de
acesso, qualquer que seja a razo. O portmapper administra os programas
nfsd, mountd, ypbind/ypserv, pcnfsd, e servios 'r' como ruptime e rusers.
Todas as mquinas que necessitam acessar os servios da mquina local deve
ter permisso para tanto. Digamos que o endereo da mquina local seja
129.240.223.254 e que ela est conectada subrede 129.240.223.0, a qual
deve ter acesso mquina local (em caso de dvida verifique o Como Fazer -
Redes para refrescar a memria sobre estes conceitos). Para tanto basta
executar:
portmap: 129.240.223.0/255.255.255.0
no arquivo hosts.allow. Este o mesmo endereo de rede fornecido
para o comando route e a mscara de subrede informada no ifcongif. No
dispositivo eth0 desta mquina ifconfig mostraria:
...
eth0 Link encap:10Mbps Ethernet HWaddr 00:60:8C:96:D5:56
inet addr:129.240.223.254 Bcast:129.240.223.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:360315 errors:0 dropped:0 overr uns:0
TX packets:179274 errors:0 dropped:0 overruns:0
Interrupt:10 Base address:0x320
...
e netstat -rn apresentaria
Tabela de Roteamento do Kernel
Destinao Cam.Padro Mscara Indics Mtrica Ref Uso Iface
...
129.240.223.0 0.0.0.0 255.255.255.0 U 0 0 174412 eth0
...
o endereo de rede na primeira coluna.
99
Os arquivos hosts.deny e hosts.allow so descritos nas pgina de
manual de mesmo nome.
no coloque nada exceto ENDEREOS IP nas linhas do
portmap nestes arquivos. Pesquisas por nomes podem indiretamente causar
atividade do portmap o qual acionar a pesquisa de nomes de mquinas a qual
indiretamente ir causa atividade no portmap.,
As sugestes acima certamente deixaro o servidor mais seguro. As
questes restantes residem em algum que tenha descoberto a senha do
superusurio (ou inicializando um MS-DOS) em uma mquina confivel e
usando este privilgio para enviar requisies a partir de uma porta segura
como qualquer outro usurio real.

uma boa idia proteger o servidor nfs e as portas portmap no roteador
ou no firewall. O nfsd opera normalmente na porta 2049, nos protocolos udp e
tcp. O portmapper na porta 111, tcp e udp e o mountd na porta 745 e 747, tcp
e udp. Estas informaes devem ser checadas atravs do comando rpcinfo -p.
Por outro lado, caso se deseje permitir o acesso ao NFS atravs de um
firewall, h opes em programas mountd e nfsd mais recentes que permitem o
uso especfico e no padronizado de portas que podem ser abertas atravs de
um firewall.

Caso se utilize hosts.allow/deny, root_squash, nosuid e funcionalidades
de portas privilegiadas para os softwares portmapper e nfs pode-se evitar
muitos dos problemas atualmente conhecidos sobre segurana e pode sentir-
se quase seguro sobre estes problemas no mnimo. Porm h mais ainda:
quando um intruso tem acesso rede, ele pode incluir comandos estranhos
nos arquivos .forward ou nos arquivos de mensagens, quando /home ou
/var/spool/mail so montados via NFS. Pela mesma razo, nunca se deve dar
acesso s chaves privadas PGPP sobre nfs. Ou no mnimo, deve-se saber dos
riscos envolvidos. Pelo menos isso voc j sabe.
NFS e o portmapper criam um subsistema complexo e adicionalmente
h problemas que so descobertos e que devem ser solucionados, alm da
necessidade de se ter em mente o desenho bsico de implementao a ser
usado. Para estar ciente do que est ocorrendo pode acessar o grupo de
notcias comp.os.linux.announce e comp.security.announce eventualmente.

Esta seo baseada na lista de verificao de problemas da IBM Corp.
Meus agradecimentos a eles por tornarem ela disponvel para este Como
Fazer. Caso o leitor esteja com algum problema em montar sistemas de
arquivos NFS, por favor consulte esta lista. Cada item descreve um problema
especfico e a sua soluo.
1. O sistema de arquivos no foi exportado, ao menos para a mquina
cliente em questo.
Inclui-lo no arquivo exports.
100
2. A resoluo de nomes no confere com a lista de exports.
por exemplo: a lista em export indica uma exportao para johnmad mas
o nome johnmad resolvido como johnmad.austin.ibm.com, fazendo
com que a permisso de montagem seja negada.
Exportar em ambos os formatos de nomes.
Isso pode ocorrer ainda quando o cliente tem 2 interfaces com
nomes diferentes para cada um dos dois dispositivos e o comando
export especifica somente um deles.
Exportas para ambas as interfaces.
Isso pode ocorrer tambm quando o servidor no consegue
executar um chamada lookuphostbyname ou lookuphostbyaddr (so
funes da biblioteca) no cliente. Estej seguro de que o cliente pode
executar mquina <nome>; mquina <endereo_ip>; e que ambos
mostram a mesma mquina.
ajustar a resoluo de nomes no cliente.
3. O sistema de arquivos foi montado aps a inicializao do NFS (no
servidor). Neste caso o sistema de arquivos est exportado sob um
ponto de montagem.
Desativar nfsd e reinicializ-lo.
os clientes que tenham pontos de montagem sob sistemas
de arquivos tero problemas no acesso aps a reinicializao.
nestes casos recomendada a execuo do comando
mount -a, como superusurio, na mquina cliente.
4. As datas esto estranhamente diferentes em ambas as mquinas (o que
pode gerar inconsistncias com os arquivos).
Ajustar as datas.
O autor do Como Fazer sugere o uso do NTP para sincronismo
de relgios. Uma vez que existem restries de exportao do NTP
para fora dos EUA, pode-se obter uma cpia em uma distribuio
GNU/Linux ou em ftp://ftp.hacktic.nl/pub/replay/pub/linux ou em um site
espelho.
5. O servidor no aceita uma montagem de um usurio presente em mais
de 8 grupos.
diminuir o nmero de grupos aos quais o usurio pertena ou
alterar o usurio na montagem.

Esta uma seo de perguntas e respostas. Muito do que est contido
aqui foi escrito por Alan Cox.
101
1. Obtive uma srie de erros de manipulao de arquivos nfs ao usar o
GNU/Linux como servidor.
Isso causado por uma antiga verso do nfsd. Est corrigida a partir da
verso nfs-server2.2beta16.
2. Ao tentar montar um sistema de arquivos, surge a mensagem:
3. no foi possvel registrar-se no portmap: erro do sistema no
envio
4.
Provavelmente se est utilizando o sistema da Caldera. H um
problemas com os programas rc. Por favor entre em contato com eles
para correo do problema.
5. Por que no possvel executar um arquivo aps copi-lo para o
servidor NFS?
A questo reside no fato do nfsd criar caches de manipulao de
arquivos por questes de performance (lembre-se que ele executado
em um espao de usurio). Enquanto nfsd tem um arquivo aberto
(como no caso em que ele esteja sendo gravado), o kernel no permite
a sua execuo. Os programas NFSd a partir de 95 liberam os arquivos
aps alguns segundos, j verses mais antigas podem levar dias.
6. Os arquivos NFS esto todos com permisses somente de leitura.
O padro do servidor NFS GNU/Linux somente fornecer permisses
de leitura para arquivos montados. O arquivo /etc/exports deve ser
alterado caso se deseje algo diferente.
7. Existe um sistema de arquivos montado a partir de um servidor nfs
GNU/Linux e enquanto o comando ls trabalha, a leitura e gravao de
arquivos no funcionam.
Em verses mais antigas do Linux, deve-se montar um servidor NFS
com os parmetros rsize=1024,wsize=1024.
8. Ao montar a partir de um servidor NFS GNU/Linux com um bloco de
tamanho entre 3500-4000 ele trava regularmente.
Bem...no faa mais isso!
9. O GNU/Linux pode executar NFS sobre TCP?
No no momento.
10. Ao se montar a partir de uma mquina Linux, obtm-se inmeros erros.
102
Esteja certo de que os usurios utilizados esto presentes em no
mximo 8 grupos. Servidores mais antigos requerem isso.
11. Ao reinicializar a mquina, ela algumas vezes trava ao tentar desmontar
um servidor NFS.
desmonte servidores NFS ao reinicializar ou desligar.
Simplesmente ignore-os. Isso no ir machucar nimgum. O comando
umount -avt nonfs.
12. Clientes GNU/Linux NFS so muito lentos ao tentar gravar em sistemas
Sun e BSD.
NFS executa gravaes sncronas (que podem ser desabilitadas caso
no haja nenhum grande problema em se perder algum dado). Kernels
derivados do BSD tendem a trabalhar mal com pequenos blocos. Porm
ao se gravar blocos de 4 Kb de dados a partir de uma mquina Linux,
usando pacotes de 1 Kb, faz com que o GNU/Linux use a rotina BSD na
seguinte forma:
ler pgina de 4K
alterar para 1K
gravar 4K no disco rgido
ler pgina de 4K
alterar para 1K
gravar 4K no disco rgido
etc.
103


O servio NIS (Network Information Service, ou Servio de Informaes
de Rede) fornece para os usurios da rede local um ambiente de rede
transparente. Os dados de contas do usurio e nomes das mquinas so
mantidos no servidor, permitindo que os usurios usem qualquer mquina da
rede sem se preocupar com senhas diferentes e cpia de arquivos.
O NIS baseado em RPC (Remote Procedure Call, ou Chamada de
Procedimento Remoto), e composto basicamente do servidor, que armazena
as informaes, do cliente, que acessa o servidor, e das informaes
administrativas. Originalmente, o NIS era chamado de YP (Yellow Pages, ou
Pginas Amarelas). Infelizmente esse nome uma marca registrada da British
Telecom, e o nome do servio teve que ser mudado. Mas os nomes dos
comandos permaneceram, por isso temos o ypserv (servidor) e ypbind
(cliente).

Mapas so estruturas de dados geradas a partir dos arquivos mestre,
tais como /etc/passwd e /etc/hosts. Para alguns arquivos so criados vrios
tipos de mapas.

Existem dois tipos de servidores NIS: mestre e escravo. Um servidor
mestre uma mquina exclusiva, com um domnio particular, que mantm os
mapas autenticados. O mestre executa o daemon ypupdated, que alerta os
servidores escravos da necessidade da atualizao de seus mapas. Todas as
mudanas de mapas so feitas no mestre, e depois propagadas para os
escravos.
Os servidores escravos agem como intermedirios entre os clientes e o
mestre, mantendo rplicas exatas dos mapas contidos no servidor principal.
As mquinas cliente, por sua vez, executam o servidor ypbind, que as
torna capazes de executar processos para obter informaes de um servidor.
Configurando o Servidor
A primeira coisa a fazer verificar se os pacotes ypserv, ypbind e yp-
tools esto instalados:
[root@gauss:~] # rpm -qa | grep yp-tools
[root@gauss:~] # rpm -qa | grep ypbind
[root@gauss:~] # rpm -qa | grep ypserv
Caso no, instale os pacotes seguindo os seguintes comandos:
[root@gauss:~] # rpm -Uvh yp-tools*
[root@gauss:~] # rpm -Uvh ypbind*
[root@gauss:~] # rpm -Uvh ypserv*
104
Verifique se os arquivos /etc/gshadow e /etc/netgroup esto presentes,
caso no crie os arquivos como comando abaixo:
[root@gauss:~] # touch /etc/gshadow
[root@gauss:~] # touch /etc/netgroup
Depois disso, deve-se verificar se o nome do domnio NIS est correto.
Para isso, basta executar o comando nisdomainname e verificar o resultado.
importante ressaltar que o domnio NIS no tem nenhuma relao com o
domnio DNS, embora na maioria das vezes o nome seja o mesmo.
[root@gauss:~] # nisdomainname
alfamidia.
importante a presena do ponto no final do nome. Se o nome estiver
incorreto, basta executar:
[root@gauss:~] # nisdomainname alfamidia.
Em seguida, deve-se executar os servios portmap e ypserv:
[root@gauss:~] # touch /etc/init.d/portmap start
Iniciando o portmapper...OK
[root@gauss:~] # touch /etc/init.d/ypserv start
Iniciando o YP server...OK
O prximo passo incluir o prprio servidor na lista de servidores:
[root@gauss:~] # /usr/lib/yp/ypinit m
At this point, we have to construct a list of the hosts which
will run NIS servers. gauss is in the list of server hosts.
Please continue to add the names for the other hosts, one per
Line. When you are done with the list, type a <Ctrl -D>.
Next host to add: gauss
Next host to add:
Is this correct? [y/n: y] y
We need some minutes to build the databases...
()
Este comando ir gerar a base de dados do NIS e atualizar os mapas.
Depois disso, preciso inicializar o servidor de senhas:
[root@gauss:~] # touch /etc/init.d/yppasswd start
Iniciando o YP passwd...OK
Este servio permite que o usurio possa alterar sua senha em qualquer
mquina da rede, atravs do comando yppasswd.
importante ressaltar que se qualquer arquivo relacionado ao servidor
for atualizado, os mapas devem ser gerados novamente, e para isso deve-se
executar o comando make no diretrio /var/yp. Por exemplo, se for
acrescentado um usurio ao sistema:
[root@gauss:~] # cd /var/yp
[root@gauss yp]# make
Pode-se alterar a configurao padro do servidor no arquivo
/etc/ypserv.conf. Veja a documentao do NIS para mais detalhes de
como faz-lo.
105

A primeira coisa a fazer verificar se os pacotes ypbind e yp-tools esto
instalados:
[root@tales ~]# rpm -qa | grep yp-tools
[root@tales ~]# rpm -qa | grep ypbind
Caso no, instale os pacotes seguindo os seguintes comandos:
[root@tales ~]# rpm -Uvh yp-tools*
[root@tales ~]# rpm -Uvh ypbind*
As mquinas cliente so configuradas pelo arquivo /etc/yp.conf. Ele
utilizado pelo ypbind para fazer a ligao com o servidor. O arquivo deve
possuir uma das seguintes entradas vlidas:
domain NISDOMAIN server HOSTNAME
Esse formato usa o nome do servidor (HOSTNAME) para o domnio NIS
(NISDOMAIN).
domain NISDOMAIN broadcast
Esse formato faz um broadcast na rede para descobrir qual o servidor
do domnio NISDOMAIN.
ypserver HOSTNAME
Esse formato usa o servidor HOSTNAME, qualquer que seja o domnio.
Um exemplo de configurao:
domain alfamidia. broadcast
Depois disso, deve-se configurar o nome do domnio a que o cliente
pertence. Isso feito no arquivo /etc/sysconfig/network:
NISDOMAIN=domnio.
No nosso exemplo:
NISDOMAIN=alfamidia.

Por ltimo, temos que inicializar os servios do NIS no cliente:
[root@tales ~]# touch /etc/init.d/portmap start
Iniciando o portmapper...OK
[root@tales ~]# touch /etc/init.d/ypbind start
Ligando ao domnio NIS...OK
Aguardando por um servidor de domnio NIS: ... gauss.alfamidia.

Para que o NIS seja usado para busca de nomes de mquinas da rede,
deve ser acrescentada a opo nis na llinha order do arquivo
/etc/host.conf:
Order hosts,bind,nis
Para maior detalhes, consulte a documentao do resolv.
Opcionalmente, pode ser usado tambm o arquivo /etc/nsswitch.conf
para configurar o sistema de buscas do NIS. Veja mais detalhes sobre o
arquivo na sua documentao.
106


O FTP (File Transfer Protocol, ou Protocolo de Transferncia de
Arquivos) permite que o usurio realize transferncias de arquivos entre a sua
mquina e um ponto remoto da rede. A porta padro utilizada pelo FTP a 21.
A autenticao dos usurios feita usando as prprias senhas do
sistema. Existe tambm uma forma sem autenticao, chamada FTP Annimo
(Anonymous FTP), onde o usurio tem acesso apenas ao diretrio home do
usurio ftp.
O servidor ftp mais utilizado com o Linux o wu-ftp.

Primeiro devemos verificar se o servidor FTP est ativo no arquivo
/etc/inetd.conf:
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd l a
Geralmente, basta descomentar a linha, removendo o carctere # do
incio.
O parmetro -l ativa o log, o -a habilita o arquivo de configurao
/etc/ftpaccess.
Pronto, j possvel acessar o sevidor ftp.

O principal arquivo de configurao do ftpd o /etc/ftpaccess:
# Define uma classe de usurios: reais, convidados e annimos
class all real,guest,anonymous *
class rmtusers guest,anonymous *
class local real *
# Para restringir o acesso de usurios reais, basta retirar o real da linha
anterior
# Para restringir o acesso de usurios convidados, basta retirar o guest da linha
anterior
# Para restringir o acesso de usurios annimos, basta retirar o anonymous da
linha anterior
# possvel restringir o acesso de tipos de usurios de um certo domnio :
class renegados real !*.domnio.com.br
# O "!" funciona como negao e renegados = o nome da classe
# Probe qualquer mquina do domnio conectiva.com.br de efetuar login e
# exibe o arquivo /etc/wu-ftpd/access_deny_msg
deny *.conectiva.com.br /etc/wu-ftpd/access_deny_msg
# Probe que as mquinas/domnios listados no arquivo
# /etc/wu-ftpd/deny_hosts efetuem login e exibe a mensagem contida no
# arquivo /etc/wu-ftpd/access_deny_msg
107
deny /etc/wu-ftpd/deny_hosts /etc/wu-ftpd/access_deny_msg
# Definio de grupos de convidados, mesmo sendo um usurio real, caso o
# grupo do mesmo esteja na lista de guestgroup a sesso de ftp dele ser
# automaticamente passada para uma sesso annima
guestgroup users
# Define um usurio convidado. No /etc/passwd deve estar definido o seu
# diretrio root e tambm o $HOME deste usurio ao utilizar o<htmlurl url=" ftp."
name=" ftp."> Esses
# diretrios devem ser separados por "/./", por exemplo:
# convidado:senha:id:gid:Conta de FTP - convidado:/ftp/./incoming:/etc/ftponly
guestuser convidado
# Definio de grupos/usurios reais, por exemplo, caso se tenha utiizado a
# opo guestgroup * mas ainda deseja-se que os usurios do grupo suporte
# queiram acessar como reais:
realgroup suporte
realuser usuario
# Toda vez que um usurio da classe abaixo ac essar o ftp, o processo do
# servidor ftp ir ter prioridade = valor nice
nice <valor nice> [<classe que se logar>]
# Define o valor de umask para cada classe ou geral
defumask 011 rmtusers
defumask 022 local
# Segundos que o servio espera pela vinda de uma conexo PASV
timeout accept 120
# Segundos que o servio espera para realizar a conexo de dados com a porta
timeout connect 120
# Segundos que o servio espera por atividades na conexo de dados
timeout data 1200
# Segundos que o servio espera pelo prximo comando
timeout idle 900
# Segundos que o servio espera pelo prximo comando (valor mximo, no pode
# ultrapassar). Caso o timeout idle ultrapasse o valor do maxidle, sempre
# vlido o maxidle
timeout maxidle 1200
# Segundos que o servio disponibiliza para toda a conversao RFC931:
# <htmlurl url="http://andrew2.andrew.cmu.edu/rfc/rfc931.html"
name="http://andrew2.andrew.cmu.edu/rfc/rfc931.html">
108
timeout RFC931 10
# Quantidade de arquivos mxima que um usurio da classe pode transferir
# raw total: total de arquivos: entrada + sada
# raw out: sada
# raw in: entrada
file-limit raw total 50 rmtusers
# Quantidade de bytes mxima que um usurio da classe pode transferir
# raw total: total de arquivos: entrada + sada
# raw out: sada
# raw in: entrada
byte-limit
# Tempo mximo (em minutos) da conexo para usurios convidados, annimos e ou os
dois:
# limit-time guest 60
# limit-time anonymous 60
# limit-time * 60
# Por esta opo, usurios reais no possuem tempo mximo de conexo
limit-time guest 10
# No permite a transferncia de arquivos.
# Sintaxe: noretrieve [absolute|relative] [class=<classname>] ... [ -] <filename>
<filename>
noretrieve class=rmtusers /home/*/.bashrc
# Aps 3 tentativas de acesso sem sucesso, guardado no log informaes de
# que aps 3 tentativas no foi possvel o acesso e terminada a conexo
loginfails 3
# Define o modo da mensagem de "boas-vindas" ao se conectar:
# full: exibe o nome do servidor e qual se rvio utiliza
# (proftpd/wu-ftpd/etc)
# brief: exibe apenas o nome da mquina
# terse: exibe apenas a mensagem: "FTP server ready"
greeting full
# Define uma mensagem padro de conexo - NOTE: caso seja definido o tipo de
# mensagem (acima), o texto abaixo no ir aparecer
greeting text Servidor de FTP
# Logo aps entrar com usurio e senha (com sucesso) ser mostrado o
# contedo do arquivo.
banner /etc/ftp/banner
# Define o nome padro do servidor ftp - pode ser acessado atravs de %L,
# caso seja um servidor virtual, este valor no utilizado
hostname lilica
109
# Define o email do administrador do servidor - pode ser acessado por %E
email administrador@servidorftp.com.br
# Exibe o contedo do arquivo <path> quando o usu rio acessar o servidor
# <LOGIN> ou quando entrar em algum diretrio <CWD>
# message <path> {<when> {<class> ...}}
message /etc/ftp/message CWD=/home/ftp/pub all
# No arquivo de mensagens, podem haver os seguintes "atalhos":
# %T tempo (formato Thu Nov 15 17:12:42 1990)
# %F espao livre na partio (kbytes) [no suportado em todos]
# %C diretrio local (equivale ao pwd)
# %E email do administrador
# %R nome da mquina que est acessando o servidor
# %L nome do servidor
# %u nome do usurio determinado via autenticao RFC931
# %U nome do usurio que est logado (que foi digitado)
# %M nmero mximo de usurios permitidos nesta classe
# %N nmero de usurios correntes desta classe
...... Daqui pr baixo complicou a traduo ........
# %B absolute limit on disk blocks allocated #
# %b preferred limit on disk blocks #
# %Q current block count #
# %I maximum number of allocated inodes (+1) #
# %i preferred inode limit #
# %q current number of allocated inodes #
# %H time limit for excessive disk use #
# %h time limit for excessive files #
....................................................
# readme <path> {<when> {<class>}}
# Exibe uma indicao de que o usurio deve verificar um certo arquivo
# <path>
readme /home/ftp/README LOGIN all
# Guarda o log dos comandos dos usurios, dividido por tipos, real, guest,
# anonymous e separados por vrgulas
log commands guest,anonymous
# Guarda o log das transferncias de arquivos de usurios annimos,
# convidados e/ou reais.
# inbound = arquivos enviados ao servidor
# oubound = arquivos baixados do servidor
log transfers real,anonymous,guest inbound
# Guarda o log das violaes das regras de segurana para usurios reais,
# annimos ou convidados.
110
log security anonymous,guest
# Redireciona os avisos de transferncias de arquivos para o syslog, sem isso,
# ir para xferlog
log syslog
# Redireciona os avisos de transferncias de arquivos para o syslog e
# xferlog
log syslog+xferlog
# Permite utilizar-se de apelidos para diretrios
alias atualizacoes /pub/conectiva/atualizacoes
# Isto define um diretrio de busca que seja usado ao mudar diretrios.
cdpath /pub/conectiva/atualizacoes
cdpath /pub/conectiva/beta
# O sistema ir verificar todo o tempo se o servidor ser desligado, caso
# sim, o usurio que estiver acessando o servidor ser avisado, novos
# acessos no sero permitidos antes de certo tempo ( definido no arquivo de
# configurao) de o servidor ser desligado.
shutdown /etc/ftp_shutdown
# Parmetros para o arquivo:
# <ano> <ms> <dia> <hora> <minuto> <hora1> <hora2>
# <texto>
# onde
# <ano> qualquer ano > 1970
# <ms> 0-11
# <hora> 0-23
# <minuto> 0-59
# <hora1> e <hora2> no formato HHMM, definem a hora em que os usurios sero
# avisados do desligamento do servidor e quando ser realizado o
# desligamento automtico de usurios.
# <texto> Segue o mesmo padro da tag "message" com as opes :
# %s hora em que o servidor ser desligado
# %r hora em que conexes no sero mais permitidas
# %d hora em que as conexes sero desligadas
# Para a criao de domnios virtuais (Virtual hosts) necessrio que o seu
# servidor deve estar com seu nome cadastrado como vlido no servidor de
# nomes :
# virtual <address> <root|banner|logfile> <path>
virtual<htmlurl url=" ftp.suporte" name=" ftp.suporte"> root /home/ftp/suporte
banner /etc/ftp/sup_banner logfile xferlog_suporte
# Define os usurios que podem ou no ter acesso ao servidor virtual de<htmlurl
url=" ftp." name=" ftp.">
# virtual <address> allow <username> [<username> ...]
# virtual <address> deny <username> [<username> ...]
111
virtual<htmlurl url=" ftp.suporte" name=" ftp.suporte"> allow *
virtual<htmlurl url=" ftp.suporte" name=" ftp.suporte"> deny usuario
# Geralmente, permitido o acesso de usurios annimos em domnios
# virtuais, com a opo a seguir, retirada esta permisso.
virtual<htmlurl url=" ftp.suporte" name=" ftp.suporte"> private
# Define os usurios que podem ou no ter acesso ao servidor de<htmlurl url="
ftp." name=" ftp.">
defaultserver allow usuario
defaultserver deny *
# Geralmente, permitido o acesso de usurios annimos em servidores ftp,
# com a opo a seguir, retirada esta permisso.
defaultserver private
# passive address <externalip> <cidr>
# Permite que certos intervalos de ip's acessem um certo servidor ao invs
# do padro.
passive address 10.0.1.15 10.0.0.0/8
passive address 192.168.1.5 0.0.0.0/0
# Especifica o nome de um servidor de email, para onde ser enviada as
# mensagens de notificao de "uploads". So aceitos vrios servidores, onde
# o servio de ftp ir mandar mensagens at que um dos servidores definidos
# aceite a mensagem.
mailserver mail.conectiva.com.br
mailserver mail.domnio.com.br
mailserver<htmlurl url=" www.emails.com" name=" www.emails.com">
# Define o email de quem ir receber informaes sobre os "uploads"
# annimos. Pode-se definir mais de um email, todos sero notificados. Caso
# no seja definido nenhum email, no haver avisos.
incmail usuario@conectiva.com.br
incmail usuario@hotmail.com
# Define o email de quem ir receber informaes sobre os "uploads" annimos
# do domnio virtual. Caso no seja definido, sero enviadas notifica es
# para o email geral.
virtual<htmlurl url=" ftp.suporte" name=" ftp.suporte"> incmail
usuario@ftp.suporte
# Define o email de quem ir receber informaes sobre os "uploads"
# annimos no servidor padro (excluindo os virtuais).
defaultserver incmail usuario@conectiva.com.br
# Define o email do usurio que enviar a mensagem
mailfrom anonftp@conectiva.com.br
112
# Define o email do usurio que enviar a mensagem para o servidor virtual
virtual<htmlurl url=" ftp.suporte" name=" ftp.suporte"> mailfrom
anonftp@ftp.suporte
# Define o email geral do usurio que enviar a mensagem (apenas do servidor
# padro)
defaultserver mailfrom anonftp@conectiva.com.br
# Permite ou no executar a especificada funo. Por padro, todas so
# permitidas. Pode-se utilizar classes de usurios, bastando seguir a
# sintaxe class=nome_da_classe
# chmod <yes|no> <typelist>
chmod no anonymous
# delete <yes|no> <typelist>
delete yes real,guest,anonymous
# overwrite <yes|no> <typelist>
overwrite yes real,guest,anonymous
# rename <yes|no> <typelist>
rename no guest
# umask <yes|no> <typelist>
umask no real
# Define o nvel de checagem das senhas do usurio annimo.
# passwd-check <none|trivial|rfc822> (<enforce|warn>)
# none, no realiza checagem alguma
# trivial, deve haver "@"
# rfc822, a senha deve ser compatvel com a regra rfc822:
# <htmlurl url="http://www.faqs.org/rfcs/rfc822.html"
name="http://www.faqs.org/rfcs/rfc822.html">
# enforce, caso a senha no seja aceita, no realiza o acesso
# warn, caso a senha no seja aceita, apenas avisa o usurio e ento acessa
passwd-check rfc822 enforce
# Define as senhas que no sero aceitas (depender da configurao acima se
# o usurio poder ou no acessar o servidor)
deny-email usuario@conectiva.com.br
deny-email info@conectiva.com.br
deny-email suporte@conectiva.com.br
# Define se um diretrio tem ou no permisso para realizar "uploads"
# upload [absolute|relative] [class=<classname>]... [ -] <root-dir> <dirglob>
# <yes|no> <owner> <group> <mode> ["dirs"|"nodirs"] [<d_mode>]
# No permitir upload
upload /var/ftp * no
# Permitir upload no diretrio incoming
upload /var/ftp /incoming yes ftp daemon 0666
# Permitir upload e criao de subdiretrios no diretrio incoming/gifs
upload /var/ftp /incoming/gifs yes jlc guest 0 600 nodirs
113
# Define a taxa mxima de transferncia para determinados arquivos, caso
# utilize-se "*" vlido como todos os arquivos do diretrio definido
throughput /e/ftp * * oo - *
# Taxa de transferncia mxima para todos os arquivos local izados no
# diretrio /e/ftp
throughput /e/ftp /sw* * 1024 0.5 *
# Taxa de transferncia mxima = 1024 bps para todos os arquivos localizados
# em /e/ftp/sw
throughput /e/ftp /sw* README oo - *
# Taxa de transferncia mxima para arquivos chamados README
throughput /e/ftp /sw* * oo - *.foo.com
# Taxa de transferncia mxima para usurios do domnio foo.com
# Os caraceteres "oo" significam que no h restrio e " -","0.5" so os
# fatores por qual ser multiplicado o valor de bps definido p ara cada nova
# transferncia realizada no diretrio indicado
# Define o diretrio raiz (/) de usurios annimos, onde real e rmtusers so
# classes de usurios
anonymous-root /home/ftp/uploads real
anonymous-root /home/ftp/pub rmtusers
# Define o diretrio raiz de usurios convidados, pode ser passado o
# parmetro de um intervalo de id's dos usurios
guest-root /home/users
# Define para todos os usurios o diretrio raiz = /home/users
guest-root /home/staff %100-999 usuario
# Define para os usurios com id >= 100 e <= 900 e o usurio usuario a raiz
# = /home/staff
guest-root /home/users/barea/ftp barea
# Define para o usurio barea o diretrio raiz = /home/users/barea
# Permite ou no o acesso de usurios atravs de seus id's, gid's ou nome
# (usurio e grupo)
deny-gid %-99 %65535
deny-uid %-99 %65535
allow-gid ftp
allow-uid ftp
# Permite ou no o acesso de usurios alm de seu home
restricted-uid usuario
unrestricted-gid root
Outro arquivo importante o /etc/ftpconversions, que define as
converses automticas de arquivos:
:.Z: : :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS
: : :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS
:.gz: : :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP
: : :.gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP
: : :.tar:/bin/tar -c -f - %s:T_REG|T_DIR:O_TAR:TAR
114
: : :.tar.Z:/bin/tar -c -Z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS
: : :.tar.gz:/bin/tar -c -z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP
Sintaxe do arquivo:

1 strip prefix
2 strip postfix
3 addon prefix
4 addon postfix
5 external command
6 types
7 options
8 description
Por ltimo veremos o arquivo /etc/ftpusers, que uma lista dos nomes
dos usurios que no podem realizar ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

Como j foi mencionado, quando um usurio conecta-se como
anonymous, ele s tem acesso ao diretrio /home/ftp. Isso faz com que ele
no consiga acessar alguns arquivos binrios e de configurao do sistema,
que so essenciais para a utilizao do ftp. Por isso, esses arquivos devem
ser copiados para dentro do diretrio /home/ftp.
Em primeiro lugar, necessrio criar alguns diretrios:
/home/ftp: esta a raiz do usurio annimo. O dono do diretrio
deve ser root:root, e nenhum outro usurio deve ter permisso de
escrita.
/home/ftp/pub: aqui sero armazenados os arquivos para
download e upload. O dono do diretrio deve ser root:root. Este
115
diretrio pode ter permisso 777 ou 733, dependendo de o usurio
desejar ou no o upload de arquivos no servidor.
/home/ftp/bin: este diretrio vai abrigar os arquivos executveis
do servidor. O dono do diretrio deve ser root:root, e nenhum
outro usurio deve ter permisso de escrita. Este diretrio vai conter
uma cpia do binrio do comando ls, que deve ter as permisses
setadas para 111.
/home/ftp/lib: este diretrio vai abrigar os arquivos de bibliotecas
utilizadas pelos programas que esto em /home/ftp/bin. O dono
do diretrio deve ser root:root, e nenhum outro usurio deve ter
permisso de escrita. Para verificar a dependncia de bibliotecas de
um determinado programa, pode-se utilizar o ldd. No caso do ls,
deve-se copiar as bibliotecas libc.so.6 e ld-linux.so.2,
ambas localizadas em/lib.
/home/ftp/etc: este diretrio vai abrigar os arquivos executveis
do servidor. O dono do diretrio deve ser root:root, e nenhum
outro usurio deve ter permisso de escrita. Esse diretrio deve
conter os arquivos passwd e group, para que o comando ls possa
exibir os donos dos arquivos. Entretanto, no se deve usar os
arquivos do diretrio /etc, para evitar exibir informaes sobre os
usurios do sistema.
Exemplo de arquivo passwd para colocar em/home/ftp/etc:
root:*:0:0:::
bin:*:1:1:::
operator:*:11:0:::
ftp:*:14:50:::
nobody:*:99:99:::
Exemplo de arquivo group para colocar em/home/ftp/etc:
root::0:
bin::1:
daemon::2:
sys::3:
adm::4:
ftp::50:
nowhere::99:

1. Implemente um servidor de ftp annimo na sua mquina.


116

Adaptado do Guia Foca GNU/Linux Avanado Captulo 4.
Deixe-me iniciar esta seo lhe alertando que a segurana da rede em
sua mquina e ataques maliciosos so uma arte complexa. Uma regra
importante : "No oferea servios de rede que no deseja utilizar".
Muitas distribuies vem configuradas com vrios tipos de servios que
so iniciados automaticamente. Para melhorar, mesmo que
insignificantemente, o nvel de segurana em seu sistema voc deve editar se
arquivo /etc/inetd.conf e comentar (colocar uma "#") as linhas que contm
servios que no utiliza.
Bons candidatos so servios tais como: shell, login, exec, uucp, ftp e
servios de informao tais como finger, netstat e sysstat.
Existem todos os tipos de mecanismos de segurana e controle de
acesso, eu descreverei os mais importantes deles.

O arquivo /etc/ftpusers um mecanismo simples que lhe permite


bloquear a conexo de certos usurios via ftp. O arquivo /etc/ftpusers lido
pelo programa daemon ftp (ftpd) quando um pedido de conexo recebido. O
arquivo uma lista simples de usurios que no tem permisso de se conectar.
Ele se parece com:
# /etc/ftpusers - login de usurios bloqueados via ftp
root
uucp
bin
mail

O arquivo /etc/securetty lhe permite especificar que dispositivos tty que o


usurio root pode se conectar. O arquivo /etc/securetty lido pelo programa
login (normalmente /bin/login). Seu formato uma lista de dispositivos tty onde
a conexo permitida, em todos os outros, a entrada do usurio root
bloqueada.
# /etc/securetty - terminais que o usurio root pode se conectar
tty1
tty2
tty3
tty4

O programa tcpd que voc deve ter visto listado no mesmo arquivo
/etc/inetd.conf, oferece mecanismos de registro e controle de acesso para os
servios que esta configurado para proteger. Ele um tipo de firewall simples
117
e fcil de configurar que pode evitar tipos indesejados de ataques e registrar
possveis tentativas de invaso.
Quando executado pelo programa inetd, ele l dos arquivos contendo
regras de acesso e permite ou bloqueia o acesso ao servidor protegendo
adequadamente.
Ele procura nos arquivos de regras at que uma regra confira. Se
nenhuma regra conferir, ento ele assume que o acesso deve ser permitido a
qualquer um. Os arquivos que ele procura em seqncia so: /etc/hosts.allow
e /etc/hosts.deny. Eu descreverei cada um destes arquivos separadamente.
Para uma descrio completa desta facilidade, voc deve verificar a
pgina de manual apropriada (hosts_access (5) um bom ponto de partida).

O arquivo /etc/hosts.allow um arquivo de configurao do programa
/usr/sbin/tcpd. O arquivo hosts.allow contm regras descrevendo que hosts
tem permisso de acessar um servio em sua mquina.
O formato do arquivo muito simples:
# /etc/hosts.allow
#
# lista de servios: lista de hosts : comando
lista de servios
uma lista de nomes de servios separados por vrgula que esta regra
se aplica. Exemplos de nomes de servios so: ftpd, telnetd e fingerd.
lista de hosts
uma lista de nomes de hosts separada por vrgula. Voc tambm
pode usar endereos IP's aqui. Adicionalmente, voc pode especificar nomes
de computadores ou endereo IP usando caracteres coringas para atingir
grupos de hosts.
Exemplos incluem: gw.vk2ktj.ampr.org para conferir com um endereo
de computador especfico, .uts.edu.au para atingir qualquer endereo de
computador finalizando com aquele string. Use 200.200.200. para conferir
com qualquer endereo IP iniciando com estes dgitos. Existem alguns
parmetros especiais para simplificar a configurao, alguns destes so: ALL
atinge todos endereos, LOCAL atinge qualquer computador que no contm
um "." (ie. est no mesmo domnio de sua mquina) e PARANOID atinge
qualquer computador que o nome no confere com seu endereo (falsificao
de nome). Existe tambm um ltimo parmetro que tambm til: o parmetro
EXCEPT lhe permite fazer uma lista de excees. Isto ser coberto em um
exemplo adiante.
comando
um parmetro opcional. Este parmetro o caminho completo de um
comando que dever ser executado toda a vez que esta regra conferir. Ele
pode executar um comando para tentar identificar quem esta conectado pelo
host remoto, ou gerar uma mensagem via E-Mail ou algum outro alerta para um
administrador de rede que algum est tentando se conectar.
Existem um nmero de expanses que podem ser includas, alguns
exemplos comuns so: %h expande o endereo do computador que est
118
conectado ou endereo se ele no possuir um nome, %d o nome do daemon
sendo chamado.
Se o computador tiver permisso de acessar um servio atravs do
/etc/hosts.allow, ento o /etc/hosts.deny no ser consultado e o acesso ser
permitido.
Como exemplo:
# /etc/hosts.allow
#
# Permite que qualquer um envie e-mails
in.smtpd: ALL
# Permitir telnet e ftp somente para hosts locais e myhost.athome.org. au
in.telnetd, in.ftpd: LOCAL, myhost.athome.org.au
# Permitir finger para qualquer um mas manter um registro de quem
in.fingerd: ALL: (finger @%h | mail -s "finger from %h" root)
Qualquer modificao no arquivo /etc/hosts.allow entrar em ao aps
reiniciar o daemon inetd. Isto pode ser feito com o comando kill -HUP [pid do
inetd], o pid do inetd pode ser obtido com o comando ps ax|grep inetd.

O arquivo /etc/hosts.deny um arquivo de configurao das regras
descrevendo quais computadores no tem a permisso de acessar um servio
em sua mquina.
Um modelo simples deste arquivo se parece com isto:
# /etc/hosts.deny
#
# Bloqueia o acesso de computadores com endereos suspeitos
ALL: PARANOID
#
# Bloqueia todos os computadores
ALL: ALL
A entrada PARANOID realmente redundante porque a outra entrada
nega tudo. Qualquer uma destas linhas pode fazer uma segurana padro
dependendo de seu requerimento em particular.
Tendo um padro ALL: ALL no arquivo /etc/hosts.deny e ento ativando
especificamente os servios e permitindo computadores que voc deseja no
arquivo /etc/hosts.allow a configurao mais segura.
Qualquer modificao no arquivo /etc/hosts.deny entrar em ao aps
reiniciar o daemon inetd. Isto pode ser feito com o comando kill -HUP [pid do
inetd], o pid do inetd pode ser obtido com o comando ps ax|grep inetd.

O arquivo /etc/hosts.equiv usado para garantir/bloquear certos
computadores e usurios o direito de acesso aos servios "r*" (rsh, rexec, rcp,
etc) sem precisar fornecer uma senha. O /etc/shosts.equiv equivalente mas
lido somente pelo servio ssh. Esta funo til em um ambiente seguro onde
voc controla todas as mquinas, mesmo assim isto um perigo de segurana
(veja nas observaes). O formato deste arquivo o seguinte:
#Acesso Mquina Usurio
119
- maquina2.dominio.com.br usuario2
- maquina4.dominio.com.br usuario2
+ maquina1.dominio.com.br +@usuarios
O primeiro campo especifica se o acesso ser permitido ou negado caso
o segundo e terceiro campo confiram. Por razes de segurana deve ser
especificado o FQDN no caso de nomes de mquinas. Grupos de rede podem
ser especificados usando a sintaxe "+@grupo".
Para aumentar a segurana, no use este mecanismo e encoraje seus
usurios a tambm no usar o arquivo .rhosts.
O uso do sinal "+" sozinho significa permitir acesso livre a
qualquer pessoa de qualquer lugar. Se este mecanismo for mesmo
necessrio, tenha muita ateno na especificao de seus campos.
Evita tambm A TODO CUSTO uso de nomes de usurios (a no ser
para negar o acesso), pois facil forjar o login, entrar no sistema tomar conta
de processos (como por exemplo do servidor Apache rodando sob o usurio
www-data ou at mesmo o ), causando enormes estragos.

O utilitrio tcpdchk til para verificar problemas nos arquivos


hosts.allow e hosts.deny. Quando executado ele verifica a sintaxe destes
arquivos e relata problemas, caso eles existam.
Outro utilitrio til o tcpdmatch, o que ele faz permitir que voc
simule a tentativa de conexes ao seu sistema e observar ser ela ser
permitida ou bloqueada pelos arquivos hosts.allow e hosts.deny.
importante mostrar na prtica como o tcpdmatch funciona atravs de
um exemplo simulando um teste simples em um sistema com a configurao
padro de acesso restrito:
O arquivo hosts.allow contm as seguintes linhas:
ALL: 127.0.0.1
in.talkd, in.ntalkd: ALL
in.fingerd: 192.168.1. EXCEPT 192.168.1.30
A primeira linha permite o loopback (127.0.0.1) acessar qualquer servio
TCP/UDP em nosso computador, a segunda linha permite qualquer um acessar
os servidor TALK (ns desejamos que o sistema nos avise quando algum
desejar conversar) e a terceira somente permite enviar dados do finger para
computadores dentro de nossa rede privada (exceto para 192.168.1.30).
O arquivo hosts.deny contm a seguinte linha:
ALL: ALL
Qualquer outra conexo ser explicitamente derrubada.
Vamos aos testes, digitando: "tcpdmatch in.fingerd 127.0.0.1" (verificar
se o endereo 127.0.0.1 tem acesso ao finger):
client: address 127.0.0.1
server: process in.fingerd
matched: /etc/hosts.allow line 1
access: granted
120
Ok, temos acesso garantido com especificado pela linha 1 do hosts.allow
(a primeira linha que confere usada). Agora "tcpdmatch in.fingerd
192.168.1.29":
client: address 192.168.1.29
server: process in.fingerd
matched: /etc/hosts.allow line 3
access: granted
O acesso foi permitido atravs da linha 3 do hosts.allow. Agora
"tcpdmatch in.fingerd 192.168.1.29":
client: address 192.168.1.30
server: process in.fingerd
matched: /etc/hosts.deny line 1
access: denied
O que aconteceu? como a linha 2 do hosts.allow permite o acesso a
todos os computadores 192.168.1.* exceto 192.168.1.30, ela no bateu, ento
o processamento partiu para o hosts.deny que nega todos os servios para
qualquer endereo. Agora um ltimo exemplo: "tcpdmatch in.talkd
www.debian.org"
client: address www.debian.org
server: process in.talkd
matched: /etc/hosts.allow line 2
access: granted
Ok, na linha 2 qualquer computador pode te chamar para conversar via
talk na rede, mas para o endereo DNS conferir com um IP especificado, o
GNU/Linux faz a resoluo DNS, convertendo o endereo para IP e verificando
se ele possui acesso.
No lugar do endereo tambm pode ser usado a forma
daemon@computador ou cliente@computador para verificar respectivamente o
acesso de daemons e cliente de determinados computadores aos servios da
rede.
Como pode ver o TCPD ajuda a aumentar a segurana do seu sistema,
mas no confie nele alm do uso em um sistema simples, necessrio o uso
de um firewall verdadeiro para controlar minuciosamente a segurana do seu
sistema e dos pacotes que atravessam os protocolos, roteamento e as
interfaces de rede. Se este for o caso aprenda a trabalhar a fundo com
firewalls e implemente a segurana da sua rede da forma que melhor planejar.

Dentre todos os mtodos de segurana, o Firewall o mais seguro. A


funo do Firewall bloquear determinados tipos de trfego de um endereo
ou para uma porta local ou permitir o acesso de determinados usurios mas
bloquear outros, bloquear a falsificao de endereos, redirecionar trfego da
rede, ping da morte, etc.
A implementao de um bom firewall depender da experincia,
conhecimentos de rede (protocolos, roteamento, interfaces, endereamento,
masquerade, etc), da rede local, e sistema em geral do Administrador de redes,
a segurana de sua rede e seus dados dependem da escolha do profissional
121
correto, que entenda a fundo o TCP/IP, roteamento, protocolos, servios e
outros assuntos ligados a rede.
Freqentemente tem se ouvido falar de empresas que tiveram seus
sistemas invadidos, em parte isto devido a escolha do sistema operacional
indevido mas na maioria das vezes o motivo a falta de investimento da
empresa em polticas de segurana, que algumas simplesmente consideram a
segurana de seus dados e sigilo interno como uma despesa a mais.
122

O X-Window permite que o usurio execute a aplicao em uma
mquina e os resultados sejam mostrados em outra. Este recurso til
quando um usurio usando o X deseja executar uma aplicao remotamente,
sendo que a interface grfica seja apresentada no seu vdeo.

Todo servidor X possui um nome de display, no seguinte formato:
host:display.screen
O host especifica o nome da mquina em que o display est
fisicamente conectado. Se for omitido, ser assumido o localhost.
O display indica o nmero do terminal grfico, normalmente 0, mas
pode ser maior se houver mais de um terminal grfico conectado mquina.
O screen indica o nmero do monitor, e normalmente tambm 0,
podendo ser maior se houver mais de um monitor conectado ao terminal
grfico.
O gerenciador X-Window geralmente abre as aplicaes no display
indicado na varivel de ambiente DISPLAY, que por padro tem o valor :0.0.
O usurio pode mudar esta varivel se quiser que as aplicaes sejam
mostradas em um outro display:
DISPLAY=gauss.alfamidia:0.0

O servidor X-Window normalmente no aceita conexes de outras
mquinas. Se o usurio permitir que todas as mquinas da rede executem
aplicaes no seu display, estar permitindo tambm que outros usurios
possam ler o pressionamento de teclas, aes do mouse, etc. Ou seja, permitir
acesso ao display pode acarretar riscos de segurana.
A soluo autenticar as conexes, permitindo que somente
determinados usurios tenham acesso ao seu servidor X-Window. O xhost
permite acesso baseado no nome da mquina. O servidor mantm uma lista
de mquinas que tm permisso para conectar-se ao seu display.
A lista de mquinas pode ser controlada pelo programa xhost. Por
exemplo, para permitir que o resultado de um programa executado em
tales.alfamidia seja exibido em gauss.alfamidia, ou seja, que o
cliente X-Window em tales acesse o servidor X-Window em gauss, deve-se
fazer:
[aluno@gauss ~]$ xhost +tales.alfamidia
Para revogar a permisso:
[aluno@gauss ~]$ xhost -tales.alfamidia
Pode-se tambm ser desabilitar a verificao de mquinas, permitindo
que qualquer mquina da rede conecte-se ao seu display:
[aluno@gauss ~]$ xhost +
123
Isto nunca deve ser feito em uma rede onde no se confie em todos os
usurios. Para habilitar novamente a verificao:
[aluno@gauss ~]$ xhost -
Para verificar a lista de mquinas, basta usar o comando sem nenhum
parmetro:
[aluno@gauss ~]$ xhost
O xhost no um mecanismo totalmente seguro, j que no consegue
distinguir usurios diferentes em uma mesma mquina remota.

O programa cliente sabe em que display deve se conectar, atravs da
varivel de ambiente DISPLAY. Esta definio pode ser ignorada com a
utilizao do parmentro display host:display.screen na inicializao
do programa cliente.
Supondo que o usurio aluno j esteja conectado maquina tales
atravs de telnet ou ssh, e queira executar o xfontsel, com sada na
mquina local:
[aluno@tales ~]$ export DISPLAY=gauss.alfamidia:0.0
[aluno@tales ~]$ xfontsel
Ou ento:
[aluno@tales ~]$ xfontsel display gauss.alfamidia:0.0
Todo o processamento do xfontsel ser feito na mquina remota, e
apenas a interface apresentada na mquina do usurio.

Para uma lista de aplicaes que est sendo executada no display local,
use o comando xlsclients.
As aplicaes locais podem ser interrompidas especificando seu PID
(identificador do processo) ao comando kill.
As aplicaes locais ou remotas podem ser interrompidas usando o
comando xkill, que um utilitrio interativo que serve para fechar conexes
comos clientes:
[aluno@gauss ~]$ xkill
Select the window whose client you wish to kill with button 1...
Ser necessrio clicar com o boto esquerdo do mouse dentro da janela
que se deseja interromper.

1. Analise a seguinte seqncia de comandos:


[aluno@gauss ~]$ xhost +tales.alfamidia
tales being added to access control list
[aluno@gauss ~]$ ssh tales.alfamidia
password:
[aluno@tales ~]$ export DISPLAY=gauss .alfamidia:0.0
Marque Verdadeiro ou Falso nas alternativas a seguir:
a) A mquina tales pode receber conexes X de gauss.
124
b) A mquina gauss pode receber conexes X de tales.
c) Qualquer display pode ser acessado pelo usurio aluno na mquina
tales.
d) O usurio aluno pode executar aplicativos grficos localmente em
gauss.
e) O usurio aluno pode executar aplicativos grficos localmente em
tales.
2. Execute o aplicativo xfontsel remotamente, usando o ssh para logar-se
em outra mquina da rede.
3. Utilize o xkill para matar a conexo com o xfontsel do exerccio
anterior.

Potrebbero piacerti anche