Instituto Superior de Engenharia de Lisboa. Índice



Documentos relacionados
Departamento de Engª de Electrónica e das Telecomunicações. Engº Pedro Ribeiro. Aluno nº José Camacho Aluno nº Floriano Silva

Desenvolvendo Websites com PHP

Universidade Católica de Brasília Pró-reitoria de Graduação Curso de Ciência da Computação

Licenciatura em Eng.ª Informática Complementos de Redes - 3º Ano - 2º Semestre. Trabalho Nº 4 - VoIP

Entendendo como funciona o NAT

Instituto Superior Politécnico Gaya Escola Superior de Ciência e Tecnologia

Autoridade de Certificação de uma infraestrutura de chave pública (PKI).

Bases de Dados. Lab 1: Introdução ao ambiente

Redes de Computadores. Guia de Laboratório Configuração de Redes

UM dos protocolos de aplicação mais importantes é o DNS. Para o usuário leigo,

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

Configurando DNS Server. Prof. Armando Martins de Souza

VM Card. Referência das Definições Web das Funções Avançadas. Manuais do Utilizador

Configuração de um servidor DNS. Campus Cachoeiro Curso Técnico em Informática

Introdução a Banco de Dados

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco

Manual do GesFiliais

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo

Curso de Pós Graduação em Redes de Computadores. Módulo Laboratório de Linux Apostila 2. Serviço DNS

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

CONFIGURAÇÃO DO ACESSO REMOTO PARA HS-DHXX93 E HS-DHXX96

Impressão do Manual do Utilizador

Manual de Administração Intranet BNI

EIC. Projecto I. Manual do Utilizador. Vídeo Vigilância Abordagem Open Source. Curso: Engenharia de Informática e Comunicações Ano Lectivo: 2005/2006

Generated by Foxit PDF Creator Foxit Software For evaluation only. Capitulo 1

Software Adobe DreamWeaver. Requisitos para criar aplicações Web

Configurando servidor de DNS no CentOS O Domain Name System Sistema de Nomes de Domínio é de fundamental importância em uma rede.

Acronis Servidor de Licença. Manual do Utilizador

Realizado por: Fábio Rebeca Nº6. Iuri Santos Nº8. Telmo Santos Nº23

Apontamentos do livro de AI Linux. 1.5 Modo texto e modo gráfico

ACRONIS BACKUP AND RECOVERY 10 SERVER FOR LINUX

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Linux Caixa Mágica 14. Como Gravar um Live CD. Julho 2009 Versão 1.1

No Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:

Sistema Operacional Unidade 12 Comandos de Rede e Acesso Remoto

Data de Aplicação. Rede Local e Segurança Informática Básica

Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas.

Curso de extensão em Administração de sistemas GNU/Linux: redes e serviços

Instalando e Configurando o DNS Server

Servidores Virtuais. Um servidor à medida da sua empresa, sem investimento nem custos de manutenção.

Usando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak

Curso Profissional de Técnico de Gestão e Programação de Sistemas Informáticos. Sistemas Operativos - 2º Ano

Manual de Instalação Solução Alinex Salas TIC Pág. 1/32

SugarCRM, Integração com Produtos IPBrick iportalmais

DNS Parte 2 - Configuração

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

Formador: Paulo Ramos IGRI13: Rui Bárcia Nº15. Windows 2008 Server. Módulo 16. Instalação e configuração

GlobalPhone - Central Telefónica. Manual de Configuração do ATA SPA3102 Linksys

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Comunicação de Dados de Autenticação e Credenciais de Acesso para Resposta ao Inquérito

UDPcast Clonagem de HDs via rede utilizando

First Step Linux. Instalação do VirtualBox Para instalar o software VirtualBox siga os seguintes passos :

LEARNING NETWORK MANAGER 2007 MANUAL DE INSTALAÇÃO

UM PBX GENUINAMENTE BRASILEIRO

Bases de Dados. O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo ilustrada na figura 1.

INTRODUÇÃO: 1 - Conectando na sua conta

ZS Rest. Manual Avançado. Instalação em Rede. v2011

Configure seu Linux pela Web! Instalação à partir de um.tar.gz. Autor: Carlos Eduardo Ribeiro de Melo <eduardo at unisulma.edu.br> Data: 05/10/2004

Guia do Administrador de Licenças de Usuários Autorizados do IBM SPSS Modeler

Roteiro 3: Sistemas Linux arquivos e diretórios

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Aloque 1024 MB de RAM para a VM. Crie um novo disco virtual. Figura 03. Figura 04.

1. O DHCP Dynamic Host Configuration Protocol

No VirtualBox, carregar no Botão Novo (New), que irá abrir o Assistente de Criação de Máquina Virtual para criar uma nova VM.

GlobalPhone - Central Telefónica. Manual de Configuração do ATA SPA2102 Linksys

Guia Rápido de Instalação Ilustrado

Requisitos para a Federação de um serviço web. Serviço Utilizador RCTS Janeiro de 2010

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

Módulo 6: Linguagem de Programação IV 6.1. Introdução 6.2. Bases de Dados Visão Estrutural SGBD: Sistema de Gestão de Bases de Dados

DNS - Domain Name System

Redes de Computadores. Trabalho de Laboratório Nº8

SAFT para siscom. Manual do Utilizador. Data última versão: Versão: Data criação:

Programação SQL. Introdução

Configuração de DNS em Windows Servidor 2008

PHC dcontroldoc. O acesso a diversos tipos de ficheiros

- O MySQL para além da sua utilização em modo linha de comandos, também pode ser utilizado através de ferramentas gráficas.

Recuperando o GRUB após instalação do Windows

DNS Linux. Rodrigo Gentini

---- Webdbpro Manual de implementação

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

Disciplina: Unidade V: Prof.: Período:

Organização do Curso. Instalação e Configuração. Módulo II. Pós Graduação em Projeto e Gerencia de Redes de Computadores

Guia de instalação UEG Linux LTS

Data de Aplicação 2/04/2009

Download. Instalaça o. Geral

Orientação a Objetos

Actualização para a IPBrick v de Setembro de 2014

Curso de Instalação e Gestão de Redes Informáticas

Prof. Samuel Henrique Bucke Brito

Apresentação de SISTEMAS OPERATIVOS

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

Realizado por: Fábio Rebeca Nº6. Iuri Santos Nº8. Telmo Santos Nº23

Instalando e Configurando o DNS Server

Novo Formato de Logins Manual de Consulta

Tarefa Orientada 2 Criar uma base de dados

Linguagem SQL Sub-linguagem DDL

Transcrição:

Linux Gentoo Solution Engº Pedro Ribeiro Departamento de Engª de Electrónica e Telecomunicações e de Computadores SECÇÃO DE REDES E TELECOMUNICAÇÕES Instituto Superior de Engenharia de Lisboa Integração de Redes e Serviços (IRS) Aluno nº 17230 José Camacho Aluno nº 32178 Floriano Silva 08/09

