MEIC - IST Tagus Segurança Informática em Redes e Sistemas 2008/2009 Trabalho 1 Implementação de uma Rede Virtual Objectivos • Implementar e testar uma rede de computadores virtual. • Analisar pacotes TCP/IP. Os trabalhos de laboratório usam uma rede virtual composta por várias máquinas virtuais suportadas pela aplicação Virtual PC da Microsoft. 1 Introdução Os trabalhos de laboratório da cadeira de SIRS fazem uso de uma rede virtual composta por várias máquinas virtuais. Essas máquinas virtuais são realizadas usando a aplicação VirtualPC. Esta aula de laboratório tem como objectivo a implementação de uma rede de computadores virtual e teste da mesma. Irá ainda ser possível analisar os pacotes TCP/IP. 2 Instalação de uma máquina virtual No directório C:\VM Magic Box SIRS de cada máquina física (ou alternativamente numa directoria com o mesmo nome numa partição D ou E do disco), existe uma imagem de um disco virtual base configurado com o sistema operativo Linux CaixaMágica. É constituído pelo ficheiro vm200708-base.vhd. Este disco virtual servirá de base para a criação das máquinas virtuais. Esta secção visa demonstrar os passos necessários para criação uma máquina virtual. 2.1 Configuração da máquina host A máquina host é a máquina física onde corre o Virtual PC. Todos os PCs do laboratório se encontram ligados em rede e configurados com endereço dinâmico usando DHCP. 2.2 Criar uma máquina virtual Crie a máquina virtual trab1-mv1 executando os passos seguintes: 1. Criar o disco virtual da máquina virtual • Start All Programs Microsoft Virtual PC. • No Virtual PC: File Virtual Disk Wizard. • No painel Disk Options seleccionar opção de criar novo disco. • Dar um nome e localização (ex. My Virtual Machines\vm1\trab1-vm1.vhd). 1 No painel Virtual Hard Disk Options seleccionar a opção Differencing para indicar que o disco virtual deve ser baseado numa imagem pré-existente. • Indicar a imagem do disco virtual base c:\VM\vm200708-base.vhd. 2. Criar a máquina virtual • Start All Programs Microsoft Virtual PC. • No Virtual PC: File New Virtual Machine Wizard. • No painel Options seleccionar Create a virtual machine. • Dar um nome e localização (ex. My Virtual Machines\vm1\trab1-vm1.vmc). • No painel Operating System seleccionar Other. • No painel Memory ajustar a memória para 64 MB. • No painel Virtual Disk Options seleccionar a opção An existing virtual hard disk e indicar o nome e localização do disco virtual criado em 1. • 2.3 Configurar e testar a máquina virtual Para configurar a máquina virtual efectuar os seguintes passos: 1. Configurar o hardware: • No Virtual PC, seleccionar a máquina virtual e pressionar Settings. • No menu Networking, escolher a interface de rede do seu host (Intel, Marvell, Realtek, etc) para que a máquina virtual fique inserida na rede a que pertence o host. • Verificar que é possível adicionar outras interfaces de rede ou alterar outros parâmetros de hardware. 2. Arrancar a máquina virtual com Start. Entrar como root (a password é inseguro). 3. Configurar a rede (interface eth0) a. Criar um ficheiro de configuração /etc/sysconfig/network/ifcfg-eth0 alterando o valor do ip e da netmask. Copie a partir do ficheiro ifcfg-eth-id-... na mesma directoria. Altere também o valor de DEVICE para eth0 ou eth1 conforme apropriado. i. Na Maquina 1, como irá ter 2 interfaces, faça uma cópia adicional para ifcfg-eth1 e remover posteriormente este ficheiros de configuração ifcfg-eth-id-.... ii. Na máquina 1, o endereçamento IP na interface eth0 é por DHCP (na eth1 é estático) b. Configurar gateway: • Eliminar a linha relativa ao endereço de rede 192.168.0.0 pois é adicionado automaticamente por ser o endereço de rede do ip da interface eth0. o Para a maquina 1, remover a linha default (pois o endereçamento é dinâmico) no ficheiro /etc/sysconfig/network/routes o Para as Maquina 2 e 3, o endereço da gateway será o ip do host local da Maquina 1. Assim, nas maquinas 2 e 3 actualizar o ficheiro /etc/sysconfig/network/routes com uma linha: default IP_Maquina_1 Interface para indicar o endereço da gateway. • Para ajuda faça man route.. Reiniciar a rede com /etc/init.d/network reload. • Verificar o ip e a tabela de routing, respectivamente, com os comandos: ifconfig e route. 4. Testar a rede: • Usar o utilitário ping (man ping) com o endereço do host. 2 • • Testar a rede no sentido inverso usando o Comand Prompt do Windows e fazer ping à máquina virtual. É ainda possível fazer ping para qualquer outra máquina do laboratório, ou para outra entidade externa (exemplo: google, ...). 3 Criar a rede virtual Implemente a seguinte rede virtual, criando mais duas maquinas virtuais de acordo com os passos seguidos anteriormente para a primeira maquina. Esta rede é composta por duas sub-redes: • Na sub-rede 172.20.34.x vão estar as máquina com Network Adapter (isto inclui todas as máquinas do laboratório). • Para a outra sub-rede será necessário usar como Network Adapter um dos outros adaptadores de loopback à escolha (ex. Local). Nota: a máquina 1 tem duas interfaces: uma ligada à rede exterior 172.20.34.x e a outra na subrede local 192.168.1.x. Para acrescentar mais uma interface será necessário fazê-lo em dois locais: • No Virtual PC, acrescentar no Network Adapter uma nova interface. • Fazer reboot da máquina virtual e verificar que passam a existir duas placas de rede. 4 Testes e Análise 4.1 Testar a rede Testar, utilizando o ping, que todas as ligações estão a funcionar. Teste que é possível às máquinas 2 e 3 fazerem ping ao host local. Para isso é necessário: • colocar como gateway a máquina 1 e reiniciar interfaces. • permitir ip forwarding: • editar o ficheiro /etc/sysconfig/sysctl e mudar IP_FORWARD para yes • carregar configurações para o kernel: /etc/init.d/boot.ipconfig restart • verificar que o valor foi actualizado (vale 1): 3 sysctl net.ipv4.conf.all.forwarding 4.2 Configurar a Gateway (Maquina 1) Após a alteração anterior os pacotes enviados pelas máquinas 2 e 3 conseguem chegar à rede mas as respostas não conseguem ser recebidas. Para que tal acontece é necessário configurar o iptables com NAT. Executem a seguinte sequência de comandos para aceder ao exterior das Máquinas 2 e 3: iptables –P FORWARD ACCEPT iptables –F FORWARD iptables –t nat -F iptables –t nat –A POSTROUTING –o eth0 –j MASQUERADE 4.3 Escutar a rede Execute o tcpdump na máquina 3 para escutar a rede local. Verifique que consegue detectar um pacote ICMP (usando o ping) com origem na máquina 1 e destino na máquina 2. Identifique no cabeçalho do pacote, o endereço ip, o endereço MAC e o tipo de protocolo. Para tal utilize o tcpdump com as opções –X e –XX. Continuando a executar o tcpdump, efectue agora uma ligação telnet entre as máquinas 1 e 2. Verifique que consegue “ler” o username usado e a password desse utilizador. Como o telnet não permite login remoto do utilizador root, utilize o utilizador fireman, com a password inseguro. 4