Você está na página 1de 47

Firewall com pfSense

Instrutor:Vitor Mazuco

http://facebook.com/vitormazuco

Email:vitor.mazuco@gmail.com

WebSite:
http://vmzsolutions.com.br
Usando o pfBlockerNG

Nessa aula, vou abordar como usar o recurso do DNSBL do

pacote pfBlockerNG para impedir que os usuários acessem sites

infectados diminuindo assim o risco de infecção com vírus ou

malwares, também vamos limpar as propagandas que estejam

infectados e deixando os sites mais limpos e seguros para que

você obtenha uma melhor experiência de navegação.


Usando o pfBlockerNG

Podemos bloquear sites que usem criptografias HTTPS e SSL, e é

usado o alias de bases de DNS que possuem Domínio e IP para

gerar as regras de firewall. Esses alias são gerados em arquivos

.txt predefinidos que contêm informações de IP e domínio que são

atualizadas por profissionais de segurança e provedores

conhecidos uma vez que um IP ou domínio possivelmente

infectado é identificado.
Usando o pfBlockerNG

A única questão com pfBlockerNG e DNSBL é que ele pode usar

muitos recursos, tanto de memória RAM quanto de CPU, quanto

mais listas você atribuir, mais RAM e CPU precisará. Eu

recomendo no mínimo uma máquina de 2Gb RAM e 4 Cores de

1.5Ghz.
Usando o pfBlockerNG

PfBlockerNG usa o serviço de DNS Resolver do pfSense para lidar

com as resoluções de DNS, então, antes de iniciar a instalação,

certifique-se de que o seu Resolver de DNS está sendo executado

com o modo Encaminhamento ativado (Forwarding mode), isso é

encontrado em Services -> DNS Resolver -> General Option


Usando o pfBlockerNG
Usando o pfBlockerNG

Agora vamos instalar o pfBlockerNG como faria com qualquer

outro pacote navegando para: System -> Packet Manager ->

Available Packets e, em seguida, procure por "pfBlocker" e

depois clique em install


Usando o pfBlockerNG
Usando o pfBlockerNG

Quando a instalação é feita Navegue para Firewall ->

pfBlockerNG para iniciar a configuração:



General Settings

Enable pfBlockerNG: Marcado

Keep Settings: Marcado

CRON Settings: Every hour | :15 | 0 | 0 (Isso sincronizará a
lista a cada 15 minutos após uma hora completa ou seja, 01:15
então 02:15)

De-Duplication: Marcado

CIDR Aggregation: Marcado
Usando o pfBlockerNG


Suppression: Marcado

MaxMind Localized Language: English

Download Failure Threshold: 4

Logfile Size: 20000
Usando o pfBlockerNG
Usando o pfBlockerNG


Interface/Rules Configuration

Inbound Firewall Rules: WAN | Block

Outbound Firewall Rules: LAN | Reject

Rule Order: pfB_Pass/Match | pfB_Block/Reject | pfSense
Pass/Match | pfSense Block/Reject

Auto Rule Suffix: Auto Rule

Kill States: Marcado

Clique em Save e Apply
Usando o pfBlockerNG
Usando o pfBlockerNG

Agora, queremos passar para as configurações de DNSBL

encontradas em Firewall -> pfBlockerNG -> DNSBL



DNSBL Configuration

Enable DNSBL: Marcado

Enable TLD: Marcado

DNSBL Virtual IP: 10.10.10.1

DNSBL Listening Port: 8081

DNSBL SSL Listening Port: 8443

DNSBL Listening Interface: LAN

DNSBL Firewall Rule: Marcado | LAN
Usando o pfBlockerNG
Usando o pfBlockerNG


DNSBL IP Firewall Rule Settings

List Action: Deny Outbound

Enable Logging: Enable

Clique em Save
Usando o pfBlockerNG
Usando o pfBlockerNG

Em seguida, configuramos o DNSBL EasyList do Firewall ->