Índice Índice... 2 Objectivos... 4 Instalação do Sistema Operativo... 5 Interligação rede virtual e rede real... 5 Configurações VmWare da máquina virtual... 5 Instalação do sistema operativo usando o guia disponibilizado no site do gentoo:... 6 Configuração das interfaces de rede... 7 Configuração da interface de arranque... 7 Resultado da configuração da interface net.eth0 e routing associada... 7 Configuração das propriedades de arranque da interface de rede... 7 Manipulação das facilidades disponibilizadas pelo ficheiro /etc/conf.d/rc... 8 Activação do SSH... 9 Instalação e preparação dos discos e partições... 10 Diferenças entre as drives suportadas pelos Hard Disks drives... 11 IDE drives... 11 SCSI drives... 11 Associação do file system a cada partição... 12 Instalação e upgrade do portage e stage3... 13 O que é o Portage?... 13 Criação do ficheiro com a indicação dos pontos de montagem do File System Structure em /etc/fstab... 19 Configuração das opções de arranque da rede... 20 Configuração do Boot Loader (default grub)... 21 Arquitectura lógica para o trabalho prático... 22 Configurações testadas sem sucesso... 22 Mysql & Bind & DLZ & PHPMyAdmin... 23 Ferramenta para gerir, em ambiente web, o servidor DNS... 25 Configuração Final... 27 Implementação lógica Versão intermédia... 27 Implementação lógica Versão Final... 28 Página 2 de 50

Servidor Autoritário... 28 Apache... 28 PHP... 29 DLZ... 30 PostgreSQL... 31 Ant... 33 BIND Outras Configurações... 38 Segurança... 39 Servidor Forwarder... 42 BIND Configurações... 43 Segurança... 44 Funcionamento do software AntDNS... 44 Zonas... 44 Tlds... 45 Registos numa zona... 45 Dados de um registo... 46 SOA (Start Of Authority)... 47 Inserção de registo... 47 Testes Efectuados... 48 Conclusão... 49 Bibliografia e Links úteis... 50 Página 3 de 50

Objectivos Pretende-se nesta cadeira que seja executada a instalação de um conjunto de serviços, numa rede corporativa, baseados em software Open Source. O sistema operativo escolhido é Linux, Gentoo. A sua instalação é baseada na documentação disponibilizada no site www.gentoo.com. Os serviços disponibilizados pelo nosso grupo baseiam-se numa solução de DNS, usando um dos mais conhecidos servidores de DNS, o BIND. O trabalho que nos foi atribuído refere-se à implementação de dois servidores DNS: um autoritário, que disponibilize a criação de uma solução DNS para as redes locais do laboratório, e um Forwarder, que encaminhe os pedidos conforme as necessidades para os servidores primários correspondentes. Página 4 de 50

Instalação do Sistema Operativo Interligação rede virtual e rede real Arranque com a imagem mínima adquirida de um mirror e com a interface eth0 da máquina virtual VM Ware em modo bridge e dhcp activo, de forma que a placa de rede adquira um endereço da mesma gama da subnet da interface real do sistema operativo (máquina física). Fig. nº 1 Como podemos verificar a virtual bridge interliga a rede real à rede virtual em modo bridge, usando o adaptador virtual virtual bridge, o adaptador virtual da máquina virtual liga-se ao host computer permitindo o acesso à LAN, usada pela máquina real. Uma rede em modo bridge configura a nossa máquina virtual como uma única identidade, separada do host computer que está agregada. Para tal, a máquina necessita da sua própria identidade, endereço IP. Para evitar o overlaping de ips, com a configuração de um ip estático, usamos o dhcp server dhcpcd do sistema operativo. Desta forma adquirimos um endereço IP, automaticamente. Configurações VmWare da máquina virtual Arranque com a imagem mínima que fizemos download livecd-i686-installer-2008.0-r1.iso, conforme figura 2. Fig. nº 1 Página 5 de 50

Instalação do sistema operativo usando o guia disponibilizado no site do gentoo: Fig. nº 2 Na instalação do Gentoo 1 seleccionamos o teclado keymap pt e em alternativa usamos o comando loadkeys pt-latin1, problema ultrapassado com o arranque pelo disco e colocação no ficheiro /etc/conf.d/keymaps das configurações referidas abaixo. KEYMAP="pt" KEYMAP="pt latin1" KEYMAP="pt latin1 nodeadkeys" 1 http://www.gentoo.org/doc/en/handbook/handbook x86.xml Página 6 de 50

Configuração das interfaces de rede Configuração da interface de arranque Fig. nº4 Configuração da interface de arranque para usar o DHCP do ISEL usando o comando net-setup eth0 Seleccionamos unicamente a detecção das configurações de rede e atribuição de IP através do DHCP. Resultado da configuração da interface net.eth0 e routing associada Fig. nº 3 - Resultado da configuração da interface net.eth0 Configuração das propriedades de arranque da interface de rede Enquanto estávamos a trabalhar sobre o live CD tivemos algumas dificuldades em manter as configurações de uma aula para a seguinte, não podiamos usar o rc-update que cria um symbolic link para o ficheiro de arranque /etc/conf.d/net. Por exemplo, para a interface eth0 é criado um symbolic link entre este ficheiro e a interface /etc/init.d/net.eth0. Página 7 de 50

Manipulação das facilidades disponibilizadas pelo ficheiro /etc/conf.d/rc Fig. nº 4 Neste caso não temos a mesma informação de debug porque não activamos a flag RC_VERBOSE=no. Fig. nº 5 Como podemos verificar, activando a flag RC_VERBOSE=yes no ficheiro /etc/conf.d/rc, temos uma melhor percepção da negociação e activação da interface eth0. Deixamos os Página 8 de 50

restantes parâmetros por default, inclusive a interface eth0. Verificamos ainda que o ficheiro rc contém as configurações de arranque de rede. Activação do SSH Fig. nº 6 Activação do ssh para acesso remoto com activação da Hostkey, DSA-HostKey e RSA- HostKey, passamos a trabalhar através uma CommandLine ssh ligada à nossa máquina virtual. O SSH (Secure Shell) permite que os dados sejam trocados através de um canal encriptado entre dois computadores. O SSH usa criptografia de chaves públicas para autenticar o computador remoto e fornece um meio seguro de transferência de dados pela Internet. O SSH é usado principalmente como um substituto do telnet, para fazer login num servidor e executar comandos, mas também suporta encapsulamento, tunneling e transmissão. Torna-se, assim, ideal para transferências de arquivos seguras (STP), MySQL e PostgreSQL em ligações remotas, assegura SVN (Subversion) como repositório e acesso, etc. Quadro nº 1 - AS vantagens do uso do SSH em vez do telnet Página 9 de 50

