OPNsense - Firewall Open Source



 
OPNsense é um projeto de firewall open source baseado no FreeBSD (versão LTS 10.2), surgiu como fork do PFsense (que por sua vez vem do m0n0wall) e tem como foco uma plataforma de roteamento/firewall com diversos serviços agregados, fácil de usar e configurar.

OPNsense inclui a maioria dos recursos disponíveis em firewalls comerciais, e em muitos casos, possui bem mais ferramentas do que algumas soluções pagas oferecem. Seu nome vem de "OPeN (referindo-se a Open Source) make sense", Open Source faz sentido.


O conjunto de recursos de OPNsense inclui recursos high-end, como proxy de encaminhamento cache, traffic shaping, detecção de intrusão, OpenVPN. A última versão é baseada em FreeBSD 10.1 para apoio a longo prazo e usa um MVC-quadro recém-desenvolvido com base em Phalcon.


OPNsense traz alguns recursos de segurança interessantes como por exemplo a possibilidade de escolher usar o LibreSSL ao invés do OpenSSL (escolha disponivel na inteface web dele, o OpenSSL esteve envolvido em diversos alarmes de segurança e casos de invasão, quando surgiu o LibreSSL, porém muitos ainda usam o OpenSSL).

Alguns recursos do OPNsense:
     Traffic Shaper
    Captive portal
        VSuporte a voucher
        Gerenciamento de Templates
        suporte a Multi zone
    Forward Caching Proxy
        Transparent mode supported
        Blacklist support
    Virtual Private Network
        Site to site
        Road warrior
        IPsec
        OpenVPN
        Legacy PPTP support
    High Availability / Hardware Failover
        Configuration synchronization e synchronized state tables
        Traffic Shaping
    Intrusion Detection e Inline Prevention
        Build-in support for Emerging Treats rules
        Simple setup by use of rule categories
        Scheduler for period automatic updates
    Build-in reporting and monitoring tools
        System Health
        Packet Capture
    Suporte para plugins
    DNS Server / DNS Forwarder
    DHCP Server and Relay
    Dynamic DNS
    Backup / Restore
        Backup encriptado para o Google Drive
        historico de configurações aplicadas (diff)
        Local drive backup & restore
    Stateful inspection firewall
    Granular control over state table
    802.1Q VLAN support

Dentre diversos outros recursos...



Requisitos do hardware:

Bare (usando versão nano para hardware embarcado)
1GHz single core cpu
512 MB RAM
4 GB SD ou flash card
console serial ou video

Instalação padrão - hardware minimo (versão ISO)
1GHz dual-core cpu
1 GB RAM
40GB SSD/HDD
console serial ou video

 

Versionamento - Nome

O OPNsense usa os 2 digitos finais do ano e os digtos relativos ao mês para nomear suas versões.
A versão mais recente no desenvolvimento deste artigo era a "OPNsense 16.1" (Janeiro de 2016).


Pfsense versus OPNsense

Alguns recursos que o tornam diferente do projeto pfsense:
  • As ferramentas foram completamente reescrita a partir do zero.
  • OPNsense é um pacote que pode ser instalado no FreeBSD (você pode instalar o opnsense via pkg numa distro FreeBSD ou baseada nela, ou usar a ISO padrão disponibilizada no site oficial).
  • O processo de atualização do firmware é feito com pkgng.
  • Captive portal foi reescrito e não faz uso de patches de kernel.
  • Novos recursos têm sido implementadas com uma estrutura clara.
  • Interface moderna em Bootstrap, fácil de criar e personalizar.

Nas palavras de Jos Schellevis: "(...) Com mais de 5000 commits e vários milhões de linhas de código do projeto agora tem sua própria identidade e faz escolhas diferentes do que seu projeto pai. Para citar alguns adotamos o framework Phalcon MVC para todos os novos recursos, um sistema de atualização de firmware - que provou funcionar muito bem - e uma moderna interface de usuário. (...)"
A versão estável, em produção, provou-se capaz em funcionamento com diferentes cenários, desde proteger redes de escritório a uma solução de datacenter disponibilizando VPNs e soluções de roteamento para os clientes.

Um dos maiores reconhecimentos do OPNsense foi de que, o seu projeto pai, o pfSense®, acabou adotando até mesmo praticas no seu desenvolvimento que foram introduzidas no OPNsense (e que foram um dos grandes motivos para que os desenvolvedores criassem este fork).
Outra diferença que fez com que surgisse o OPNsense é a licença utilizada, a licença do OPNsense torna-o um open source verdadeiro (OSI licence, FreeBSD), ao contrario do pfsense.

