MEET
Mestrado em Engenharia de Electrónica e
Telecomunicaçãoes
IRS – Integração de Redes e Serviços
Elaborado por: Pedro Ponte 22595
IRS – Integração de Redes e Serviços
Índice de conteúdos
Introdução..........................................................................................................................3
Instalação da máquina virtual............................................................................................3
Preparar ambiente.....................................................................................................3
Criar ambiente não volátil........................................................................................4
Criar partições.................................................................................................4
Criar sistema de ficheiros...............................................................................4
Instalar ficheiros do sistema...........................................................................5
Configura o Portage........................................................................................6
Comutar para o novo ambiente................................................................................6
Actualizar o Portage.......................................................................................6
Instalar Sources do Kernel..............................................................................7
Gerar o kernel.................................................................................................7
Gerir os módulos do kernel.............................................................................7
Ficheiro fstab..................................................................................................7
Boot Loader....................................................................................................7
Informação de sistema....................................................................................8
Configuração das interfaces de rede..................................................................................8
Suporte para IPv4..............................................................................................................9
Configurar o servidor de DHCP...............................................................................9
Configurar OSPFv4................................................................................................10
Suporte para IPv6............................................................................................................10
Configurar o servidor de DHCP.............................................................................10
Configurar OSPFv6................................................................................................11
Radius..............................................................................................................................12
Configuração do Servidor......................................................................................12
Parâmetros gerais..........................................................................................13
Configuração das redes a servir....................................................................13
Utilizadores...................................................................................................13
Autenticação.................................................................................................14
Configuração do Cliente........................................................................................14
Servidor DNS..................................................................................................................15
Insatalação do servidor ..........................................................................................16
TSIG para actualização dinâmica...........................................................................16
Suporte de DDNS.........................................................................................16
Transferência de zona...................................................................................17
Ficheiros de configuração......................................................................................19
Zonas de pesquisa directa.............................................................................21
Zonas de pesquisa inversa.............................................................................22
IRS – Integração de Redes e Serviços
Introdução
A elaboração deste trabalho tem como intuito a aplicação prática de conhecimentos de
protocolos e tecnicas de redes, supostamente adquiridos em unidades curriculares
anteriores, num ambiente virtual.
O ambiente virtual foi implementado recorrendo ao VirtualBox e o sistema operativo
adoptado foi o Gentoo.
O Gentoo é uma distribuição baseada no gerenciador de pacotes portage que se baseia
em scripts bash denominados por ebuilds que são executados pela sua principal
ferramenta emerge.
Instalação da máquina virtual
O primeiro passo para a instalação da máquina virtual, que corresponde ao nosso target,
consiste em criar uma máquina virtual no VirtualBox. As características da máquina a
criar devem respeitar, no mínimo, os requisitos especificados pelo Handbook do
Gentoo, desta forma iremos criar uma máquina com 8GB de disco rígido e 512 MB de
RAM.
O passo seguinte corresponde a escolher o suporte de instalação que, de entre as várias
opções disponíveis, iremos optar por efectuar download do CD de instalação mínimo.
Dos vários mirrors disponíveis iremos escolher o IST para efectuar o download, mais
concretamente
através
do
link
http://darkstar.ist.utl.pt/gentoo/releases/x86/autobuilds/current-stage3-i686/stage3-i68620101207.tar.bz2.
Ao arrancar a máquina virtual com o suporte de instalação mínimo, este disponibiliza
uma imagem de disco que irá ser descomprimido pelo boot loader e colocado em
memória RAM, montado no sistema de ficheiros tmpfs.
Esta imagem, colocada em RAM, cria um ambiente de trabalho com os recursos
mínimos e com um caracter volátil, ou seja, se reenicializarmos a máquina esta volta ao
seu estado original.
A estratégia a seguir num ambiente de instalação destes será adicionar os recursos
adicionais e indispensáveis à instalação para se proceder à instalação de um ambiente
não volátil.
Preparar ambiente
Depois de inicializar a máquina com a imagem podemos verificar que esta não dispõe
de alguns recursos necessários à instalação pelo que teremos de os instalar.
Para instalar a interface de rede eth0 podemos recorrer ao script net-setup por forma a
termos conectividade IP. Por outro lado, se pretendermos trabalhar num ambiente mais
agradável, como por exemplo ssh, primeiro teremos de redefenir a palavra passe do
utilizador root através do utilitário passwd e iniciar o deamon sshd através do comando
/etc/init.d/sshd start.
IRS – Integração de Redes e Serviços
Depois destes procedimentos poderemos aceder à máquina através de qualquer
aplicação cliente de ssh recorrendo ao comando ifconfig para determinar o endereço IP
da interface eth0.
Criar ambiente não volátil
O passo que se se segue prende- se em criar as condições para instalação de um
ambiente não volátil da máquina.
Criar partições
As particões do sistema são um passo muito importante uma vez que vai afectar o
desempenho da máquina e depende da finalidade que se pretende dar à máquina.
Um maior número de partições irá permitir defenir o sistema de ficheiros que mais se
adequa a cada ponto de montagem e os procedimentos de verificação do sistema de
ficheiros são mais rápidos. Também se colocarmos o sistema operativo numa partição
distinta a probabilidade de o estrangular será inferior.
Para a máquina iremos particionar o disco da seguinte forma:
Partição
Sistema de ficheiros
Dimensão
Montagem
/dev/sda1 ext2
32M
/boot
/dev/sda2 swap
1024M
/dev/sda3 ext3
Restante
/root
As particções do disco, de 8GB, podem ser criadas com o utilitário fdisk indicando
como argumento da linha de comandos o disco /dev/sda, ou seja, fdisk /dev/sda.
Este utilitário disponibiliza as funcionalidades de listar, criar e eliminar particões
através das opções p, n e d respectivamente.
Para defenir a partição de boot recorre- se à opção a e selecciona- se a partição que,
sendo a primeira a criar, será a partição 1.
Para defenir uma partição swap recorre- se à opção t e selecciona- se a partição que,
sendo a segunda a criar, será a partição 2.
Para sair do utilitário e guardar a configuração gerada recorre- se à opção w.
Criar sistema de ficheiros
Depois de criar as partições é necessário criar o sistema de ficheiros nas mesmas. Tal
como consta no quadro sintese do tópico anterior, iremos criar partição /dev/sda1 com o
sitema de ficheiros ext2 e a partição /dev/sda3 com o sistema de ficheiros ext3. Este
procedimento é efectuado recorrendo ao utilitário /sbin/mke2fs indicando no argumento
a partição alvo, e no caso de ext3 terá de se indicar também a opção -j para activar a
funcionalidade de journal que caracteriza este sistema de ficheiros.
IRS – Integração de Redes e Serviços
No caso da partição swap, terão de ser invocados os utilitários /sbin/mkswap e
/sbin/swapon para inicializar e activar a partição swap (/dev/sda2).
Partição
Sistema de ficheiros
Comando
Montagem
/dev/sda1 ext2
mke2fs /dev/sda1
/boot
/dev/sda2 swap
mkswap /dev/sda2
swapon /dev/sda2
/dev/sda3 ext3
mke2fs -j /dev/sda3 /root
Instalar ficheiros do sistema
Para instalar o sitema operativo Gentoo no sistema de ficheiros anteriormente criado,
em primeiro teremos de montar as particções. Recorde- se que foram criadas duas
partições para o sistema operativo, nomeadamente /dev/sda1 que vai ser montado em
/boot e /dev/sda3 para montar em /root.
O directório raiz /boot irá ser instalada a imagem do kernel e o boot loader e os
restantes ficheiros que constituem o sistema operativo serão mantidos no directório raiz
/root.
Durante a instalação do sistema operativo os directórios raiz /boot e /root irão residir
em /mnt/gentoo por forma a manter a hierarquia FHS (Filesystem Hierarchy Standard),
que pode ser consultado em http://www.pathname.com/fhs.
Para montar as partições recorre- se ao utilitário mount indicando a partição e ponto de
montagem como argumentos da linha de comandos. Uma vez que o directório
/mnt/gentoo já está criado basta criar o directório /boot com o comando mkdir
/mnt/gentoo/boot.
Partição
Comando
Montagem
/dev/sda1
mount /dev/sda1 /mnt/gentoo/boot /boot
/dev/sda3
mount /dev/sda3 /mnt/gentoo
/root
Antes de proceder com a instalação é aconselhável acertar a data do
sistema com o utilitário date MMDDhhmmYYYY.
Para efectuar o download dos ficheiros do sistema operativo devemos colocar a linha de
comandos no directório raiz da máquina /mnt/gentoo e recorrer ao utilitário links para
seleccionar o mirror ( links http://darkstar.ist.utl.pt/gentoo/releases/x86/currentstage3/stage3-i686-20101221.tar.bz2 ).
De seguida procede- se à descompressão recorrendo ao utilitáriotar ( tar xvjpf stage3i686-20101221.tar.bz2 ). Esta desconpressão irá originar a criação do sistema de
ficheiros do target em confirmidade com a hierarquia FHS.
IRS – Integração de Redes e Serviços
Configura o Portage
O Portage é um conjunto de utilitários que visam automatizar o processo de instalação,
actualização ou desisntalação de software de forma consistente.
De seguida, à semelhança do passo anterior, iremos efectuar o download do Portage
através
do
comando
links
http://darkstar.ist.utl.pt/gentoo/releases/snapshots/current/portage-latest.tar.bz2 e
descomprimir com tar xvjf portage-latest.tar.bz2 -C /mnt/gentoo/usr/.
O Portage utiliza a variável GENTOO_MIRROS do ficheiro make.conf que está no
directório /mnt/gentoo/etc para determinar qual o mirror a utilizar. O utilitário
mirrorselect pode ser utilizado para configurar esta variável de uma forma gráfica
mirrorselect -i -o >> /mnt/gentoo/etc/make.conf.
Outra variável do ficheiro make.conf, também utilizada pelo Portage é SINC que
determina o servidor rsync utilizado para actualizar a àrvore de aplicações disponíveis
para instalação. Esta variável também pode ser configurada recorrendo ao utilitário
mirrorselect da seguinte forma:mirrorselect -i -r -o >> /mnt/gentoo/etc/make.conf.
Comutar para o novo ambiente
Antes de mudar para o ambiente que foi criado nos tópicos anteriores teremos de copiar
o ficheiro de configuração de DNS, para que a conectividade se mantenha, através do
comando cp -L /etc/resolv.conf /mnt/gentoo/etc/.
Também será necessário montar os sistemas de ficheiros /proc e /dev pois sem estes o
novo ambiente não terá autonomia para funcionar uma vez que, a título de exemplo, o
sistema de ficheiros /dev contém os device nodes e sem eles o sistema não reconhece os
periféricos da máquina. Para montar estes sistemas de ficheiros procedemos conforme o
quadro sintese que se segue:
Comando
Montagem
mount -t proc none /mnt/gentoo/proc
/proc
mount -o bind /dev /mnt/gentoo/dev
/dev
Note- se que os directórios /proc e /dev foram criados aquando a descompressão dos
ficheiros de sistema.
A comutação de ambiente é feita com o recurso ao comando chroot, que significa
change root, e consiste na mudança do directório root da consola onde estamos a
trabalhar e, consequentemente, todos os processos lançados na mesma. Desta forma,
pretende- se comutar o directório root para o directório /mnt/gentoo uma vez que foi
neste directório que montamos as partições anteriormente criadas, e após executarmos o
comando chroot /mnt/gentoo /bin/bash esta deve ser a nossa raiz ficando disponível o
sistema de ficheiros anteriormente criado. Também devem ser executados os seguintes
comandos env-update, source /etc/profile e export PS1="(chroot) $PS1".
Actualizar o Portage
Este passo consiste na aplicação prática da variável SYNC anteriormente referida e é
conseguido através do comando emerge –sync.
IRS – Integração de Redes e Serviços
Instalar Sources do Kernel
O Gentoo disponibiliza uma série de pacotes com as sources do kernel para diversas
arquitecturas com suporte para porting para arquitecturas mais específicas. Para instalar
as sources recorre- se ao comando emerge gentoo-sources.
As sources do kernel são instaladas no directório /usr/src/. Se executarmos o comando
ls /usr/src -all podemos verificar que foi criado o directório linux-2.6.36-gentoo-r5 e
um link simbólico para linux que nos permite trabalhar com versões de kernel distintas
alterando apenas o link.
Gerar o kernel
A configuração do kernel pode ser feita de uma forma manual, normalmente utilizada
para arquitecturas mais específicas, nomeadamente quando se pretende efectuar porting
do Gentoo, ou então de forma automática através do utilitário genkernel.
Para instalar o utilitário genkernel recorre- se ao comando emerge genkernel.
O
genkernel
utiliza
o
ficheiro
de
configuração
do
kernel
/usr/share/genkernel/arch/x86/kernel-config pelo que devemos disponibilizar o
ficheiro utilizado pela imagem utilizada para o arranque inicial da máquina recorrendo
ao comando zcat /proc/config.gz /usr/share/genkernel/arch/x86/kernel-config.
O comando genkernel all irá gerar a imagem do kernel e o ramdisk inicial no
directório /boot bem como os respectivos módulos no directório /lib/modules.
Gerir os módulos do kernel
Os módulos são pacotes de software que são gerados na compilação do kernel e cuja
configuração define- os como parte não integrante da sua imagem. Estes pacotes, apesar
de estarem presentes no sistema podem, ou não, ser carregados durante a inicialização
do kernel. Esta gestão é feita indicando no ficheiro /etc/modules.autoload.d/kernel2.6.
Ficheiro fstab
O ficheiro /etc/fstab é responsável por guardar informação sobre as partições ,
respectivos sistemas de ficheiros e pontos de montagem.
/dev/sda1 /boot
ext2 defaults,noatime 1 2
/dev/sda2 none
swap sw
00
/dev/sda3 /
ext3 noatime
01
/dev/cdrom /mnt/cdrom auto noauto,user
00
proc
/proc
proc defaults
00
shm
/dev/shm tmpfs nodev,nosuid,noexec 0 0
Ficheiro /etc/fstab
Boot Loader
Para as funcionalidades de boot loader iremos optar pelo GRUB pelo que para instalar
recorre- se ao comando emerge grub. O ficheiro de configuração do GRUB é
/boot/grub/grup.conf, e de seguida podemos ver o mesmo:
IRS – Integração de Redes e Serviços
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Gentoo Linux 2.6.34-r1
root (hd0,0)
kernel /boot/kernel-genkernel-x86-2.6.36-gentoo-r5 root=/dev/ram0 init=/linuxrc
ramdisk=8192 real_root=/dev/sda3
initrd /boot/initramfs-genkernel-x86-2.6.36-gentoo-r5
Ficheiro de configuração do GRUB
Informação de sistema
 Defenir palavra passe do utilizador
Recorrer ao utilitário passwd
 Configuração do layout do teclado
Defenido no ficheiro /etc/conf.d/keymaps
 Informações genéricas do sistema
Defenidas no ficheiro /etc/rc.conf
Configuração das interfaces de rede
Com vista a dar suporte à virtualização de um ambiente que nos permitisse a emulação
de um router a máquina virtual, que corresponde ao nosso target, dispõe de duas
interfaces ethernet.
A interface externa eth0 foi configurada no modo bridge por forma a utilizar a interface
do host para aceder ao mundo externo da rede. Por outro lado, a interface interna eth1,
que tem como objectivo fornecer conectividade ao host através do target, foi
configurada no modo host only.
Desta forma, se desactivarmos os protocolos TCP/IP na interface do host, o único
caminho possível entre o host e o mundo exterior é feito através do target, conseguindose um ambiente de emulação entre duas redes distintas interligadas pelo target que, por
sua vez, disponibiliza uma série de serviços indispénsáveis às redes locais actuais.
Para activar ambas as interfaces de rede no arranque da máquina deve- se criar um
symbolic link, para cada uma das interfaces, no directório /etc/init.d para o script
responsável pela inicialização das interfaces ethernet net.lo. Depois de criar os
symbolic links, estes devem ser adicionados ao default runlevel para que sejam incluidos
no processo de arranque do kernel.
cd /etc/init.d
ln -s net.lo net.eth0
ln -s net.lo net.eth1
IRS – Integração de Redes e Serviços
rc-update add net.eth0 defaul
rc-update add net.eth1 defaul
A configuração das interfaces ethernet é feita no ficheiro /etc/conf.d/net. Tal como
referido anteriormente a interface externa é eth0 e está configurada para obter endereço
por DHCP. Por outro lado, a interface interna eth1 tem endereços fixos em
conformidade com o bloco atribuido para ambas as versões IPv4 e IPv6.
config_eth0=( "dhcp" )
config_eth1=(
"10.62.203.126/28"
"2001:690:2008:cfa0::1/64"
)
Suporte para IPv4
Configurar o servidor de DHCP
Para implementar o servidor de DHCP é necessária a instalação do pacote dhcp
recorrendo ao comando emerge -av dhcp.
No ficheiro /etc/conf.d/dhcpd, mais concretamente no parâmetro DHCPD_IFACE,
defenir qual a interface que o deamon dhcpd deve atender a pedidos de DHCP, que
neste caso concreto é a interface eth1.
A configuração do deamon dhcpd é feita no ficheiro /etc/dhcp/dhcpd.conf
option domain-name-servers 193.137.220.19, 193.137.220.20;
default-lease-time 600;
max-lease-time 7200;
subnet 10.62.203.112 netmask 255.255.255.240 {
range 10.62.203.113 10.62.203.125;
#option domain-name-servers 193.137.220.20;
#option domain-name "mynet.local";
option domain-name-servers 10.62.203.126;
option domain-name "g7.lrcd.local";
option routers 10.62.203.126;
#option broadcast-address 10.62.203.127;
default-lease-time 600;
max-lease-time 7200;
}
Depois de concluida a configuração do deamon é necessário adicionar ao arranque do
kernel através do comando rc-update add dhcpd default.
IRS – Integração de Redes e Serviços
Configurar OSPFv4
O serviço OSPFv4, com vista a dar suporte de routing, foi implementado recorrendo ao
quagga, instalado com o comando emerge -av quagga.e adicionando o deamon ospfd
ao arranque do kernel com o comando rc-update add ospfd default.
A interface de configuração do quagga está acessível através da aplicação vtysh e a
sintaxe de configuração é igual à dos equipamentos cisco.
De seguida podemos visualizar o excerto da configuração do quagga referente às
configurações de OSPFv4.
localhost# show running-config
Building configuration...
Current configuration:
!
interface eth0
ip ospf message-digest-key 20 md5 mesmosimples
!
interface eth1
!
interface lo
!
router ospf
network 10.62.75.0/24 area 0.0.0.75
network 10.62.203.112/28 area 0.0.0.75
area 75 authentication message-digest
!
ip forwarding
!
line vty
!
Quagga - OSPFv4
Suporte para IPv6
Configurar o servidor de DHCP
Com vista va implementar um servidor de DHCP para IPv6 optamos por utilizar o
quagga uma vez que o pacote dhcp comporta- se de forma instavél para este tipo de
serviços.
Uma vez que o quagga não dispões de funcionalidades de servidor de DHCP, pois não
foi concebido com este intuito, a alternativa passa por recorrer à configuração stateless e
contar com o mecanismo de autoconfiguração por parte do cliente.
Do lado do cliente, este, gera um endereço link-local constituido pelo prefixo FE80 e
pelo EUI-64 gerado em função do endereço MAC da interface e junta- se aos grupos de
multicast all-nodes multicast ( FF02::1 ) e solicited-node multicast
(FF02::1:FFXX:YYZZ onde XX:YYZZ são os 3 bytes de menor peso do endereço
IPv6). Com vista a verificar a unicidade do endereço link-local envia uma menssagem
IRS – Integração de Redes e Serviços
de NEIGHBOR SOLICITATION para o solicited-node multicast com o endereço linklocal no campo target.
Num contexto de configuração stateless o deamon do quagga, ospfd6, responsável pela
componente IPv6 irá enviar periódicamente mensagens de ROUTER
ADVERTISEMENT com o prefixo da rede (2001:690:2008:CFA0::/64) para que o
cliente possa gerar um endereço IPv6 fruto da combinação deste com o endereço MAC
da interface.
De seguida podemos visualizar o excerto da configuração do quagga referente às
configurações de DHCPv6.
interface eth0
ipv6 nd suppress-ra
!
interface eth1
ipv6 nd prefix 2001:690:2008:cfa0::/64
ipv6 nd ra-interval 60
no ipv6 nd suppress-ra
Configurar OSPFv6
Para dar suporte ao OSPFv6 recorreu- se ao Quagga associando o deamon ospf6d ao
arranque do sistema, no runlevel default, através do comando rc-update add ospf6d
default e rc-update add zebra default.
O Quagga disponibiliza um ficheiro de configuração de exemplo na directoria
/etc/quagga/samples/ospf6d.conf.sample pelo que podemos copiar este ficheiro para a
directoria onde constam todos os ficheiros de configuração do Quagga (/etc/quagga/)
através
do
comando
cp
/etc/quagga/samples/ospf6d.conf.sample
/etc/quagga/ospf6d.conf.
interface eth0
ipv6 ospf6 cost 1
ipv6 ospf6 dead-interval 40
ipv6 ospf6 hello-interval 10
ipv6 ospf6 instance-id 0
ipv6 ospf6 priority 1
ipv6 ospf6 retransmit-interval 5
ipv6 ospf6 transmit-delay 1
!
interface eth1
ipv6 ospf6 cost 1
ipv6 ospf6 dead-interval 40
ipv6 ospf6 hello-interval 10
ipv6 ospf6 instance-id 0
ipv6 ospf6 passive
ipv6 ospf6 priority 1
ipv6 ospf6 retransmit-interval 5
ipv6 ospf6 transmit-delay 1
no ipv6 nd suppress-ra
IRS – Integração de Redes e Serviços
!
interface lo
!
router ospf6
area 0.0.0.75 range 2001:690:2008:cfa0::/64
interface eth0 area 0.0.0.75
interface eth1 area 0.0.0.75
!
ipv6 forwarding
Radius
Para implenetar o servidor de RADIUS vamos recorrer ao FreeRadius. A sua instalação
é feita através do comando emerge -av freeradius.
Para implementar um cenário de testes optámos configurar um router Cisco por forma a
que a autenticação via o servidor de RADIUS que está a correr no target Gentoo.
O deamon radiusd deve ser adicionado ao runn-level default por forma a que este seja
lançado automaticamente quando o target arranca com o comando rc-update add
radiusd default. Numa fase inicial, e senpre que se desejar reenicializaro deamon
recorre- se ao comando /etc/init.d/radiusd restart.
Configuração do Servidor
Os ficheiros de configuração estão localizados no directório /etc/raddb.
Ficheiro
Observações
radiusd.conf
Especificar parâmetros gerais do servidor e defenir quais os módulos a
utilizar.
clients.conf
Especificar quais as redes a servir.
eap.conf
Especificar parametrizações EAP
users
Especificar utilizadores e respectivas palavras chave.
modules/
Ficheiros de configuração dos módulos seleccionados no ficheiro
radiusd.conf.
sites-enabled/ Suporte para virtual hosting. Default é o ficheiro por defeito.
modules/
Configuração do módulos
Note- se que nas versões anteriores, onde ainda não existia suporte para hosting, a
configuração relativa ao AAA era feita de uma forma global no ficheiro radius.conf. As
versões mais recentes, como a actualmente em uso, já suportam hosting e a
configuração é feita com base nos ficheiros que constam no directório sites-enabled/ e
o ficheiro default toma efeitos para as soluções sem implementação de hosting.
Uma vez que não nos vamos debruçar com uma solução de hosting apenas será
considerado o ficheiro default.
IRS – Integração de Redes e Serviços
Para iniciar o deamon no modo debug efectuar o comando radiusd -X, caso o deamon
esteja a correr terá de ser parado.
Parâmetros gerais
Tal como já foi referido, os parâmetros gerais constam no ficheiro radius.conf.
Parâmetro
Observações
ipaddr
Endereço ip da interface onde vão ser atendidos os pedidos. * significa
todos.
port
Porta TCP/UDP. “0” significa que vão ser utilizados os valores
especificados em /etc/services (1812)
Configuração das redes a servir
A configuração das redes a servir é feita nop ficheiro clients.conf. Esta consiste em,
para cada rede a servir, especificar o parâmetro secret a utilizar. Neste caso concreto as
redes serão 10.62.203.112/28 e 2001:690:2008:CFA0::/64 para os respectivos
domínios Ipv4 e Ipv6.
client 10.62.203.112/28 {
secret
= secret
shortname
= shortname
}
client 2001:690:2008:CFA0::/64 {
secret
= secret
shortname
= shortname
}
Utilizadores
Independentemente do mecanismo de segurança a utilizar, a informação relativa aos
utilizadores (utilizador e respectiva palavra passe) é configurada no ficheiro users.
Estão disponíveis integração com outras fontes de autenticação, nomeadamente LDAP,
SQL etc, no entanto estas facilidades não irão ser exploradas.
telnet Cleartext-Password := "telnet"
#"John Doe" Cleartext-Password := "hello"
#
Reply-Message = "Hello, %{User-Name}"
IRS – Integração de Redes e Serviços
Autenticação
A autenticação é configurada activando os módulos pretendidos que implementam os
mecanismos de autenticação pretendidos. Esta secção está no ficheiro sitesenabled/default, mais concretamente na secção authenticate{ … }.
O primeiro passo para a configuração da autenticação consiste em activar os máodulos
que implementam os mecanismos de autenticação pretendidos no ficheiro sitesenabled/default. E seguidamente, configurar os respectivos módulos no directório
modules/. Neste ficheiro, podemos verificar que a secção authenticate está a enibir os
mecanismos de autenticação eap mschap chap pap e unix.
Destes iremos nos debruçar apenas nos mecanismos PAP e CHAP uma vez que os
routers cisco disponibilizados em laboratório não disponibilizamos restantes
mecanismos.
Configuração do Cliente
Na fase inicial de configuração do servidor de RADIUS, evitando- se a utilização do
router, instalamos o utilitário de testes de RADIUS NTRadPing.
De seguida podemos visualizar o output do deamon radiusd, lançado com o argumento
-X, por forma a obtermos informação de debug da sessão.
Podemos verificar que foi gerada uma sessão de autenticação utilizando o mecanismo
PAP com as credenciais telnet para utilizador e palavra passe. Uma vez que as
credenciais são descodificadas de forma correcta pelo servidor de radius podemos
IRS – Integração de Redes e Serviços
concluir que o parâmetro secret é do conhecimento de ambos os intervenientes neste
processo, pois caso contrário o servidor não seria capaz de descodificar correctamente
as credenciais e a sessão numca teria sucesso. Outro factor relevante é o facto de o
servidor, ao receber uma sessão irá percorrer os mecanismos para os quais está
habilitado pelo que o administrador tem aqui uma boa oprtunidade de preveligiar
determinados tipos de autenticação.
Outra aplicação cliente interessante é o Xsupplicant, disponível em
http://www.open1x.org/, que implementa a parte cliente (Supplicant) de 802.1x-2001.
Em http://www.tldp.org/HOWTO/8021X-HOWTO/xsupplicant.html podemos obter
informação adicional acerca da sua instalação e configuração.
De seguida podemos verificar o script de configuração do router:
###################################################
# Autenticação RADIUS
####################################################
username telnetuser privilege 15 password telnet
aaa new-model
radius-server host 10.4.1.119 auth-port 1812 acct-port 1813 key pass_radius
radius-server key pass_radius
#
aaa group server radius vpn_radius
server 10.4.1.119 auth-port 1812 acct-port 1813
aaa authentication login default local group vpn_radius
aaa authentication enable default none
aaa authentication ppp default group vpn_radius
aaa session-id common
#
line vty 0 4
login authentication default
exit
Servidor DNS
Neste capítulo iremos instalar o named que implementa um servidor DNS . Desta forma
teremos um servidor a responder de forma autoritária para a zona g7.lrcd.local e para o
nível superior da hierarquia anteriormnete referida. No entanto este será um servidor
primário apenas para a zona g7.lrcd.local, e a restante zona será transferida dos
restantes servidores que são os primários das restantes zonas da hierarquia. Para toda a
hierarquia, as respostas serão autoritárias, pela activação do bit AA nas respostas, no
entanto a hierarquia será transferoda dos respectivos servidores primários.
Outra quetão importante na configuração de um servidor DNS diz respeito à
recursividade que coresponde à habilidade de o servidor guardar em cache as zonas para
o qual não é primário nem secundário. Por norma os servidores efectuam cache das
zonas por forma a optimizar os recursos da rede e minimizar as latências no pedidos de
DNS no entanto deve- se ter o cuidade de não permitir pesquizas recursivas através do
IRS – Integração de Redes e Serviços
mundo exterior, ou seja, o servidor DNS apenas deve agir de forma recursiva na
interface interna eth1.
Insatalação do servidor
O servidor DNS será implementado através do pacote bind que distribui o named,e a
sua instalação é feita através do comando emerge -av bind.
O ficheiro de configuração do named está em /etc/bind/named.conf e as zonas estão
no directório /var/bind.
Para além do pacote bind interessa instalar o pacote bind-tools que, entre outros,
disponibiliza a ferramenta dig indispensável para o teste de um servidor de DNS.
TSIG para actualização dinâmica
O TSIG é um protocolo, defenido no RFC 2845, utilizado no DNS para implementar
autenticação e integridade nos procedimentos de actualização e transferência de zonas.
Para gerar a chave recorre- se ao utilitário dnssec-keygen especificando o algoritmo de
encriptação pretendido, a dimensão da chave e o nome do detentor da mesma:
dnssec-keygen -a HMAC-MD5 -b 64 -n HOST rndc-key
O comando anterior irá gerar dois ficheiros com as chaves privada e pública, pelo que
para visualizar a chave privada podemos recorrer ao seguinte comando:
cat Krndc-key*.private
O passo que seguinte consiste em gerar um ficheiro .key para incluir na configuração
dos intervenientes no processo de actualização
key "dhcp-dns" {
algorithm hmac-md5;
secret "SNZcOrE2zBc=";
};
Suporte de DDNS
O DDNS consiste em abilitar o servidor de DHCP a registar os endereços IP dos hosts
da rede na respectiva zona de pesquisa directa e inversa recorrendo ao protocolo TSIG
por forma a evitar eventuais registos de caracter abusivo. Para além do recurso ao
protocolo TSIG podemos acrescentar mais um nível de segurança expondo a zona, que
está abilitada a receber estas actualizações por parte do servidor de DHCP, apenas à
rede interna uma vez que na maioria dos casos o mundo externo não necessita de ter
conhecimento dos hosts da rede.
As alterações a efectuar no ficheiro de configuração do servidor de DHCP podem ser
vistas no excerto que se segue:
ddns-update-style interim;
ignore client-updates;
Include "/etc/bind/tsig.key";
subnet 10.62.203.112 netmask 255.255.255.240 {
ddns-updates on;
ddns-domainname "g7.lrcd.local";
ddns-rev-domainname "112.203.62.10.in-addr.arpa.";
IRS – Integração de Redes e Serviços
zone g7.lrcd.local {
primary 10.62.203.126;
key "dhcp-dns";
}
zone 112.203.62.10.in-addr.arpa {
primary 10.62.203.126;
key "dhcp-dns";
}
}
/etc/dhcp/dhcpd.conf
Por outro lado, no ficheiro de configuração do servidor DNS ambas as zonas, de
pesquisa directa e inversa, devem permitir as actualizações provenientes do servidor de
DHCP.
include "/etc/bind/tsig.key";
Server 10.62.203.126 {
Keys{dhcp-dns};
};
...
view "internal"
{
match-clients { trusted; };
...
zone "g7.lrcd.local" IN {
type master;
//also-notify {192.168.0.2;};
file "pri/g7.lrcd.local.internal.zone";
//allow-update { localhost; };
Update-policy {grant dhcp-dns subdomain g7.lrcd.local. A TXT;};
notify no;
};
zone "112.203.62.10.in-addr.arpa" IN {
type master;
file "pri/112.203.62.10.zone";
//allow-update { localhost; };
Update-policy {grant dhcp-dns subdomain 112.203.62.10.in-addr.arpa PTR
TXT;};
notify no;
};
};
/etc/bind/named.conf
Transferência de zona
A transferência de zonas consiste no mecanismo utilizado pelos servidores DNS para
replicarem as respectivas zonas entre os masters e slave. Este mecanismo, mais uma vez
IRS – Integração de Redes e Serviços
envolve certos riscos uma vez que um determinado slave pode ser alvo de ataques por
parte de masters não filedignos.
A formas mais simples de implementar alguma segurança na transferência de uma zona
consiste em recorrer aos parâmetros allow-transfer e masters que são incluídos no
ficheiro de configuração da zona no master e slave respectivamente. Desta forma, o
slave apenas aceita uma transferência de zona do peer especificado no parâmetro
masters.
Uma outra alternativa ao cenário anterior consiste em recorrer ao protocolo TSIG para
implementar autenticação e integridade no processo de transferência de zona. Neste
cenário o parâmetro masters, incluído no slave, tem a mexma sintaxe mas o parâmetro
allow-transfer, em vez de conter os endereços dos slaves para a zona, passa a conter a
chave ( allow-transfer { key “dns1-dns2”; }; ).
include "/etc/bind/tsig.key";
Server 10.62.203.126 {
Keys{dns1-dns2};
};
options {
...
allow-transfer{key “dns1-dns2”;};
};
view "external"
{
match-clients { any; };
zone "g7.lrcd.local" IN {
type master;
file "pri/g7.lrcd.local.external.zone";
};
};
Master - /etc/bind/named.conf
include "/etc/bind/tsig.key";
Server 10.62.203.125 {
Keys{dns1-dns2};
};
options {
...
allow-transfer{key “dns1-dns2”;};
};
view "external"
{
match-clients { any; };
zone "g7.lrcd.local" IN {
type slave
IRS – Integração de Redes e Serviços
masters { 10.62.203.125; };;
file "pri/g7.lrcd.local.external.zone";
};
};
Slave - /etc/bind/named.conf
Numa transferência de zona o slave vai efectuando polling ao master em intervais de
tempo especificado no parâmetro REFRESH do registo SOA do ficheiro da zona que
comtém os parâmetros globais para a zona. O polling consiste no envio de uma query
pedindo o registo SOA e verificando se o parâmetro SERIAL se mantém, pois caso
contrário verificaram- se alterações na zona.
Nos cenários onde as zonas sofrem alterações com alguma dinâmica, ou seja, que
ultrapassem em grande escala o valor do parâmetro REFRESH podemos recorrer aos
parâmetros notify, also-notify e notify-source para que o master envie mensagens
NOTIFY para o slave com o intuito de forcar a uma actualização.
Ficheiros de configuração
De seguida podemos vizualizar o ficheiro de configuração do servidor DNS:
include "/etc/bind/tsig.key";
Server 10.62.203.126 {
Keys{dhcp-dns};
};
acl "trusted" {
10.62.203.112/28;
localhost;
};
options {
directory "/var/bind";
// uncomment the following lines to turn on DNS forwarding,
// and change the forwarding ip address(es) :
//forward first;
//forwarders {
// 123.123.123.123;
// 123.123.123.123;
//};
listen-on-v6 { none; };
listen-on { 127.0.0.1; 10.62.203.126; };
// to allow only specific hosts to use the DNS server:
//allow-query {
// 127.0.0.1;
//};
// if you have problems and are behind a firewall:
IRS – Integração de Redes e Serviços
//query-source address * port 53;
pid-file "/var/run/named/named.pid";
allow-query { any; };
allow-recursion { trusted; };
allow-query-cache { trusted; };
dnssec-enable yes;
};
/***************************************************************
//provide recursive queries and caching for internal users
****************************************************************/
view "internal"
{
match-clients { trusted; };
zone "." IN {
type hint;
file "named.cache";
};
zone "localhost" IN {
type master;
file "pri/localhost.zone";
allow-update { none; };
notify no;
};
zone "127.in-addr.arpa" IN {
type master;
file "pri/127.zone";
allow-update { none; };
notify no;
};
zone "g7.lrcd.local" IN {
type master;
//also-notify {192.168.0.2;};
file "pri/g7.lrcd.local.internal.zone";
//allow-update { localhost; };
Update-policy {grant dhcp-dns subdomain g7.lrcd.local. A TXT;};
notify no;
};
zone "112.203.62.10.in-addr.arpa" IN {
type master;
file "pri/112.203.62.10.zone";
//allow-update { localhost; };
IRS – Integração de Redes e Serviços
Update-policy {grant dhcp-dns subdomain 112.203.62.10.in-addr.arpa PTR
TXT;};
notify no;
};
/*
zone "lrcd.local" IN {
type slave;
file "sec/lrcd.local.zone";
masters { 10.62.203.126; };
};
*/
};
/******************************************************************
//provide nom recursive dns service
*******************************************************************/
view "external"
{
match-clients { any; };
zone "g7.lrcd.local" IN {
type master;
//also-notify {192.168.0.2;};
//allow-transfer {192.168.23.1;192.168.23.2;);
file "pri/g7.lrcd.local.external.zone";
};
};
Zonas de pesquisa directa
A informação relativa às zonas é guardada nos ficheiros .zone no directório /var/bind.
Estes ficheiros contêm os diversos tipos de registos da zona.
$TTL 1W
@
IN
@
@
webmail
ns
ns
www
SOA
IN
IN
IN
g7.lrcd.local. root.g7.lrcd.local. (
2008122601 ; Serial
28800
; Refresh
14400
; Retry
604800 ; Expire - 1 week
86400 ) ; Minimum
NS
ns
MX
10
mail
CNAME mail
IN
A
10.62.203.126
IN
AAAA 2001:690:2008:cfa0::1
IN
A
10.62.203.126
IRS – Integração de Redes e Serviços
www
mail
IN
AAAA 2001:690:2008:cfa0::1
IN
A
10.62.203.126
zona g7.lrcd.local
O primeiro registo da zona é o SOA que contém os parâmetros adminstrativos da zona,
dos quais se destacam o parâmetro SERIAL para que o slave consiga verificar se a zona
se mantem intacta e REFRESH que determina ao fin de quanto tempo o slave deve
efectuar poll ao master.
NS
Definem quais os servidores DNS responsáveis por manter a zona
MX
Definem o endereço do servidor de smtp disponíveis para a zona
CNAME Definem aliases para os hosts da rede
A
Definem a relação directa entre o host e o respectivo endereço IP.
Zonas de pesquisa inversa
O ficheiro da zona de pesquisa inversa é constituido pelo registo SOA, que tem as
mensmas funcionalidades que o da zona de pesquisa directa e por registos PTR que
definem a relação directa entre os endereços IP e os respectivos hosts.
$ORIGIN .
$TTL 86400
; 1 day
112.203.62.10.in-addr.arpa IN SOA g7.lrcd.local. root.g7.lrcd.local. (
2008122604 ; serial
10800
; refresh (3 hours)
900
; retry (15 minutes)
604800 ; expire (1 week)
86400
; minimum (1 day)
)
IN
NS
localhost.
$ORIGIN 112.203.62.10.in-addr.arpa.
126.203.62.10
PTR localhost.
$TTL 300
; 5 minutes
113.203.62.10
PTR pedro-portatil.g7.lrcd.local.
zona 112.203.62.10. in-addr.arpa
IRS – Integração de Redes e Serviços
Download

Suporte para IPv6