Fig. nº 7 O dhcpd está activo e a receber as configurações correctas. Verificámos quais os servidores de dns que estamos a usar em /etc/resolv.conf, no caso de necessitarmos usar a máquina virtual noutra rede, teremos de alterar os dns, por exemplo pelos da telepac (para quem possuir um acesso sapo adsl). A placa de rede foi detectada mesmo sem usar o comando modprobe pcnet32 que carrega o driver VMnet0. Instalação e preparação dos discos e partições Verificámos que não conseguimos criar as partições com o comando fdisk /dev/sda, mas sim com o comando fdisk /dev/hda pela razão do disco usado não ser SCSI. Fig. nº 8 - Criação das partições do sistema Na realidade o VMWare permite-nos seleccionar discos rígidos SCSI ou IDE, com as limitações inerentes ao sistema operativo que pretendemos usar. No caso do nosso sistema operativo suportar as interfaces suportadas pela IDE/ATA ou SCSI, a opção deve recair sobre qual a finalidade que pretendemos dar à nossa máquina, necessidade de interfaces e quanto estamos dispostos a gastar. Página 10 de 50

Fig. nº 9 2 - Lado Esq: Imagem Original Western Digital Corporation Lado Direito:Imagem Original Seagate Technology Diferenças entre as drives suportadas pelos Hard Disks drives IDE drives Não é o ideal para Hosting (armazenamento de sites); É mandatário uma boa placa RAID ; Não é ideal elevadas transferências de dados como a SCSI; Tem limitações de escalabilidade e são usadas geralmente em configurações de RAID 0+1; É prática para servidores HTTP, desde que o site não tenha grandes necessidades de consultas e execução de scripts. SCSI drives Têm acessos mais lentos e superiores throughputs ; Usam menos o CPU no acesso; Suporta uma configuração do RAID5; Não ideal em hosting com uma unidade por canal; Tem melhor desempenho para bases de dados, é dirigido a sites de tráfego elevado porque processa mais pedidos I/O por segundo. 2 Figura retirada do site www.storagereview.com Página 11 de 50

Associação do file system a cada partição Fig. nº 10 - Associação do file system à partição /dev/hda1 Fig. nº 11 - Associação do file system à partição /dev/hda3 Página 12 de 50

Fig. nº 12 - Criação da partição swap e activação da mesma Fig. nº 13 - Montagem das partições Instalação e upgrade do portage e stage3 O que é o Portage? O portage é um sistema gestor de pacotes padrão utilizado pelo GNU/LINUX GENTOO, é um sistema flexível, por isso é referido como uma metadistribuição devido à sua capacidade de gerir diversos sistemas operativos. O portage é um conjunto de ferramentas entre elas o emerge que resolve dependências enquanto o ebuild compila e instala. Página 13 de 50

Fig. nº 14 - Instalação do stage3 e portage Fig. nº 15 - Selecção do mirror (mais próximo) Página 14 de 50

Fig. nº 18 - Alteração do portage para a última versão emerge --sync Fig. nº 19 - Verificação da existência do perfil default Página 15 de 50

Fig. nº 20 - DownLoad do Portage & Stage3 e check do portage com o md5 Fig. nº 21 - Change root e alteração do ambiente de trabalho Página 16 de 50

Fig. nº 22 - Carregamento das fontes GENTOO Fig. nº 23 - Invoking menuconfig para selecção do processador, filesystems, etc..(deixamos todas opções por default) Página 17 de 50

Fig. nº 24 - Compilação do kernel Fig. nº 25 No make.conf não instalámos os módulos de raiz através da selecção dos módulos desejados, embora fosse uma opção usando a flags em USE= gnome dvd.... A utilização passa pelo aprofundamento do uso de cada FLAG USE 3, de acordo com as necessidades que são apresentadas. 3 Como pode ser observado em: http://www.gentoo.org/dyn/use-index.xml Página 18 de 50

Optamos pelo comando genkernel para gerar o nosso kernel emerge kernel Copiamos do CD o kernel config zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6 Carregamos o kernel genkernel all Verificação da criação do kernel image e initrd ls /boot/kernel* /boot/initramfs* Quadro nº 2 - Opções utilizadas na geração do kernel Criação do ficheiro com a indicação dos pontos de montagem do File System Structure em /etc/fstab. Fig. nº 26 - Este ficheiro indica onde os file systems são montados e que opções tomamos na sua montagem, ex: montagem automática ou não. Página 19 de 50

Configuração das opções de arranque da rede No ficheiro /etc/conf.d/net. Optamos apenas por adicionar à interface eth0 ao startup runnning config com o comando rc-update add net.eth0 default. Fig. nº 27 Optamos por não fazer alterações no ficheiro /etc/conf.d/net, apenas deixamos o uso do dhcp para aquisição do endereço IP. Fig. nº 28 - Alteração do keymaps para pt-latin1 Definição do teclado # nano -w /etc/conf.d/keymaps Instalação do Crontab # emerge vixie-cron # rc-update add vixie-cron default Quadro nº 3 - Alguns comandos usados Página 20 de 50

Configuração do Boot Loader (default grub) Fig. nº 29 - Usamos o bootloader default grub para arranque do kernel visto termos o nosso kernel compilado e configurado. Rebooting # exit cdimage ~# cd cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo cdimage ~# reboot Quadro nº 4 - Reboot do sistema Página 21 de 50

Arquitectura lógica para o trabalho prático A ideia para elaboração do trabalho prático consistia no planeamento, pesquisa e implementação de uma solução que proporcionasse a capacidade de resolução de nomes, armazenamento de dados DNS numa base de dados (uma das lacunas do software de resolução de nomes BIND), disponibilização de uma interface de gestão web com autenticação e utilização de uma solução segura que protegesse os dados de autenticação. Na figura 30, é apresentada a ideia inicial para a implementação da solução. Fig. 30 Percepção inicial do trabalho que nos foi atribuído Configurações testadas sem sucesso Foram testadas diversas combinações de software, com o objectivo de satisfazer os requisitos apresentados para o trabalho prático. No entanto, foi verificada alguma dificuldade em conseguir encontrar aplicações Web que interagissem sem levantar questões de ordem técnica. Após ser colocada em funcionamento uma solução que integrava Mysql, Bind e DLZ não foi conseguida a integração com uma ferramenta de gestão de ambiente Web. Apesar Página 22 de 50