pfBlockerNG -> DNSBL -> DNSBL EasyList



DNSBL – EasyList

DNS GROUP Name: EasyList

Description: EasyList

EasyList Feeds

State: ON | EasyList Feeds: EasyList W\O Elements |
Header: EasyList

State: ON | EasyList Feeds: EasyPrivacy | Header:
EasyPrivacy
Usando o pfBlockerNG
Usando o pfBlockerNG


DNSBL - EasyList Settings

Categories: All selected*

List Action: Unbound

Update Frequency: Once a day

Weekly (Day of Week): Monday

Clique em Save
Usando o pfBlockerNG
Usando o pfBlockerNG

Agora chegamos ao coração das configurações, pois precisamos


definir as nossas DNSBL Feeds e de onde pfBlockerNG deverá
tirar suas informações, uma boa fonte para isso está no fórum
pfSense do próprio desenvolvedor neste link
Usando o pfBlockerNG

Navegue para Firewall -> pfBlockerNG -> DNSBL -> DNSBL


Feeds para adicionar suas listas de feeds. Vamos criar 4 feeds
diferentes e são: Anúncios, Maliciosos, DGA Crypto e hpHost que
foram configurados com o seguinte:

DNS GROUP Name: Ads

Description: DNSBL Adverts

DNSBL:

Format: Auto| State: ON | Source:
http://pgl.yoyo.org/adservers/serverlist.php?
hostformat=hosts&mimetype=plaintext | Header: yoyo
Usando o pfBlockerNG


Format: Auto| State: ON | Source: http://hosts-
file.net/ad_servers.txt | Header: hpHosts_ads

Format: Auto| State: ON | Source: https://adaway.org/hosts.txt |
Header: Adaway

Format: Auto| State: ON | Source:
http://sysctl.org/cameleon/hosts | Header: Cameleon

List Action: Unbound

Update Frequency: Every 8hours

Weekly (Day of Week): Monday

Clique em Save
Usando o pfBlockerNG
Usando o pfBlockerNG

Agora, vamos criar um outro com o de Maliciosos:


DNS GROUP Name: Malicious
Description: DNSBL Malicious
DNSBL: Format: Auto | State: ON |
Source: http://hosts-file.net/download/hosts.zip| Header: hpHosts
Format: Auto| State: ON | Source:
http://someonewhocares.org/hosts/hosts| Header: SWC
Format: Auto| State: ON | Source:
https://raw.githubusercontent.com/Dawsey21/Lists/master/main-
blacklist.txt| Header: spam404
Usando o pfBlockerNG

Format: Auto| State: ON | Source: https://malc0de.com/bl/BOOT|


Header: malc0de
Format: Auto| State: FLEX | Source:
https://mirror1.malwaredomains.com/files/justdomains | Header:
MDS
Format: Auto| State: ON | Source:
http://winhelp2002.mvps.org/hosts.txt | Header: MVPS
Format: Auto | State: ON | Source:
http://www.malwaredomainlist.com/hostslist/hosts.txt| Header:
MDL
Usando o pfBlockerNG

List Action: Unbound


Update Frequency: Once a day
Weekly (Day of Week): Monday
Depois clique em Save
Usando o pfBlockerNG
Usando o pfBlockerNG

Agora, vamos criar um outro com o de Cryptolocker:


Description: DNSBL DGA for Cryptolocker
DNSBL:
Format: Auto | State: ON | Source:
http://osint.bambenekconsulting.com/feeds/dga-feed.gz| Header:
BBC_DGA
Format: Auto | State: ON | Source:
http://osint.bambenekconsulting.com/feeds/c2-dommasterlist.txt|
Header: BBC_C2
List Action: Unbound
Usando o pfBlockerNG

Update Frequency: Every 8hours


Weekly (Day of Week): Monday
Clique em Save
Usando o pfBlockerNG
Usando o pfBlockerNG

Agora, vamos criar um outro com o de hpHost:


