pfsense em Azure

pfSense é mais uma pérola do mundo open-source e oferece uma solução completa de routing, firewall e VPN, entre muitas outras capacidades.

Quando em Azure queremos usar uma solução que envolve uma pfsense, podemos usar a imagem que a Netgate nos oferece, inclusive com a possibilidade de suporte profissional.

No entanto, por questões financeiras podemos querer usar um tipo de VM mais baixo, como por exemplo a gama A0 e eliminar o custo de uso do software. Dá algum trabalho, mas a dificuldade é relativamente baixa.

Vamos precisar:
– um PC com Windows e hyper-v
– a imagem oficial da Netgate (AMD64, ISO)
– acesso a uma subscrição Azure (com pelo menos um resource group, uma storage account, uma VNET e uma subnet)

Atenção: este artigo tem objectivos meramente educativos, não sendo apropriado para ambientes em produção. Há questões de segurança que estão omissos. Pode haver mais que um método para atingir o mesmo objectivo, apenas escolhi o que achei como o mais adequado para este cenário.

Começamos por criar uma VM no nosso Hyper-v. Convém criar uma imagem o mais simples possível já que ao ser migrada para Azure vai ser necessário executar o setup de rede inicial. Deixem as configurações adicionais para depois. Também vou criar a VM com uma única interface de rede e um disco de 10GB.

Abrimos o gestor do Hyper-v e clicamos em novo -> máquina virtual:

Criei previamente uma rede do tipo externo

Iniciamos a VM e a configuração inicial:

A consola vai indicar qual o IP para aceder à pfsense:

Entramos na VM com as credenciais por definição – admin / pfsense

E executamos o wizard inicial, que basicamente é next, next, next…

Já dentro da FW temos de fazer duas alterações muito preciosas.
Vamos a System -> Advanced e activamos a consola via terminal serie:

vai permitir a consola no portal Azure

Activamos também a opção Browser HTTP_REFERER enforcement:

vai permitir o acesso via IP público do Azure

Podemos então desligar a firewall:

Por fim vamos exportar a nossa firewall para VHD, para depois fazer o upload para Azure.

Começamos por converter o disco nativo do Hyper-v de vhdx para vhd.
Clicamos nas propriedades da VM e vamos à parte do armazenamento, onde escolhemos a opção “modificar”:

Para fazer o armazenamento da nossa imagem em Azure, temos de usar uma storage account.
Criamos um blob storage para o armazenamento e aí podemos fazer upload do VHD:

Esta imagem tem um texto alternativo em branco, o nome da imagem é image-1.png

Agora vamos a Discos e criamos um Standard HDD com base no nosso VHD:

Já com o VHD no Azure é hora de criar a VM a partir do novo disco:

Clicar em Create VM

No campo “image” escolhemos o disco criado a partir do VHD e escolhemos o tamanho pretendido:

Na tab Networking ajustamos da seguinte maneira:

Podemos então clicar em Review and Create e aguardamos que a VM esteja disponível.

Ainda na barra esquerda do Azure vamos até quase ao fim, onde clicamos em Serial console:

Se tudo estiver OK, ainda na barra esquerda subimos até “Overview” e verificamos qual o IP publico que a nossa FW tem:

Basta aceder por browser e desfrutar da nossa nova FW em Azure:


Cumprimentos!