disso, tendo em vista a utilização para futuras pesquisas resolvemos incluir essa parte no nosso relatório. Mysql & Bind & DLZ & PHPMyAdmin Foi pensado ter como backend de base de dados o software mysql. Ficando implementado no ficheiro de configuração do BIND as configurações para as tabelas onde estão configuradas as definições do DNS. Esta implementação foi executada e colocada a funcionar, sendo devidamente testada no que diz respeito a resolução de nomes, no entanto não foi possível preencher o requisito de administrar, via web, o servidor autoritário. Foram ainda feitas algumas tentativas de integrar uma ferramenta de gestão web, conforme mencionado posteriormente neste relatório, sem sucesso. Serão descritas as configurações efectuadas, que não pertencem à versão final. Acções desenvolvidas para a configuração: net-dns/bind dlz mysql activação das flags dlz e mysql no bind. Esta configuração foi efectuada no ficheiro etc/portage/package.use ; Emerge av bind - reinstalação do Bind; Rc-update -a mysql default, /etc/init.d/mysql restart efectuada configuração do mysql para iniciar automaticamente; Configuração do mysql para responder às necessidades do Bind: mysql -u root p iniciar o mysql; CREATE DATABASE dnsauth; - criação da base de dados; CREATE USER 'dnsauth'@'localhost' IDENTIFIED BY 'grupo05'; - criação do utilizador para aceder aos recursos; GRANT ALL ON dnsauth.* TO ' dnsauth'@'localhost' IDENTIFIED BY 'grupo05'; - permissões para o utilizador criado aceder à base de dados criada; CREATE TABLE `records` ( `id` int(10) unsigned NOT NULL auto_increment, `zone` varchar(255) NOT NULL, `ttl` int(11) NOT NULL default '86400', `type` varchar(255) NOT NULL, `host` varchar(255) NOT NULL default '@', `mx_priority` int(11) default NULL, `data` text, `primary_ns` varchar(255) default NULL, `resp_contact` varchar(255) default NULL, `serial` bigint(20) default NULL, `refresh` int(11) default NULL, `retry` int(11) default NULL, `expire` int(11) default NULL, `minimum` int(11) default NULL, PRIMARY KEY (`id`), KEY `type` (`type`), KEY `host` (`host`), KEY `zone` (`zone`) ); - criação da tabela que recebe os registos DNS; INSERT INTO `records` (`id`, `zone`, `ttl`, `type`, `host`, `mx_priority`, `data`, `primary_ns`, `resp_contact`, `serial`, `refresh`, `retry`, `expire`, `minimum`) VALUE (10, 'lrcd.local', 43200, 'SOA', '@', NULL, NULL, 'ns.lrcd.local.', 'postmaster.lrcd.local.', 2007121802, 3600, 900, 3600000, 43200); - inserção do registo Start Of Authority na tabela; INSERT INTO `records` (`id`, `zone`, `ttl`, `type`, `host`, `mx_priority`, `data`, `primary_ns`, `resp_contact`, `serial`, `refresh`, `retry`, `expire`, `minimum`) VALUE (11, 'lrcd.local', 43200, 'NS', '@', NULL, 'srv.lrcd.local.', NULL, NULL, NULL, NULL, NULL, NULL, NULL); - inserção do registo que identifica o servidor DNS; INSERT INTO `records` (`id`, `zone`, `ttl`, `type`, `host`, `mx_priority`, `data`, `primary_ns`, `resp_contact`, `serial`, `refresh`, `retry`, `expire`, `minimum`) Página 23 de 50

VALUE (301, 'lrcd.local', 43200, 'A', 'irs05', NULL, '10.64.74.11', NULL, NULL, NULL, NULL, NULL, NULL, NULL); - inserção de um registo de teste; CREATE TABLE `xfr` ( `zone` varchar(255) NOT NULL, `client` varchar(255) NOT NULL, KEY `zone` (`zone`), KEY `client` (`client`) ); - tabela adicionada à base de dados criada; Para que o Bind consiga utilizar a estrutura criada no mysql, é necessário efectuar algumas configurações em named.conf. Segue de seguida o código com as inserções efectuadas: PHPMYADMIN Foi instalado o software PHPMYADMIN 4, com a intenção de executar a administração das bases de dados MySQL instaladas. Ao instalar o software é necessário instalar as dependências apresentadas, conforme figura 31. Fig. 31 Emerge do phpmyadmin Também houve a necessidade de instalar o software PHP com algumas flags activas: ctype, pcre, session, Unicode, mysql or mysqli (caso seja utilizada a versão dev-lang/php-5). Podemos verificar a instalação na figura 32. 4 phpmyadmin é um ferramenta opensource desenvolvida em PHP, voltada para a administração do MySQL. phpmyadmin suport uma variedade de operações nas bases de dados que administra, sendo todas as operações mais frequentes suportadas. Página 24 de 50

Fig. 32 Instalação do php com as flags necessárias activas. Ferramenta para gerir, em ambiente web, o servidor DNS Após testar a implementação (mencionada no ponto anterior) com sucesso, o grupo de trabalho iniciou a pesquisa de um ambiente web que fosse integrável com o software já instalado e com o software DLZ. De seguida, são apresentadas algumas aplicações testadas ou estudadas que não foram implementadas com sucesso. Simple Management to BIND (SMBIND) 5 ferramenta baseada em php que faz a gestão de zonas DNS para o BIND com interface web. Suporta administração de diferentes zonas por diferentes administradores, verificação de erros e bases de dados. Esta ferramenta pressupõe a instalação e configuração de uma nova base de dados dedicada ao smbind. O objectivo seria configurar a aplicação para a base de dados existente (dnsauth) e configurada para o DLZ. Desta forma, foi opção abandonar o SMBIND e pesquisar outro software que preenchesse os requisitos; MySql Bind 6 - este software disponibiliza uma base de dados MySql em backend para o BIND 9. Normalmente o BIND é configurado com ficheiros de configuração complexos, e difíceis de manter, em domínios grandes existindo maiores probabilidades de erro. O Bind também necessita de reiniciar, a cada alteração efectuada. Este software passa por cima destas limitações, através da permissão de o servidor DNS ler directamente numa base de dados MySql. No entanto este software também necessita de criar/configurar a sua base de dados, sendo a integração com o DLZ uma tarefa complexa. Desta forma esta opção também foi abandonada; Bind DLZ on Rails 7 A utilização de DLZ permite a utilização de bases de dados em servidores de backend. Isto simplifica a gestão de milhares de zonas, e disponibiliza 5 Conforme http://bobcares.com/index.php/blog/?p=31, onde está descrita a forma de instalar e configurar o software. 6 Conforme http://mysql bind.sourceforge.net/index.php, que apresenta informação sobre a aplicação. 7 http://www.opensourcery.co.za/bind dlz on rails/, onde podemos ver informação sobre o software. Página 25 de 50

redundância própria na estrutura de base de dados disponibilizada. Esta aplicação iria permitir utilizar a estrutura, já existente do DLZ, e disponibilizar a interface web para gestão do servidor. Na instalação não foi detectado o ficheiro /tmp/mysql.sock, mencionado na figura 33. Após algum esforço efectuado na tentativa de resolução do problema, foi abandonada esta opção. Fig. 33 Erro durante a instalação do Bind DLZ on Rails. Página 26 de 50

Configuração Final Implementação lógica Versão intermédia No início foi entendido que os dados do servidor autoritário deveriam estar protegidos, foram feitos esforços no sentido de implementar essa situação. Essa é a solução que é apresentada na figura 34, onde um cliente que esteja na rede tendo o DNS Fw ou o servidor DNS do ISEL configurado nas definições de rede, todos os pedidos são respondidos através do DNS Fw. Esta solução estava configurada, dado o servidor autoritário só aceitar pedidos do IP do DNS Forwarder. Fig. 34 Versão intermédia, que apresentava o forwarder disponível para o mundo. Página 27 de 50