DNS GROUP Name: hpHosts_partial
Description: DNSBL hpHosts_partial
DNSBL:
Format: Auto | State: ON | Source: http://hosts-file.net/hphosts-
partial.asp| Header: hpHosts_partial
List Action: Unbound
Update Frequency: Every 6hours
Weekly (Day of Week): Monday
Clique em Save
Usando o pfBlockerNG
Usando o pfBlockerNG

Quando terminar, você deve ter criado as 4 categorias para

bloquear o anúncios, malwares e vírus de criptografia, você pode

adicionar mais listas e fontes a esta configuração, mas você

precisa fazer sua própria pesquisa e colocar por sua conta e

risco. Toda a lista que usei é livre e de código aberto, mas

também há alternativas pagas para feeds.


Usando o pfBlockerNG
Usando o pfBlockerNG

Neste ponto, nós configuramos somente o pfBlockerNG para

usar o DNSBL e reagir nos nomes de domínio, mas também

queremos bloquear os IPs “ruins” já conhecidos pela internet,

navegue até: Firewall -> pfBlockerNG -> IPv4


Usando o pfBlockerNG

Eu só estarei cobrindo o IPv4 nesta aula, mas se você usar IPv6,

o mesmo método é usado para adicionar as regras necessárias

para isso. Minha lista de alias IPv4 é chamada de Badguys e

está configurada como segue:


Alias Name: Badguys
List Description: IPv4 Badguys
Usando o pfBlockerNG

IPv4 Lists:
Format: Auto | State: ON | Source:
https://gist.githubusercontent.com/BBcan177/d7105c242f17f4498f
81/raw/90eb2ac8bdc01af3008d728b7c0f10dc7b2506b4/MS-3|
Header: BBcan177_Domains_IPv4
Format: Auto| State: ON | Source:
https://rules.emergingthreats.net/blockrules/compromised-ips.txt|
Header: ETCompromised
Usando o pfBlockerNG

Format: Auto | State: ON | Source:


https://rules.emergingthreats.net/fwrules/emerging-Block-IPs.txt|
Header: ETBlocked
Format: Auto | State: ON | Source:
https://gist.githubusercontent.com/BBcan177/bf29d47ea04391cb3
eb0/raw/b344ebc9475acdea1fae38a12c4ea9332838a184/MS-1|
Header: BBcan177Threats
Format: Auto | State: Auto | Source:
http://www.malwaredomainlist.com/hostslist/ip.txt| Header:
Malwaredomainlist
Usando o pfBlockerNG

Format: Auto | State: ON | Source:


https://ransomwaretracker.abuse.ch/downloads/RW_IPBL.txt|
Header: Ransomware
List Action: Deny Both
Update Frequency: Once a day
Weekly (Day of Week): Monday
Enable Logging: Enable
States Removal: Enable
Clique em Save
Usando o pfBlockerNG
Usando o pfBlockerNG

Depois de ter feito alterações nas listas DNSBL, você precisa

forçar uma atualização do novo conjunto de regras antes que as

alterações entrem em vigor na sua rede, para fazer uma

atualização navegar para Firewall -> pfBlockerNG -> Update

Ao fazer uma atualização manual ou uma atualização forçada

devido a mudanças na configuração, você não deseja executá-la

perto de quando a tarefa Cron estiver sendo executada, há um

relógio na página de atualização que irá dizer-lhe quando a

próxima atualização será executada


Usando o pfBlockerNG

Ao fazer uma atualização manual ou uma atualização forçada

devido a mudanças na configuração, você não deseja executá-la

perto de quando a tarefa Cron estiver sendo executada, há um

relógio na página de atualização que irá dizer-lhe quando a

próxima atualização será feita.

Selecione a opção 'Force': Reload

Selecione a opção 'Reload': All


Usando o pfBlockerNG
Usando o pfBlockerNG

E lembre-se de fazer esses testes em ambientes de testes antes

de passar para produção.

Você também pode gostar