Um pouco da história sobre este estudo.
Na maioria das empresas de pequeno e médio porte sempre observamos servidores físicos de aplicação com
GNU/Linux ou Windows, e diversos serviços instalados como compartilhamento de arquivos, controladores de domínio, serviços de rede e impressão, ERPs etc com um, dois ou mais links de internet visando uma maior disponibilidade de conexão, mas sem controle e segurança.
Analisando a questão da segurança da internet, existem equipamentos próprios para efetuar este controle (firewall de hardware) ou os appliance UTM "central unificada de gerenciamento de ameaças", que são equipamentos que executam várias funções de segurança em um único dispositivo (firewall, VPN, prevenção de intrusões de rede, antivírus, filtragem de conteúdo, balanceamento de carga, geração de relatórios informativos e gerenciais sobre a rede). Mas não é toda pequena ou média empresa que se dispõe a investir em um equipamento para este controle.
Pensando nesta questão, surgiu a ideia de virtualizar uma aplicação de controle de internet, integrado a um host hospedeiro ESXi com os demais serviços e aplicações da organização (virtualizados). Com isso, agregamos a segurança desejada e minimizamos os custos com hardware, energia e licenças de software.
Obs.: a virtualização de aplicações de controle de internet (serviços de UTM) não é considerada uma boa prática.
Uma das desvantagens da virtualização é se o sistema operacional hospedeiro (hypervisor) apresentar alguma vulnerabilidade, todas as máquinas virtuais que estão hospedadas nessa máquina física estão vulneráveis. Isto é considerado uma falha de segurança, principalmente se tratando de aplicações de proteção como um firewall.
Mas partindo do princípio que as máquinas virtuais podem ficar isoladas e independentes umas das outras, inclusive independente da máquina hospedeira e admitindo que não há vulnerabilidade conhecida sem correção por parte do fabricante do sistema operacional do hypervisor, a ideia de virtualizar o pfSense nos parece aceitável, uma vez que aumentamos o nível de segurança inicial e minimizamos drasticamente os custos, principalmente no que envolve a aquisição de equipamentos.
Portanto, demonstramos aqui os passos para instalação e configuração de um servidor com pfSense em um host ESXi. Neste projeto, utilizamos 2 servidores físicos, um com o Hypervisor (VMs instaladas) e outro com o FreeNAS (fileserver para o armazenamento das cópias das VMs via rede), conectado diretamente ao host ESXi via iSCSI.
Para a cópia das VMs quentes (ligadas), utilizamos o script de backup ghettoVCB.sh no host ESXi, onde nos baseamos no artigo
Backup de máquinas virtuais no ESXi 50 com script ghettoVCB, ao qual publicamos em março de 2013, uma solução simples e funcional para snapshot automatizada das VMs.
Porém, mudamos a forma de automatização da rotina de backup, implementando o agendamento da rotina diretamente no pfSense, economizando recursos de hardware do Hypervisor.
Por fim, a ideia deste texto é documentar esta solução, ao qual já utilizamos em algumas empresas, e apresentar a comunidade uma alternativa funcional, free e completa tanto para controle e monitoramento de links de internet quanto para backup de máquinas virtuais via rede em um NAS como o FreeNAS. Acreditamos que, por ser uma solução que utiliza tecnologias atuais, podemos adaptar para diversos hardwares encontrados hoje no mercado (como NAS proprietários).
Sendo assim, postamos aqui a experiência que adquirimos com este estudo/projeto.
Autor: Endrigo D. Rodriguez - endrigo.rodriguez@corbanet.com.br
Co-autor: Diego Petinelli de Jesus - info@corbanet.com.br
Equipamentos Utilizados
- Um servidor Dell PowerEdge R420 - 6 NICs 1Gbps
- Um servidor HP ML110 G7 - 2 NICs 1Gbps
- Um switch Dell PowerConnect PCT5524
- Cabeamento CAT6 (1Gbps entre os servidores)
Requisitos:
- Estar ambientado com o vSphere Client.
- Estar ambientado com a estrutura de pastas do ESXi 5.5.0 e GNU/Linux.
- Estar ambientado com a estrutura física de rede (servidores, switch, cabeamento etc).
- Ter conhecimento de operação básica em ambiente GNU/Linux (vi, ssh, chave pública/privada etc).
- Ter noções básicas de firewall.
- Ter noções básicas de virtualização.
Downloads:
1. vSphere Client: Pode ser obtido através do link abaixo, ou digitando o endereço IP do seu servidor ESXi, em seu navegador de Internet:
2. Script ghettoVCB: clique no ícone ZIP para efetuar o download do arquivo "master.zip":
Descompactar o arquivo "master.zip", gerando seis arquivos. Utilizaremos o "ghettoVCB.sh" neste tutorial. Para maiores informações sobre este pacote com scripts, favor visitar o site do desenvolvedor em:
3. FreeNAS: download em:
4. pfSense: download em:
Para um melhor estudo do assunto, usaremos as informações abaixo como base para todo o desenvolvimento do artigo:
Servidor ESXi:
Host: vmsrv
IP LAN: 192.168.1.100
Servidor FreeNAS:
Host: storage
IP: 192.168.1.200
Servidor pfSense (servidor com serviços de UTM)
Host: firewall
IP WAN: 10.1.1.2
IP LAN: 192.168.1.110 (gateway da LAN)
Modem (Internet)
IP: 10.1.1.1
Obs. 1: qualquer faixa de IP, exceto 192.168.1.0/24
Obs. 2: caso haja mais de 1 modem, deve-se atribuir os IPs em faixas diferentes e será necessário NICs adicionais no host ESXi para cada modem.
Usuário em todos os procedimentos: root