Implementação lógica Versão Final A solução final aponta para uma solução onde temos os servidores do ISEL a falar directamente com o servidor autoritário, detentor da informação relativa às zonas dos grupos de trabalho. Chegou se à conclusão que apresentar a informação para o mundo é uma solução mais realista, quando comparada com a anterior. ISEL DNS Auth DNS Fw G1 G2 G3 GN Fig. 35 Versão final, onde o servidor disponível para responder aos queries é o servidor autoritário. Servidor Autoritário Apache Frequentemente referido simplesmente como Apache, é um Web Server Open Source de domínio público. A sua primeira versão foi baseada no NCSA httpd Web Server, desenvolvido em 1995.O nome é um tributo à tribo (Apache) de índios nativos Americanos, tribo essa bem conhecida pela resistência e habilidades na arte da guerra. Existe o erro comum de confundir que o nome Apache vem do código NCSA com a aplicação de vários patches (patchy server), Apache Server. O Desenvolvimento do núcleo do Apache Web Server foi efectuado por um grupo de 20 programadores voluntários, chamado o Apache Group. Contudo, dado que o código fonte está disponível de forma gratuita, pode ser adaptado a vários tipos de necessidades, existindo uma grande biblioteca (pública) de add-ons. Em muitos aspectos, o Página 28 de 50

desenvolvimento do Apache pode ser comparável ao desenvolvimento do Sistema Operativo Linux. A versão original foi escrita para UNIX, mas actualmente existem versões para OS/2, Windows e outras plataformas. O serviço Apache HTTP Server, inicialmente, foi configurado da seguinte forma: emerge av apache comando para efectuar a instalação do software: Fig. 36 Instalação inicial do apache. /etc/init.d/apache2 restart, rc-update -a apache2 default automatização do serviço; Adicionada flag (APACHE2_OPTS="-D PHP5 ) ao ficheiro do apache, existente em /etc/conf.d/apache2. Restart ao daemon do apache; PHP A linguagem surgiu por volta de 1994, como um pacote de programas CGI criados por Rasmus Lerdof, com o nome Personal Home Page Tools, para substituir um conjunto de scripts Perl que ele usava no desenvolvimento da sua página pessoal. Em 1997 foi lançado um novo pacote, com o nome de PHP/FI, incorporando a ferramenta Forms Interpreter, um interpretador de comandos SQL. Mais tarde, Zeev Suraski desenvolveu a versão de PHP 3, orientada a objectos. Pouco depois, Zeev e Andi Gutmans, escreveram o PHP 4, tendo a versão 3 ficado para trás. No entanto, esta versão apresentava uma lacuna: a manipulação de cópias de objectos, dado a linguagem ainda não funcionar com pointers ou handlers, como por exemplo a linguagem Java. A versão actual do PHP (5), já trabalha com handlers. Caso exista uma cópia de um objecto, o que realmente acontece é a criação de um apontador para a versão original. Esta situação não acontecia na versão PHP 4. PHP é uma linguagem modular, o que a torna ideal para instalação e configuração em servidores web. A Wikipédia funciona sobre um software inteiramente escrito em PHP, usando bases de dados MySQL: o MediaWiki. A utilização de bases de dados com o PHP é simples, apresentando suporte para a mais comuns no mercado. Foi necessário instalar o PHP e as dependências apresentadas na seguinte imagem: Fig. 37 Instalação do software PHP. Posteriormente o PHP necessitou de ser reinstalado com a flag de postgres activa: Fig. 38 Flags existentes para instalação no ficheiro portage.use Página 29 de 50

Instalados os pacotes PEAR-MDB2 8 e PHP com a flag xml activa: Fig. 39 Reinstalações de software necessárias para instalação de novos componentes. Instalado pacote Smarty 9, que foi apresentado como requisito, figura 40. Fig. 40 Informação dada após instalação do Smarty. Fig. 41 Características do Smarty. Foi necessário reinstalar o software PHP com a flag postgres activa. DLZ O software mais utilizado na Internet para disponibilizar resolução de nomes é o BIND, existindo há muitos anos e sendo alvo de muitas revisões. No entanto apresenta alguns atributos que podem ser considerados desfavoráveis : A leitura dos dados DNS é feita de ficheiros de texto. A edição destes ficheiros pode corromper ou danificar, deixando de ser legível para o BIND; BIND armazena todos os dados DNS na RAM. Se o DNS é autoritário para um largo número de zonas, poderá ser necessário reconstruir o kernel para responder às necessidades de memória apresentada pelo BIND; 8 PEAR MDB2 é um misto de PEAR DB e as camadas de Matabase PHP. Disponibiliza uma API comum para todas as RDBMS suportadas. A principal diferença para outros DB abstraction packages é que um pacote MDB2 vai muito mais longe para assegurar portabilidade. 9 Smarty é um motor de templates para o PHP. Mais especificamente, facilita a gestão entre a lógica de aplicação, e o seu conteúdo, da sua apresentação. Muito útil em situação em que o template designer e o programador da aplicação são papéis diferentes. Página 30 de 50

O BIND analisa todas as zonas ao iniciar. Na existência de um largo número de zonas poderá ser uma tarefa lenta; Se qualquer alteração é efectuada nos ficheiros das zonas, é necessário recarregar ou efectuar restart ao BIND, antes que as alterações surtam efeito. Outro meio de manter as zonas é através da utilização de scripts. Os dados são armazenados numa base de dados, e são utilizados scripts para criar as zonas. O BIND é depois reiniciado. Esta solução retira a preocupação das zonas, mas continua a requerer largas quantidades de memória e necessidade de reiniciar diversas vezes. DLZ (Dynamically Loadable Zones) pode ser considerado um patch para a versão 9 do BIND, que simplifica a sua administração, reduz as utilizações da memória e do tempo gasto no início. DLZ permite que os dados de uma determinada zona sejam armazenados numa base de dados. As alterações na base de dados são imediatamente reflectidas nas respostas do Bind às queries efectuadas, não existindo a necessidade de recarregar as zonas nem efectuar restart ao BIND, sendo efectuado um carregamento dinâmico da zona necessária para responder ao query. Fica salientado que o DLZ não é um servidor DNS, mas sim uma aplicação que é instalada e que utiliza as funcionalidades do BIND. O principal objectivo é a flexibilidade, dado suportar uma variedade de bases de dados (PostgreSQL, MySQL, Berkeley DB, ODBC, Firebird, DB2, Oracle, Sybase, SAPDB) and LDAP. Não é imposto um schema de base de dados pré definido. Não são retiradas quaisquer capacidades ao BIND, podem continuar a existir zonas em ficheiros e zonas em bases de dados. PostgreSQL PostgreSQL 10 é um sistema relacional de gestão de base de dados que foi desenvolvido desde 1977. Começou como sendo um projecto, chamado Ingres, na Universidade da California at Berkeley. Em 1986 outra equipa continuou o Desenvolvimento do código do Ingres para criar uma base de dados relacional, chamada Postgres. Em 1996, durante uma novo esforço de melhoria das funcionalidades do software, Postgres foi renomeado para PostgreSQL. Este projecto ainda está debaixo de um enorme esforço de desenvolvimento, através de uma equipa de programadores open source espalhado pelo mundo. PostgreSQL é considerado o mais avançado sistema de base de dados, open source, do mundo. Disponibiliza muitas funcionalidades, normalmente acedidas através de produtos com finalidade comercial. Como ferramenta open source, pode ser alterado o código com a finalidade de preencher requisitos específicos. A título de curiosidade, ficam aqui alguns valores relacionados com as capacidades do PostgreSQL: O tamanho máximo de base de dados não está limitado, o tamanho máximo de uma tabela está limitado a 32TB. Instalação do PostgreSQL 11 Através do comando emerge, conforme figura 42. 10 http://www.faqs.org/docs/ppbook/c208.htm 11 Conforme http://www.gentoo.org/doc/en/postgres howto.xml Página 31 de 50

Fig. 42 Instalação do software PostgreSQL. Iniciar o daemon que permite ao serviço de base de dados estar disponível: /etc/init.d/postgresql start; Configuração do postgres para iniciar automaticamente com o iniciar do sistema operativo: rc-update add postgresql default; Configurações durante a instalação do postgres: o Criação de utilizadores e bases de dados necessárias para a implementação do AntDns: Utilizador: dns Pw:dns; Administrador Postgres: user postgres pw- postgres; Base de dados DNS: dnsdb; Foi criada a directoria /home/www/ant/docs (com o user root) e alteradas as correcções ao ficheiro include/def.php, ver figura 43; Fig. 43 Configurações iniciais no def.php da ferramenta ANT. Foram criadas as tabelas na base de dados de acordo com o schema.sql do antdns, que é apresentado sobre a forma de um ficheiro que é carregado no postgres. Para o DLZ conseguir utilizar o BIND é necessário alterar no ficheiro named.conf, de acordo com a indicação em baixo, as permissões foram alteradas para permitir o acesso à base de dados descrita anteriormente: dlz "lrcd.local" { database "postgres 2 {host=/tmp dbname=dnsdb user=dns} {SELECT 'TRUE' FROM canonical WHERE content = '%zone%' limit 1} {SELECT ttl, type, priority, data FROM record, canonical WHERE content = '%zone%' AND host = '%record%' AND zone = domain} {} {SELECT ttl, type, host, priority, data FROM record, canonical WHERE zone = domain AND content = '%zone%'} {SELECT 'TRUE' FROM xfr, canonical WHERE zone = domain AND content = '%zone%' Página 32 de 50

}; AND client = inet '%client%'}"; No bind foi necessário activar a flag do postgres, sendo necessário reinstalar novamente o software. Ant Ant 12 disponibiliza uma interface de gestão, com algumas limitações, para a combinação de software BIND-DLZ. Actualmente Ant somente suporta PostgreSQL, no entanto é referido que com alguma interacção por parte do utilizador é possível suportar outras bases de dados. Na página do software, as indicações apresentadas para a instalação são apresentadas no seguinte parágrafo: If you're knowledgeable enough to manage a nix server, you should be well able to install Ant. To be brief, after creating the user and the database, all that remains is to insert the schema and to alter the "include/def.php" accordingly. Mind you, placing the Ant php files in a directory readable by apache does increase its usability. Associado às indicações, acima mencionadas, estava o trecho de código a colocar no named.conf: dlz "postgres zone" { database "postgres 2 {host=/tmp dbname=database user=user} {SELECT 'TRUE' FROM canonical WHERE content = '%zone%' limit 1} {SELECT ttl, type, priority, data FROM record, canonical WHERE content = '%zone%' AND host = '%record%' AND zone = domain} {} {SELECT ttl, type, host, priority, data FROM record, canonical WHERE zone = domain AND content = '%zone%'} {SELECT 'TRUE' FROM xfr, canonical WHERE zone = domain AND content = '%zone%' AND client = inet '%client%'}"; }; A ferramenta apresenta o seguinte esquema de tabelas. 12 Informação retirada do site do software: http://antdns.sourceforge.net/ Página 33 de 50

