segunda-feira, 12 de novembro de 2012

Pronatec - Aula 12/11/2012

Atividades sobre SMTP/IMAP/POP e Segurança da Informação

Link para os exercícios aqui:

Entregar até dia 13/11/2012

sexta-feira, 24 de agosto de 2012

KVM - Clonando VMs

Um dos recursos mais úteis que um administrador pode ter num ambiente virtualizado é a possibilidade de clonagem de VM's (Virtual Machines). O principal uso da clonagem é ter perfis de máquinas template para criar máquinas rapidamente, sem necessidade de passar por todo o processo de instalação e configuração do novo sistema.

Assim, um administrador que precise lidar com a criação de diversas VM's constantemente, poderá ter um conjunto de máquinas predefinidas criadas somente para dar origem às máquinas que serão solicitadas. Um detalhe importante, que alguns esquecem, é que há a necessidade de manutenção nesses templates (atualizações principalmente), para evitar a instanciação de VM's com vulnerabilidades.

A clonagem pode ser utilizada também como uma forma de backup. Clone a máquina e armazene num storage ou em fita. Em caso de pane irrecuperável numa máquinas, podemos restaurar seu clone colocando-o rapidamente em produção.

O KVM dispõe de um utilitário de clonagem bastante simples e eficiente - o comando virt-clone. Digamos que temos uma máquina chamada vm1-template e desejamos criar uma vm a partir dela, chamada vm1-producao:

virt-clone --connect=qemu:///system \
           -o vm1-template \
           -n vm1-producao \
           -f /var/lib/libvirt/vm1-producao.img


O comando acima clonará a máquina template numa nova máquina, colocando-a no diretório indicado pelo parâmetro -f.

Após o processo, teremos uma máquina exatamente igual à primeira, portanto devemos ter cuidado antes de colocá-la em rede devido à possibilidade de conflito de IP. É importante editar a configuração da máquina clonada para que ela tenha "sua própria personalidade".

Em certos casos, pode haver falha para que a máquina acesse a rede, mesmo se configurarmos corretamente o IP. No Debian, é comum precisarmos remover a regra UDEV referente ao dispositivo de redes. Processo bastante simples. Inicie a máquina clonada, logue como root e execute o comando:

rm /etc/udev/rules.d/70-persistent-net.rules


Reinicie a nova VM, configure a rede e ela deverá funcionar normalmente.

Para fazer backups automatizados, é possível criar scripts que rodem via cron em momentos de menor uso (madrugada por exemplo) e transfiram os clone-backups para um ambiente seguro.

segunda-feira, 13 de agosto de 2012

A Guerra da Maçã

Novas do front. A batalha entre a Apple e as empresas que usam o Android parece estar entrando num loop infinito [1]. A Apple, na visão de alguns analistas, está preocupada com o crescimento dos dispositivos Android e a melhora dessa plataforma e seu leque de aplicações oficiais na Google Play (antigo Google Market). Após apontar (e acionar!) seu arsenal de patentes contra a Samsung, a maçã está ampliando seu ataque a outras empresas que usam o Android, como a HTC e a Motorola. Essa atitude não passou desapercebida pelo mercado e a empresa tem sofrido críticas por sua agressividade. Críticas provenientes tanto dos concorrentes, como de defensores do software livre (que veem com bons olhos o Android) e até de clientes seus.

Alguns dados em um interessante artigo [2] trazem luz sobre o motivo dessa cruzada anti-android: segundo dados do IDC, nos últimos meses os dispositivos Android alcançaram a marca de 68% das vendas no mercado de smartphones [3]. Vale lembrar que no ano passado, os robôs tinham 46% das vendas (um salto de mais de 20% em um mercado multimilionário). Se esses dados estiverem corretos, isso faz com que o IOS fique num distante segundo lugar (17%). Ao meu ver, motivo mais que suficiente para a Apple se preocupar. Entretanto sempre considerei também que patentes são como armas de destruição em massa. Elas não atingem apenas aqueles contra quem se luta, mas uma ampla gama de inocentes. Nessas guerras de patentes, a inovação, a difusão da informação e a liberdade de conhecimento sempre saem perdendo.

