Pular para o conteúdo principal

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/




Comentários

  1. Boa Noite!! Achei bem interessante o OPNsense. Gostaria de saber mais sobre ele.

    ResponderExcluir
    Respostas
    1. Obrigado Marcelo pelo comentário e interesse no OPNsense, o uso dele está bem mais difundido e crescente visto as mudanças recentes no pfsense, hoje o OPNsense é distribuido com o HardenedBSD.
      A comunidade brasileira do OPNsense está crescendo é e bem colaborativa, aconselho a acessar o grupo no Telegram e nas redes sociais.
      Este meu tutorial está desatualizado, mas foi o primeiro em PT/BR e o OPNsense tinha acabado de ser lançado, atualmente ele está bem mais evoluído e com uma base solida de usuários (prometo uma nova postagem futuramente!)

      Excluir
  2. Olá, na sua opinião como o opnsense está posicionado no mercado?

    ResponderExcluir
    Respostas
    1. Opa, blz?!
      Quando escrevi este artigo, foi com 1 ano de vida do OPNsense (e ele foi o primeiro artigo em Português sobre ele).
      Ele foi adotado pela comunidade open source, tanto pelo apontamento do criador do M0n0wall quanto pelos devs que estavam contribuindo com o pfsense... tanto que, o pfsense passou a copia-lo (esta interface por exemplo, foi adotada releases depois por eles....) e com as manobras da netgate (como remover a contribuição da comunidade, retirar os repositórios do pfsense, vender suporte/subscrição e até mesmo tentar sacanear o opnsense) o nome do OPNSense cresceu (e sua adoção também).
      Com o pfsense fechado, o OPNsense além de poder evoluir mais rapido, ele é mais "creditado", principalmente em época onde empresas de FW se associam com governos para dar acesso via backdoors, por exemplo.
      Analisando o github de ambos, o OPNSense possui muito mais "interações" no código (commits, desenvolvimento, pessoas, ...) do que o outro.
      Outra analise são as buscas no Google (usando o Google Trends): há mais buscas pelo OPNsense mundialmente do que o pf (estranhamente, exceto no Brasil), e as buscas relacionadas ao OPNSense envolve temas como "wireguard" e "instalação", enquanto sobre o PF, basicamente resume-se ao download da versão dele.
      Isto, na minha opinião explica a fama do pfsense apenas por um fator: falta conteúdo ainda (mesmo com a documentação grande), o pfsense ainda é adotado pela quantidade de videos, tutoriais e guias que foram feitos antigamente. Se pesquisar, os conteúdos ainda sugeridos e acessados sobre o PF são antigos, desatualizados, porém, em grande número (2.7mi vs 449k resultados de busca).

      Comercialmente, o PF bate com sonicwall, fortnet, mikortik, cisco, sophos... E para PMEs (que conseguem financiar o appliance via BNDES e contratar suporte PTBR) a concorrência está bem melhor. Fiz uma pesquisa rapida sobre o market share dos firewalls comerciais e o PF não incomoda nem um pouco estas soluções acima.

      Num projeto interno, open source, lab, sem contratação de terceiros, pessoalmente, não vejo nenhum bom motivo para usar o pfsense, na minha opinião, o OPNSense é a melhor solução entre estes dois, isto fica bem claro pelo release notes de ambos: O pfsense foi lançado há 4 meses (v2.4.5-p1) e o OPNSense há 3 dias (v.20.7.4), enquanto o primeiro apenas fala sobre correção de bugs, suporte a idioma e problemas com hardware, o OPNSense atualizou diversos aplicativos na distro, além de descrever e colocar o link para o código.
      No "mercado" opensource, o opnsense ainda está em segundo lugar! Ainda perde para o PF, mas ganha dos demais FWs que possuem solução community e versão paga (como o Endian, ClearOS,...) e demais soluções são bem diluídas devido quantidade de ofertas.
      Finalizando rsrsss (sorry pela resposta grande), os 5 anos de vida do OPNsense (comparado com os 14 do PF) mostra que ele cresce e cresceu bastante, mesmo sem uma grande empresa e marketing por trás ou com o mesmo conteúdo na web dos concorrentes (creio que seja o impeditivo atualmente) deixou diversas outras soluções para trás.

      Excluir
  3. o firewall opnsense é indicado para qual tipo de público ? empresa de grande porte ou pequeno por exemplo.

    ResponderExcluir
    Respostas
    1. Ambos... Deste que tenha profissionais que tenham conhecimento.
      Numa empresa grande que não tenha TI interno/corporativo, geralmente eles terceirizam e esses terceiros colocam caixas como o SonicWall.
      Mas quando o TI interno possui conhecimento, o OPNsense pode ser aplicado em qualquer ambiente e qualquer situação, desde pequenos ambientes ou para controlar trafego de grandes redes em ambientes de produção.
      Já coloquei o opnsense para substituir 2 firewalls numa rede de escritório (50 maquinas) usando os serviços de DHCP, DNS, Proxy, QoS, regras para sftp, segurança, controle do Wifi, etc... Como redundância, posteriormente instalei um segundo opnsense como failover, onde, se um caisse, o outro assumia com as mesmas config, sem impactar na rede.
      Num ambiente de aplicação, já usei o VyOS (outro firewall menor e menos famoso, basicamente um Debian) para controlar ambientes num datacenter trafegando grandes dados de clientes (onde alguns deles eram bancos e financeiras famosas, com alto trafego/throughput de rede), nunca tive problemas...
      Já instalei, como outro exemplo, um pfsense (só usei ele porque não achei uma imagem do opnsense no marketplace) na AWS (numa ec2) para resolver um problema especifico de trafego de um App mobile (com uns 20 mil clientes) e precisava urgentemente de uma solução com proxy e vpn (ipssec).
      Fortinet, F5 e estes outros firewalls appliances, são apenas hardwares robustos (ssd, muita RAM, gigabit com fibra, etc...) , com um linux ou BSD dentro, o "plus" seria a interface web e o suporte que eles dão porque quem compra, paga muito caro por isto.

      Excluir
  4. Tenho um pfsense na minha empresa há uns 5 anos, com squid autenticado com um AD do windows. Funciona bem. Mas estou pesquisando outras soluções, encontrei esse teu material, achei bem interessante, vou fazer um laboratório para testar ele. Na verdade estou pesquisando outras alternativas de controle de conteúdo, você conhece outras solução sem ser o squid/squidguard?

    ResponderExcluir
    Respostas
    1. Opa, blz?!
      Creio que para este ambiente o melhor seja o Squid mesmo.
      Já usei o NGINX para proxy e cache, mas não em escritório (creio que vá dar muita dor de cabeça, além de tudo ser feito a mãos via CLI em arquivos de configs).
      Com o Squid (proxy) você pode usar outro web filter (ao invés do SquidGuard), como o e2guardian (evolução do antigo DansGuardian do SmoothWall) ou o ufdbGuard.

      Há algumas distros especificas como o Zentyal (Squid com DansGuardian), mas eles te darão uma interface web melhor para configurar, apenas. Outros possuem até menos recursos de configuração do que o pfsense/opnsense, a distro IPFire por exemplo, usa apenas o Squid e o Sarg, não recordo de ter algum web filter como o Squidguard ou dansguardian (apenas listas de filtros para selecionar ou colocar a sua propria).
      ClearOS, Endian, Untangle são excelentes opções... no fundo, são Squids com melhor interface web aliado a plugins e algumas outras ferramentas, mas muito provavelmente ficará chateado ao bater em alguma feature que somente a versão paga oferece.

      Excluir