Esquema de tabelas da ferramenta AntDNS: Fig. 44 Esquema de tabelas da ferramenta AntDNS. Código para criar o esquema referido anteriormente: tld CREATE TABLE tld ( tid serial unique NOT NULL, extension character varying(20) NOT NULL ); ALTER TABLE ONLY tld ADD CONSTRAINT tld_pkey PRIMARY KEY (tid); CREATE UNIQUE INDEX tld_extension_index ON tld USING btree (extension); Esta tabela é uma lista de possíveis extensões de domínio de alto nível. O nome das zonas está separado desta informação, permitindo uma diferente utilização por parte dos programadores. zone CREATE TABLE "zone" ( zid serial unique NOT NULL, name character varying(255) NOT NULL, tld integer NOT NULL, comment text DEFAULT '' ); ALTER TABLE ONLY "zone" ADD CONSTRAINT zone_id_pkey PRIMARY KEY (zid); CREATE UNIQUE INDEX zone_name_tld_index ON "zone" USING btree (name, tld); ALTER TABLE ONLY "zone" ADD CONSTRAINT "$1" FOREIGN KEY (tld) REFERENCES tld(tid); Esta tabela guarda todos os domínios registados no nosso servidor DNS primário, apenas contendo o nome sem o tld. Uma chave estrangeira refere-se à tabela tld. Para assegurar a integridade dos dados, caso seja removido um registo tld todas as zonas que utilizem o registo são eliminadas. record CREATE TABLE record ( rid serial unique NOT NULL, host character varying(255) DEFAULT '@'::character varying, "zone" integer NOT NULL, Página 34 de 50

ttl integer DEFAULT 21600, "type" character varying(5), priority character varying(5) DEFAULT ''::character varying NOT NULL, data text NOT NULL, created timestamp with time zone DEFAULT now(), updated timestamp with time zone DEFAULT now(), CONSTRAINT record_type CHECK (((((((((((((("type")::text = 'A'::text) OR (("type")::text = 'AAAA'::text)) OR (("type")::text = 'CNAME'::text)) OR (("type")::text = 'HINFO'::text)) OR (("type")::text = 'MBOXFW'::text)) OR (("type")::text = 'MX'::text)) OR (("type")::text = 'NAPTR'::text)) OR (("type")::text = 'NS'::text)) OR (("type")::text = 'PTR'::text)) OR (("type")::text = 'SOA'::text)) OR (("type")::text = 'TXT'::text)) OR (("type")::text = 'URL'::text))) ); ALTER TABLE ONLY record ADD CONSTRAINT record_pkey PRIMARY KEY (rid); CREATE INDEX record_type_index ON record USING btree ("type"); CREATE INDEX record_host_zone_index ON record USING btree (host, "zone"); ALTER TABLE ONLY record ADD CONSTRAINT "$1" FOREIGN KEY ("zone") REFERENCES "zone"(zid) ON DELETE CASCADE; Todos os dados da resolução de nomes estão armazenados nesta tabela. Existem os hostnames e os dados associados. Uma chave estrangeira refere-se à zona associada. O procedimento de integridade dos dados procede-se da mesma forma, se uma zona é eliminada todos os registos dessa zona também o são. canonical CREATE TABLE canonical ( cid serial unique NOT NULL, "domain" integer NOT NULL, content text NOT NULL, FOREIGN KEY ("domain") REFERENCES "zone"(zid) ON DELETE CASCADE ); ALTER TABLE ONLY canonical ADD CONSTRAINT canonical_pkey PRIMARY KEY (cid); CREATE UNIQUE INDEX canonical_content_index ON canonical USING btree (content); Nas primeiras versões do software, esta tabela não aparecia no schema. Os dados existentes, normalmente, causam redundância nos dados. No entanto por questões de rapidez, existem nesta tabela a concatenação entre a tld e a zona. xfr CREATE TABLE xfr ( xid serial unique NOT NULL, "zone" integer NOT NULL, client cidr NOT NULL, FOREIGN KEY ("zone") REFERENCES "zone"(zid) ON DELETE CASCADE ); ALTER TABLE ONLY xfr ADD CONSTRAINT xfr_pkey PRIMARY KEY (xid); CREATE UNIQUE INDEX xfr_zone_client_index ON xfr USING btree ("zone", client); Página 35 de 50

