Qual é o motivo do pfSense ser FreeBSD?

Por que o pfSense é FreeBSD?

Eu sei que o packet filtering só funciona nos *BSD e não no Linux, mas tem alguma vantagem real no PF+FreeBSD comparado com ip/nftables+Linux?

O firewall do BSD é imbatível.

Imbatível no quê? O que o pf tem que o ip/nftables não tem?

Vamos lá!

Primeiro ao nome pfSense, o nome já diz pf que é o Firewall da família BSD.

O pf é simples, baseado em regras sequenciais, o iptables é complexo e usa uma tal de cadeia. O pf filtra até a alma da pessoa enquanto o iptables precisa da alma da pessoa para ser mantido enquanto deixa escapar muita coisa, justamente por excesso de sintaxes.

Se o seu hardware for apenas para ser um firewall vai de pf, mas se vc precisar de ter algumas coisas mais amplas e utilizar mais de um serviço numa hardware vai de iptables.

Sem contar o baixíssimo consumo de hardware necessário para o firewall BSD, tem muita gente que usa o Linux com o kernel do BSD por causa do pf.

Então, seria por isso que o OpenBSD, também é super seguro? Mas, então, por qual motivo, os BSDs não encabeçam os grandes servidores?

Muitos servidores em todo o mundo são executados nos sistemas operacionais FreeBSD, OpenBSD e NetBSD devido às suas características de estabilidade e desempenho.

No entanto, onde os BSDs realmente se destacam é no mundo das appliances e serviços. Eles são amplamente utilizados nesse contexto. Por exemplo, na computação em nuvem, os BSDs são escolhas populares para servidores DNS. O Netflix, um dos maiores serviços de streaming, é totalmente suportado por infraestrutura baseada em BSD. O MikroTik, um dos roteadores mais populares do mundo, utiliza o sistema operacional NetBSD. O WhatsApp, um dos principais aplicativos de mensagens, é suportado por sistemas BSD. A Sony utiliza BSD para alimentar sua plataforma de jogos online, a PlayStation Network (PSN). A Juniper Networks, uma gigante no mercado de roteadores, usa o sistema operacional BSD (Junos OS) em muitos de seus produtos, incluindo serviços de autenticação B-RAS. A Cisco também incorpora BSD em alguns de seus produtos. Além disso, muitos produtos “prontos” comerciais confiam em sistemas BSD para fornecer recursos e serviços essenciais.

Apesar das vantagens que os BSDs oferecem, é verdade que a curva de aprendizado e a disponibilidade de certificações podem ser consideradas desafios. No entanto, esses sistemas alimentam muitos supercomputadores e clusters de alta disponibilidade. Em muitos casos, sistemas BSD atuam como o núcleo de “gerenciamento” em grandes plataformas de nuvem, como Azure e Amazon Web Services (AWS).

Esses são apenas alguns exemplos que destacam a ampla gama de usos dos sistemas BSD em diversas indústrias e aplicações. Sua presença é forte e significativa em muitos aspectos do mundo da tecnologia.

De fato, os BSDs passam longe do usuário doméstico em Desktops ou computadores pessoais. Se pudessemos comparar BSD com uma distro Linux, talvez fosse com o Gentoo que usa uma estrutura bem parecida porém o BSD ainda é imbatível no que faz.

Alpine é uma outra alternativa em Linux para os mesmos propósitos.

Debian tem uma projeto com kernel BSD.

Uma lista longa da relevância dos BSDs.

1 curtida

Vou te dar um exemplo dos dois fazendo a mesma coisa:

Limitar a 10 conexões por minuto na porta 80

no iptables


iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 60 --hitcount 10 -j DROP

iptables -A INPUT -p tcp --dport 80 -s 192.168.1.2 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -s 192.168.1.3 -j ACCEPT

iptables -A INPUT -p tcp --dport 80 -j DROP

no pf

pass in quick proto tcp from any to any port 80 flags S/SA keep state (max-src-conn-rate 10/60, overload flush global)
 
pass in quick proto tcp from { 192.168.1.2, 192.168.1.3 } to any port 80

block in quick proto tcp to any port 80

max-src-conn-rate é um característica do PF. É direto e bruto.

Outra saga é o uso de expressões regulares no Iptables.

1 curtida

Nem tudo é sobre rede, no tangente ao stack de rede, BSD é mais maduro, entretanto, no tangente a flexibilidade no isolamento de processos e subsequente orquestração destes, Linux é superior. Em especial cgroups oferece uma granularidade que você não encontra em BSD Jails.

Por esse motivo, geralmente os serviços (hoje em dia uma boa parte micro-serviços, database, APIs, etc) são executados em Linux, com BSD sendo usado em componentes menos “visíveis” como CDNs, firewalls, load-balancers…

1 curtida

Eles mudaram para Linux tem algum tempo.

Há uma outra questão bem pontual também, além das que vc mencionou.

Os BSDs não são nada elásticos. Subir um deploy em nuvem com o BSD para fins de usuário deve ser um terror. Nisso o Linux dá show.

Ambos os sistemas não “concorrem” entre si no meu modo de ver.

Não sabia… tão usando oq agora?

Eles na prática reescreveram tudo, não é mais o mesmo que foi comprada na época, acho que eles ainda usam Erlang, mas volta e meia alguns funcionários tem dado insights. Eu sei que o protocolo também não é mais o protocolo aberto da época, é próprio deles agora.

Migrou para Linux. Não que BSD fosse tecnicamente inferior, mas como gestão costuma falar mais alto, eles moveram tudo para o stack que é mais onipresente na empresa. Isso é meio comum, gestão é provavelmente a maior dor de cabeça em qualquer empresa, não é à toa que contêineres e deployment virou prioridade neste case deles.