[1] http://apple.slashdot.org/story/12/08/12/1946207/why-apple-is-suing-every-android-manufacturer-in-sight
[2] http://www.readwriteweb.com/mobile/2012/08/the-number-that-shows-why-apple-is-suing-every-android-manufacturer-in-sight.php
[3] http://www.idc.com/getdoc.jsp?containerId=prUS23638712

quarta-feira, 8 de agosto de 2012

Desktop no Debian 7 será Xfce

A próxima versão do Debian (7 - 'Wheezy') usará o Xfce como interface gráfica default. A razão alegada pelos desenvolvedores são as restrições de tamanho para que toda a imagem caiba em um CD. Tanto o Gnome quanto as outras interfaces continuarão na distribuição via repositórios, nos CD's adicionais, ou nas imagens em DVD/BlueRay. Em minha opinião, foi uma boa mudança. O Debian é muito mais usado em servidores que em Desktops (pelo menos até onde sei) e o Xfce alcançou um bom nível de maturidade.

Fonte: http://www.phoronix.com/scan.php?page=news_item&px=MTE1NTk

Virtualização com KVM (parte 2)

Na primeira parte desse artigo, escrevemos um breve tutorial da instalação do KVM em um sistema Fedora Linux. Essa segunda parte cobrirá a administração básica de máquinas virtuais em um ambiente com KVM.

Foi criada uma máquina virtual Debian versão 6, de 64 bits. Nessa parte vamos dar uma visão geral do console de administração virsh e realizar algumas operações de gerência, básicas mas bastante úteis.

O virsh

O virsh é um console (modo texto) onde o administrador das máquinas virtuais pode executar inúmeras operações de gerência no ambiente de virtualização: criar, iniciar, reiniciar, desligar, clonar,  (etc etc etc) máquinas virtuais, definir parâmetros como memória e processadores, área de storage, migração de vm's e muito mais. O virsh é o nirvana do KVM para qualquer administrador.

Após a instalação da vm conforme descrito na primeira parte desse artigo, execute o comando abaixo para iniciar o virsh.

$ sudo virsh --connect=qemu:///system


Console do virsh (tela inicial)

O console é um shell específico para o KVM com (muitos) comandos específicos para lidar com vm's. Os três primeiros comandos que você deve aprender são help, list e quit.

'help' (sem parâmetros) mostrará uma listagem de todos os comandos disponíveis e uma explicação rápida sobre eles.

virsh # help

Caso precise de detalhamento sobre um comando específico, basta passar esse comando como parâmetro do help:

virsh # help snapshot-create

O comand quit (obviamente) sai do console e o comando list lista todas as vm's criadas. Um detalhe: ele, por default, listará apenas as vm's em execução. As que estiverem paradas (desligadas) não serão mostradas. Para mostrar todas as vm's, execute 'list --all'.

Para iniciar uma vm, execute start <nome-da-vm>. Por exemplo, se quisermos iniciar a máquina que criamos na parte 1 desse artigo:

virsh # start debian6-vm1 

O console não iniciará automaticamente o virt-viewer. Se quiser ver o console da vm você terá de iniciá-lo explicitamente. Abra outro terminal e execute

$ sudo virt-viewer debian6-vm1

Lembre que o virt-viewer irá capturar o mouse quando você clicar nele. Para liberar o mouse, use a sequência de teclas ctrl+alt (control alt).

Para desligar uma vm, o administrador poderá logar nela e executar o desligamente explicitamente, ou poderá, no virsh, executar o comando shutdown (será necessário ter o ACPI rodando).

Com esses comandos básicos já dá para brincar bastente com a virtualização. Uma boa dica é explorar a ajuda do virsh e tentar ler documentação na Net.

Proxima parte: Clonagem e Snapshots...

sábado, 28 de julho de 2012