Esta tabela apresenta as zonas que permitem a transferência para determinados clientes. É permitido especificar o nome do servidor que corre como servidor secundário para o domínio. Numa fase inicial, para colocar a ferramenta AntDNS a funcionar, foram executadas as seguintes configurações: Colocado um alias Alias /ant /var/www/localhost/htdocs/ant-0.2b, no ficheiro /etc/apache2/vhosts.d/default_vhost.include; Modificado o ficheiro /etc/hosts (127.0.0.1 localhost IRS-GRUP-ID01CB); A directoria ant-0.2b foi colocada em /var/www/localhost/htdocs ; Utilizou-se o comando etc-update : Fig. 45 Comando etc-updade. Configuração do ficheiro existente em: /var/www/localhost/htdocs/ant- 0.2b/include/def.php, conforme figura 46. Página 36 de 50

Fig. 46 Alteração final do ficheiro def.php da ferramenta AntDNS. Após as configurações mencionadas, nos diversos pontos anteriores, foi feita uma tentativa de aceder à interface web. O resultado esteve um pouco longe do aguardado (conforme figura 47). Verificou-se que os ficheiros php do ANT estavam em formato DOS. Foi necessário instalar uma ferramenta que executasse a transformação dos ficheiros que se encontram em formato DOS para formato UNIX. Foi instalado o package dos2unix, conforme figura 48. Fig. 47 Resultado da primeira tentativa de aceder ao software. Fig. 48 Ferramenta que altera os formatos DOS para UNIX. Página 37 de 50

Para fazer a alteração mencionada anteriormente foram efectuados os seguintes passos: Pesquisa de todos os ficheiros com extensão.php, na pasta ant-0.2b, e sua posterior actualização, com recurso à ferramenta instalada anteriormente; Fig. 49 Pesquisa de todos os ficheiros php e posterior transformação para unix. Foi necessário Reinstalar o PEAR-MDB2:emerge -av dev-php/pear-mdb2 Foi necessário mudar o owner da pasta include/compile: chown apache: compile Nesta fase foi testada a inserção de um registo para verificação da resolução de nomes no servidor autoritário, conforme figura 50: Fig. 50 Inserção de um registo com o software AntDNS. Fig. 51 Resolução do host através do servidor configurado. BIND Outras Configurações O servidor autoritário aponta só para o seu IP como servidor resolver. Esta configuração é efectuada no ficheiro resolv.conf. Fig. 52 Ficheiro resolv.conf do servidor autoritário. Página 38 de 50

No ficheiro /etc/named/named.conf são efectuadas as configurações que permitem preencher os requisitos apresentados para o trabalho, nomeadamente o servidor DNS autoritário estar disponível para responder a pedidos de qualquer fonte (listen-on-v6 { any; }; listen-on { any; };). Foi adicionado o código necessário para conseguir aceder à base de dados para manipulação dos dados, figura 53. Fig. 53 Código inserido no ficheiro named.conf, permitindo a utilização do parch DLZ. Segurança Foram efectuadas configurações no ficheiro /etc/named/named.conf com a finalidade de disponibilizar segurança no serviço de DNS. recursion no; Servidor Autoritário 13 não deve permitir recursividade, alteração efectuada em named.conf; allow-query {any; }; foi configurado para permitir querys de todas as origens; allow-transfer {none; };Não são permitidas transferências deste servidor para outros destinos. Autenticação nativa do Apache 14 com suporte SSL. Foram executadas as seguintes acções: Verificação do apache com as flags ssl e auth_basic ; Foi criado o ficheiro de passwords, em /var/www/localhost/passwords, e adicionado um novo user: irs05 pw:irs05. Ver figura 54. Fig. 54 Criação de um utilizador no ficheiro /var/www/localhost/passwords. O ficheiro de configuração do Apache encontra-se em: /etc/apache2/httpd.conf. As configurações efectuadas podem ser observadas na figura 55. 13 Informação retirada de http://oreilly.com/catalog/dns4/chapter/ch11.html 14 Conforme documentação em http://httpd.apache.org/docs/1.3/howto/auth.html#basicconfig e http://httpd.apache.org/docs/2.0/howto/auth.html Página 39 de 50

Fig. 55 Configuração da autenticação para aceder à directoria do Ant. Com as configurações atrás descritas, para aceder à directoria /var/www/localhost/htdocs/ant- 0.2b passou a ser necessário introduzir credenciais válidas. No entanto podemos pensar que qualquer pessoa que consiga aceder fisicamente à máquina ou efectuar um ataque em que está a visualizar o que passa pela rede pode, com facilidade, saber qual o login e password a introduzir. O ficheiro onde estão residentes os dados que permitem autenticação, apresenta a password cifrada. A segunda questão obriga-nos a implementar o protocolo SSL para troca de informação de forma segura. Fig. 56 Password cifrada.. Para disponibilizar implementação SSL,foi necessário trabalhar nos ficheiros existentes na directoria: /etc/apache2/vhosts.d. De seguida são descritas as acções efectuadas para configurar a utilização de SSL: Foi criado um novo ficheiro que dá suporte ao SSL: /etc/apache2/vhosts.d/default_vhost2.include que recebe o conteúdo existente anteriormente em /etc/apache2/vhosts.d/default_vhost.include. Neste ficheiro é introduzido Alias /ant /var/www/localhost/htdocs/ant-0.2b, que permite aceder à directoria existente somente com o endereço http://10.62.75.105/ant ; O ficheiro que existe no sistema (/etc/apache2/vhosts.d/default_vhost.include), por defeito, recebe um redireccionamento: RedirectMatch.* https://10.62.75.105/ant, que redireccionará todos os pedidos para o endereço 10.62.75.105 na porta 443; O ficheiro 00_default_ssl_vhost.conf foi alterado para efectuar o include do novo default_vhost2.include, conforme figura 57. Caso nao acontecesse esta alteração, não seria possível aceder à aplicação. Existiria um ciclo, em que era feito redirect para SSL, mas o SSL apontava para o default_vhost.include. Fig. 57 Configuração do ficheiro 00_default_ssl_vhost.conf, para apontar para o novo ficheiro de include. Página 40 de 50