O OPNsense surgiu em 2014 por desenvolvedores que patrocinavam e desenvolviam ativamente com o projeto pfsense, porém após diversas mudanças e no rumo que o pfsense tomou, sentiram que não havia outra opção do que criar um fork do projeto e manter o espírito (do M0n0wall) vivo. Abaixo você pode ler sobre nossas motivações originais e do nascimento de OPNsense®:

  • Nós amamos o conjunto de funcionalidades do pfSense, porém não há uma qualidade do código e método de desenvolvimento anárquico.
  • Nós gostamos de estrutura, metas alcançáveis ​​estabelecidas e um roteiro com lançamentos regulares e um quadro decente.
  • Na parte de segurança a questão principal era a necessidade de lógica separada. A GUI não deve realizar tarefas que exigem acesso root.
  • Quanto à qualidade, todos os novos recursos serão construídos usando uma estrutura sólida, usando o Phalcon como framework PHP open source mais rápido disponível. E vamos gradualmente migrar as ferrametnas herdadas do pfSense para o novo framework
  • Uma próspera comunidade só pode existir quando as pessoas estão dispostas a compartilhar. Queremos tornar mais fácil para as pessoas a participar e ajudar a construir a comunidade. Com pfSense isto tem sido bastante difícil, pois as ferramentas para construir são difíceis de usar e muitas vezes não funcionam nas primeiras tentativas. E desde 2014 elas não estão disponível livremente. Nós acreditamos que um bom projeto open source tem nada a esconder, assim o acesso às fontes deveria estar lá para todos.
  • Uma preocupação real com o pfSense é a transparência. Desde que a NETGATE comprou a participação majoritária do pfSense e rebatizou a empresa, tem sido difícil de entender a direção que eles querem para o projeto. Removeram as ferramentas do github sem aviso prévio e usam o nome da marca para cercar concorrentes, isto tem assustado bastante gente. Além disso, a licença mudou sem razão aparente.
 Com OPNsense temos restaurado um projeto estável, com objetivos claros e uma licença simples e adequada para forks e versões OEM. Nós achamos que um projeto da comunidade está lá para que todos possam usar e trabalhar com ele.

Instalação

Se você já instalou o pfsense a partir da ISO oficial, os passos são bem semelhantes. Nesta instalação que descrevo, utilizei a ISO disponibilizada no site (fica para um próximo post fazer a instalação do OPNsense a partir de um FreeBSD instalação "limpo" usando os pacotes.
Para fazer o download do OPNsense basta seguir o link: https://opnsense.org/download/ 
Escolha um mirror e depois a versão que deseja. Há as versões para 64bits (amd64) e i386. Ambas em formato ISO compactadas via bz2. Estas são as 2 mais utilizadas. Também está disponível as versões para embarcados "nano" em formato img, e também as versões para dispositivos com interface serial e VGA (todos sempre disponíveis em amd64 e i386). Atualmente as imagens de instalação do OPNsense vão de 198Mb (iso) a 426Mb (img nano).

A opção padrão do boot é 1 - Multi User.


Tela de boot do OPNsense

Pode-se aceitar as configurações padrão (recomendável) ou alterar as opções (teclado, tela e vídeo).



Modos de Instalação:
Padrão rápido/fácil (quick/Easy install) e customizado.
Existe a opção de importar uma configuração para esta nova instalação (caso você já tenha uma instalação e queira replica-la).


Seleção do disco para instalação do OPNsense


Processo de instalação do OPNsense


Processo de instalação do OPNsense


Reinicialização ao finalizar a instalação





Iniciando o OPNsense após instalar
A senha padrão do usuário root no OPNsense após instalar é "opnsense".


Na primeira inicialização deve ser definido as interfaces de rede (nomeadas LAN e WAN)
















Interface Web - OPNsense




Tela de login do OPNsense

Ao abrir pela primeira vez a interface web do OPNsense (usuário padrão da instalação), será aberto a tela de "Wizard" para configuração inicial.


Definição de hostname, dominio e DNS


Definição da conexão WAN
Esta não é obrigatório, na minha VM para este post, apenas ignorei e mantive apenas a interface LAN do OPNsense.






Definição da interface LAN do OPNsense

Alterar a senha de admin da interface web







Dashboard - Interface web OPNsense








widgets disponiveis

Atualização do OPNsense (firmware) via interface web.

Configurações da Interface WAN


Leases do servidor de DHCP ativo no OPNsense, lista das maquinas clients com hostname, MAC, IP, inicio e fim, status e os botões de ação.





Opções de gráficos em Health (menu System)






Plugins - Para instalação em VMs, há na propria interface do OPNsense os plugins para Xen e VMware.


Entre as opções de backup, está a configuração para o envio do arquivo para o Google Drive.




Continuo com meus testes (nos fins de semana livres) com o OPNsense, até o momento ele tem se mostrado excelente ao cumprir a proposta e já o considero superior ao pfsense em diversos pontos (conheço o pfsense desde 2008 e desde 2013 trabalho com alguns ambientes onde é utilizado ele massivamente).
Havendo alguma coisa interessante (ou pedidos) criarei novos posts mostrando a aplicação dos recursos presentes nele e/ou explorando suas ferramentas (em ambiente simulado ou até mesmo real).
Se eu tiver tempo hábil e coragem de usar o tempo livre para isto, resgato um projeto que tinha com algumas placas Alix 2D13 na qual havia instalado em algumas o Debian + webmin e o pfsense em outras, coloco o img do OPNsense nelas para testar desempenho e aplicação real do DHCP, Squid, firewall, VPNs e alguns outros recursos num ambiente de escritório com 18 clientes IP e link de 60Mbps.



fonte, documentação original e guias: https://docs.opnsense.org/




Mais vistos no mês:

As melhores distribuições Linux para 2017

TuxMath - Tux, do Comando da Matemática. Ensino e diversão a crianças.

Teste de Performance de Rede com Iperf

DHCP - Guia Completo

Aula #14 - Os sistemas de arquivos ext2/ext3/ext4

Ophcrack: Descubra todas as senhas do Windows

SSD no linux

Oracle Linux 7.0 Server com Xfce - Instalação e configurações iniciais