Virtualização com KVM

O Projeto KVM (Kernel based Virtual Machine), da empresa Red Hat, visa criar um ambiente profissional de virtualização em software livre para o universo Linux. Até pouco tempo, dispúnhamos apenas do XEN (pronuncia-se ZEN) com essas características.

O KVM é um módulo do Linux que o transforma em um hypervisor, um software que intercepta parte ou toda a comunicaçao entre o Kernel de uma máquina virtual (que comumnente roda no ring 3) e a CPU, permitindo a tecnologia da virtualizaçao.

O KVM faz uso pesado dos recursos de virtualizaçao implementados nas novas arquiteturas de CPU da Intel e AMD. Algo que está sendo chamado de HAV - Hardware Assisted Virtualization[1].

1. Instalando o KVM no Fedora

Nota inicial: não é requisito obrigatório, mas é importante que o sistema seja 64 bits. Arquiteturas de 64 bits, além de permitir um endereçamento de memória superior a 2 GB, possibilitará rodar VM's de 32 e 64 bits.

Após a instalaçao normal do sistema, verifique se hardware tem suporte a virtualizaçao:

# egrep -c '(vmx|svm)' /proc/cpuinfo


Se retornar 0, nao existe suporte de hardware a virtualizaçao. Se retornar 1 ou mais, há suporte.

Observaçao: mesmo que nao haja suporte de hardware, o KVM poderá ser instalado e executado, mas o desempenho será bem baixo.

Instale os pacotes necessários:


# yum install kvm virt-manager libvirt libvirt-python python-virtinst virt-viewer


2. Configuração Básica


Verifique se o ambiente de virtualização está funcional:


# virsh -c qemu:///system list

O comando acima deve retornar sem erros. Caso haja erros, verifique se o daemon libvirtd está rodando.

# service libvirtd status


E, se não estiver:

# service libvirtd start


3. Instalando VM's

Você deverá ter a imagem em disco do sistema operacional a instalar ou a mídia de instalação.

Colocaremos as imagens dos sistemas a instalar e as imagens dos sistemas criados no diretório /var/lib/libvirt/images/

Vamos diferenciar imagens instaláveis das imagens instaladas através do prefixo dos arquivos:

.iso - Imagem para instalação.
.img - Imagem do sistema já instalado.

Obs.: A localização das imagens e os prefixos não são padrão, apenas convenções criadas para o âmbito desse tutorial.

Nesse documento, instalaremos as imagens do Debian, versão 6. Faça o download da imagem do CD de instalação e copie o arquivo .iso para /var/lib/libvirt/images.

Inicie a instalação do SO:


# virt-install --name debian6_vm1 --ram 512 --os-type linux --os-variant debiansqueeze --disk path=/var/lib/libvirt/images/debian6_vm1.img,size=5 --vnc--cdrom /var/lib/libvirt/images/debian-6.0.5-amd64-CD-1.iso

Os parâmetros passados para a criação da máquina são explicados abaixo:

name: Nome da VM.
ram: Quantidade de RAM, em MB.
os-type: Tipo do sistema operacional (Linux, FreeBSD, Windows etc).
os-variant: Versão do SO (ver manpage do virt-install).
disk: parâmetro que permite subparâmetros relacionados ao storage:
    path: local onde a VM será armazenada e o nome do arquivo.
    size: espaço alocado para a VM, e GB.
vnc: Acesso ao console da VM via protocolo VNC.
cdrom: Dispositivo leitor de CD. Pode ser indicado um arquivo de imagem (ISO).


Caso o procedimento inicie com sucesso, um console (processo virt-viewer) será aberto automaticamente. Se não, execute o virt_viewer manualmente, passando como parâmetro o nome da VM a visualizar:

# virt-viewer debian6-vm1


Parte 2: Gerência de VM's com o virsh

Referências:
[1] White Paper: KVM - Kernel Based Virtual Machine [Red Hat]

Links:
https://help.ubuntu.com/community/KVM/Installation