Com a intenção de verificar se realmente a password não estava a ser passada em claro, foi verificado com o live http headers 15 (conforme figura 58) do browser mozzila e com o wireshark 16. Fig. 58 Output da ferramenta live http headers quando é inserida a autenticação. Para evitar ataques do tipo man-in-the-midle deve ser adicionado o certificado fornecido, figura 59. Desta forma se alguma vez recebermos um certificado diferente para a mesma página, temos a certeza que houve alguma alteração. Fig. 59 Certificado. 15 Ferramenta que é instalada e permite a visualização dos headers HTTP e correspondente informação. 16 Wireshark é um sniffer de pacotes, para aplicações de computador, gratuito. É muito utilizado na resolução de problemas, análise, protocolos de comunicação e educação na área da informática. Página 41 de 50

Servidor Forwarder Dada a necessidade de criar um servidor forwarder para encaminhar a resolução de nomes, foi opção efectuar uma cópia do servidor autoritário, o que implica algumas alterações na máquina virtual.alterações na placa de rede, que após efectuadas deram origem à configuração da placa de rede que pode ser vista na figura 60: Eliminada placa de rede na nova máquina; Adicionada nova placa de rede; Editado o ficheiro: /etc/udev/rules.d/70-persistent-net.rules (onde foi eliminada a linha onde estava o eth0 e renomeado o eth1 para eth0); Foram aplicados, como root, os seguintes comandos: o Rmmod pcnet32 o Rmmod vmxnet o modprobe pcnet32 o dmesg o /etc/init.d/net.eth0 restart Fig. 60 Configuração da placa de rede do servidor forwarder. Na imagem do servidor autoritário existe software que não é necessário. Assim, uma das tarefas executadas foi a desinstalação do seguinte software: PostgreSQL; Mysql; PHP; APACHE; ANTDNS; Foram desinstaladas as seguintes pacotes do bind: Dlz; Mysql; Postgres; Página 42 de 50

Fig. 61 Reinstalação do Bind para desinstalar os pacotes não utilizados. BIND Configurações O ficheiro resolv.conf (figura 62) foi alterado para enviar pedidos de resolução aos servidores do ISEL e ao servidor autoritário, descrito neste relatório. Para não ser substituída, a cada reboot, esta configuração foi alterado o ficheiro em /etc/conf.d/net, com a seguinte opção: dhcp_eth0="release nodns". Assim não serão introduzidos no resolv.conf os servidores DNS disponibilizados pelo DHCP. Fig. 62 resolv.conf do servidor forwarder. No ficheiro named.conf foram indicados os servidores DNS do ISEL como forwarders, figura 63. Também foi inserida a indicação de que qualquer pedido para a zona g5.lrcd.local, o pedido é encaminhado para o servidor autoritário implementado, figura XXXX. Fig. 63 Configuração no named.conf. Página 43 de 50

Fig. 64 Configuração no named.conf. Segurança Servidor Forwarder 17, configurado para aceitar pedidos somente da rede do laboratório. Configuração efectuada no named.conf, allow-query {10.62.75.0/24;}, foi testado o acesso da rede 10.64.75.0/24 e não houve resolução de nomes. Funcionamento do software AntDNS Zonas Em linguagem de redes, uma zona 18 é um ficheiro texto que descreve uma parte do DNS e que é denominado por zona DNS. Esta zona contém informação que define os mapeamentos entre nomes do domínio e endereços IP ou outros recursos, organizados sobre a forma de Resource Records (RR). O formato da zona está definido no RFC 1034. Foi inicialmente utilizado no software BIND, mas tem vindo, ao longo dos anos, sendo adoptado por outros softwares DNS.No formulário da figura 65 podemos observar o formulário que nos mostra as zonas existentes. Poderão ser inseridas novas zonas ou eliminadas as existentes. Fig. 65 Formulário de administração de zonas. 17 Informação retirada em http://oreilly.com/catalog/dns4/chapter/ch11.html 18 Informação mais detalhada em: http://en.wikipedia.org/wiki/zone_file Página 44 de 50

Tlds Podem ser adicionadas as extensões que depois serão escolhidas para as zonas a inserir. Fig. 66 Formulário de administração das tlds. Registos numa zona Cada zona recebe um conjunto de registos para permitir a resolução de nomes. Numa zona terá que existir pelo menos um registo do tipo SOA. Fig. 67 Inserção de registos numa zona. Página 45 de 50

Dados de um registo Podem ser configurados os dados de um determinado registo DNS, conforme figura 68. Os tipos de registos podem ser observados na mesma figura. Fig. 68 Administração/Inserção de uma zona. Página 46 de 50

SOA (Start Of Authority) Registo que apresenta parâmetros para uma determinada zona. Somente um registo deste tipo é permitido por zona. Considerado não só o mais crítico, mas também o mais complexo registo de uma zona, contém o root name da zona, os valores TTL, a classe de registos e o servidor primário ou Master Domain Name Server da zona. Fig. 69 Formulário de administração do registo SOA. Inserção de registo Os dados necessários para a inserção de um determinado registo podem ser observados na figura 70. Fig. 70 Inserção de um registo numa determinada zona. Página 47 de 50

Testes Efectuados Foram criados dois clientes, um com as configurações da placa de rede a apontar para o servidor DNS Forwarder, 10.62.75.107, (Figura 71), configurado durante o trabalho, e outro a apontar para o servidor DNS do ISEL, 193.137.220.20, (Figura 72). Fig. 71 Cliente com o DNS local configurado Fig. 72 Cliente com o DNS do ISEL configurado. Página 48 de 50

Conclusão O objectivo inicial de disponibilizar uma solução que respondesse aos requisitos apresentados no início, foi alcançado. Para atingir essa meta foram necessários: investigação e estudo de diversos sistemas e seu funcionamento, não esquecendo a necessidade de efectuar testes de integração entre os mesmos. É de realçar que as ferramentas open source utilizadas e testadas se apresentam como uma alternativa válida às ferramentas de carácter comercial, existentes no mercado. Página 49 de 50

Bibliografia e Links úteis BIND 9 Administrator Reference Manual http://www.gentoo.org/doc/en/handbook/2007.0/handbook-x86.xml http://www.gentoo-wiki.info/howto_setup_a_dns_server_with_bind http://en.gentoo-wiki.com/wiki/howto_setup_bind_with_dlz,_mysql_and_replication http://bind-dlz.sourceforge.net/mysql_driver.html http://www.gentoo-wiki.info/ http://www.gentoo-wiki.info/howto_setup_a_dns_server_with_bind http://www.gentoo-wiki.info/bind#named.conf http://bobcares.com/index.php/blog/?p=31 http://mysql-bind.sourceforge.net/ http://www.opensourcery.co.za/bind-dlz-on-rails/ http://www.postgresql.org/ http://www.gentoo.org/doc/en/postgres-howto.xml http://www.faqs.org/docs/ppbook/c208.htm http://oreilly.com/catalog/dns4/chapter/ch11.html http://httpd.apache.org/docs/1.3/howto/auth.html#basicconfig http://httpd.apache.org/docs/2.0/howto/auth.html Página 50 de 50