Postar um comentário

Postagens mais visitadas deste blog

Distribuições Linux para 2020

Olá, Fiz um compilado das melhores distros para 2020, ou melhor, da aposta para as melhores distribuições e destaques para 2020. Além disto, algumas listas das melhores distros para o próximo ano feita pelos maiores sites e a melhor distribuição Linux para cada categoria de usuário. Além disto, respondo a pergunta que todos fazem: Qual o Linux mais leve? e Qual o Linux mais bonito? Ubuntu e suas variantes A primeira aposta e mais obvia é o Ubuntu.  Tanto pelo tamanho da comunidade quanto por ser a primeira distro a ser usada quando alguma empresa resolve desenvolver/portar seus aplicativos para linux, além de ser a distro mais indicada para quem está iniciando com o S.O. Soma-se isto ao suporte da Steam, facilitadores como o Lutris e pacotes de apps oficiais distribuídos por devs como Nvidia, Intel dentre outras... Um dos maiores responsáveis é a API Vulkan da AMD e o Proton da Valve/Steam! Que promete fazer muitos gamers mudarem por completo para o Linux e o ubuntu pr

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

Tux Of Math Command, (Tux, do Comando da Matemática, em sátira ao desenho animado, Buzz Lightyear, do Comando Estelar) ou simplesmente TuxMath é um game open source, no estilo arcade, originalmente desenvolvido para linux, mas atualmente é multiplataforma, disponível em Windows, Mac, BeOS, web, dispositivos móveis...

SSD no linux

Mitos e verdades do SSD no Linux - Instalando, configurando e otimizando SSD no Linux SSD são suportados no Linux desde o kernel 2.6.29. Schedulers e File Systems também suportam os 'discos sólidos' ou 'não-rotacionais' (SSDs) há um bom tempo. A maioria dos artigos que existem na internet são bem antigos e não refletem os ambientes atuais dos sistemas Linux. Este artigo trás alguns macetes para otimizar o SSD num ambiente onde o sistema operacional estará instalado nele. Tiro alguns mitos de que seria necessário mudanças bruscas no sistema para que o SSD seja bem aproveitado (hoje, basicamente no uso do dia-a-dia, nada é preciso após instala-lo) apenas alguns pontos a serem observados.