Você está na página 1de 8

Treinamento Firewall pfSense

Firewall com pfSense


Aula 10
Filtro de Internet (proxy) Integrado ao AD com
autenticação transparente
Treinamento Firewall pfSense

Recapitulando
Olá Pessoal, bem vindos ao curso de firewall com pfSense.

Esta é a aula de número 10 e vamos configurar o filtro de internet no firewall.

Na última aula configuramos as regras de firewall para fazer a filtragem de conexões na camada 3 e 4, bloqueando ou liberando o acesso através dos
campos de endereço IP e porta dos hosts origem e destino da conexão.

Na aula de hoje, iremos configurar o filtro de internet, também conhecido como webproxy para limitarmos o acesso dos usuários a sites da internet. E
vamos fazer isso de uma maneira bem especial, pois eu vou fazer com você uma configuração que nunca encontrei na internet, que é utilizando a
autenticação transparente dos usuários nativamente no pfsense utilizando o protocolo Kerberos, isso vai fazer nossa rede mais segura, não pede senha para
o usuário navegar e registra o acesso no nome do usuário, independetemente do computador que ele estiver utilizando.

Ambiente
Nosso ambiente de laboratório é simplório, vamos utilizar apenas um firewall que é objeto de nosso estudo, um servidor windows com Active Directory
instalado e configurado para ser nossa fonte de usuarios e grupos, e tambem uma maquina com windows 10 inserida no dominio, que sera nossa maquina
de validação, ou seja, nossa maquina que o usuário final utilizará.
Treinamento Firewall pfSense

Hostname e Domínio
Vamos começar ajustando o hostname do firewall e o dominio. Devemos configurar um hostname válido que sera registrado no DNS, e configurar no
firewall o mesmo nome de dominio da nossa rede Active Directory. No meu caso o nome do firewall é fw01 e o nome do dominio é citrait.local.

Configurar o DNS do firewall


 Apontar o DNS do firewall para o servidor AD.
 Não permitir que o DNS sera sobrescrito pelo DHCP da interface WAN (desmarcar a opção DNS Server Override).
 Habilitar o encaminhamento de consultas DNS do firewall para o AD (marcar a opção DNS query forwarding).
 Testar resolução de nome do dominio no firewall ( menu diagnostics -> nslookup : testar os nomes dominio.local, ad.dominio.local)

Instalar os pacotes necessários


Instalar os seguintes pacotes:

 Squid
 SquidGuard
 Lightsquid

Habilitar o proxy
 Nas configurações do squid na aba Local Cache, marcar Disable Caching para desabilitar totalmente o cache.
 Na guia geral, habilitar o proxy squid, habilitar o log e inserir 30 dias de retenção.
 Na guia ACL no campo blacklist adicionar o site test.org.
Treinamento Firewall pfSense

Testar o proxy
 Navegar no site test.org para verificar se foi bloqueado (não será)
 Apontar o proxy manualmente no computador via configurações de internet (inetcpl.cpl)
 Navegar no site test.org para ver que foi bloqueado pelo proxy e o proxy esta minimamente funcional
 Exibir os registros de navegação pela aba real time do squid

Bloquear o acesso direto à internet (com exceções)


 Criar o alias contendo o site exceção de exemplo: ping.eu
 Criar alias de portas http contendo as portas 80 e 443
 Adicionar regra de acesso que permita o acesso da LAN somente aos sites exceções (alias) e apenas nas portas de http (alias).
 Remover as regras de acesso padrão que permite todo o tráfego
 Desabilitar o proxy e testar o acesso ao google (que será bloqueado), e testar o acesso ao site de exceção (que deve abrir).
 Habilitar o proxy e testar o acesso ao google e ao site de exeção.

Configuração inicial do SquidGuard


 Acessar configuração do Squidguard
 Criar target ACL chamada blacklist pois é necessário ter ao menos 1 target acl para o squidguard não dar erro.
 Preencher url da blacklist (http://pfsense.citrait.com.br/cfs_site_categories.tar.gz) e salvar.
 Acessar aba blacklist e fazer download das categorias.
 Configurar a regra de acesso padrão, configurar a acesso padrao como allow, bloquear as categorias porn e webmail e habilitar o logging.
 Habilitar o logging do squidGuard.
 Habilitar o squidGuard, aplicar a configuração.
 Testar ao cesso às categorias bloqueadas.
Treinamento Firewall pfSense

Corrigir erro de certificado na página de acesso negado


 Acessar o menu do Squid.
 Clicar para exibir as opções avançadas.
 No campo Custom Options (Before Auth), inserir o seguinte texto:

acl CertificadoConfiavel dstdomain <ip_do_firewall>


sslproxy_cert_error allow CertificadoConfiavel

 Salvar a configuração.

Configurar autenticação via Kerberos


 Registrar o nome do firewall no DNS, criar registros A e PTR (reverso).
 Criar uma conta de usuario com o mesmo nome do firewall, com uma senha grande e complexa (evite espaços, virgula, @ e %).
 Criar o SPN para associar o firewall como uma conta kerberos de serviço na rede:
setspn -U -A HTTP/<hostnamefirewall>.<dominio.local> <dominio>\<hostnamefirewall>
 Exportar o arquivo keytab do AD para que o proxy possa autenticar o usuário usando kerberos no AD:
ktpass -out proxy.keytab -princ HTTP/<hostnamefirewall>.<dominio.local>@<DOMINIO.LOCAL> -pass <SENHA> -mapuser
<dominio>\<hostnamefirewall> -crypto ALL -ptype KRB5_NT_PRINCIPAL -kvno 0
 Fazer upload do arquivo keytab para o firewall.
 Dar as permissoes do arquivo keytab
chown squid:squid /etc/proxy.keytab
 Criar o arquivo de configuração do kerberos no firewall no caminho /etc/krb5.conf:
Treinamento Firewall pfSense

[libdefaults]
default_realm = <DOMINIO.LOCAL>
dns_lookup_kdc = no
dns_lookup_realm = no
ticket_lifetime = 24h
default_keytab_name = /etc/proxy.keytab

default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5


default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5

[realms]
<DOMINIO.LOCAL> = {
kdc = <ad>.<dominio.local>
kdc = <ad2>.<dominio.local>
admin_server = <ad>.<dominio.local>
admin_server = <ad2>.<dominio.local>
default_domain = <dominio.local>
}

[domain_realm]
.<dominio.local> = <DOMINIO.LOCAL>
<dominio.local> = <DOMINIO.LOCAL>

 Testar a autenticação do firewall no AD usando o arquivo keytab usando o comando:


kinit -k -t /etc/proxy.keytab HTTP/<hostnamefirewall>.<dominio.local>@<DOMINIO.LOCAL> && klist
 Voltar na configuração do squid, na aba geral, pedir para exibir as opções avançadas, e adicionar o seguinte texto no campo Custom Options (Before
Auth):
Treinamento Firewall pfSense

auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth -r


auth_param negotiate children 40
auth_param negotiate keep_alive on
http_access allow whitelist
acl auth proxy_auth REQUIRED
http_access deny !auth

 Ir na guia ACL e no campo whitelist adicionar o site www.empresa.com.br.


 Testar a navegação e o registro do nome do usuário nos logs do firewall (real time).

Controle de Acesso via Grupos


 Criar os grupos no AD: INTERNET_BASICO, INTERNET_TI, INTERNET_AVANCADO.
 Criar a conta de usuario cfs_ldap_search com uma senha grande mas sem caracteres especiais.
 Acessar a configuração do SquidGuard.
 Habilitar a configuração de LDAP, inserir o DN da conta cfs_ldap_search, a senha da mesma conta e salvar.
 Em Group ACL criar e definir o grupo internet_basico como bloquear por padrao e liberar apenas search engines.
 Criar e definir o grupo internet_avancado como liberar por padrao e bloquear socialnet e webmail.
*Os grupos são apontados no campo Client (source) como no exemplo abaixo:

ldapusersearch ldap://citrait.local:3268/DC=citrait,DC=local?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=
INTERNET_BASICO,OU=Grupos,DC=citrait,DC=local))

 Testar a navegação nos sites bloqueados via grupos, e ver se esta identificando e bloqueando corretamente os acessos dos usuários baseado nos
grupos.
Treinamento Firewall pfSense

Configurar Inspeção SSL


 Criar uma Autoridade Certificadora no Firewall (CA)
 Criar um certificado de servidor para o webconfigurator
 Criar um certificado de servidor para o webproxy, para inspeção web ssl.
 Exportar a CA do firewall
 Criar uma GPO para instalar a CA nos computadores da Rede ou importar manualmente nas máquinas, na cadeia raiz confiável.
 Habilitar as configurações de Inspeção SSL do squid (HTTPS/SSL Interception).
 Nas configurações avançadas do squid (guia geral, exibir configurações avançadas), adicionar as seguintes linhas no campo Custom Options Before Auth:
url_rewrite_access deny CONNECT
url_rewrite_access allow all
 Em cada grupo de acesso do squidGuard marcar a opção Redirect Mode como ext url found (Enter URL) e no campo Redirect info, inserir a seguinte url
apotnando para o firewall:
https://<hostnamefirewall>.<dominio.local>/sgerror.php?url=403%20&a=%a&n=%n&i=%i&s=%s&t=%t&u=%u
 Testar a navegação em sites ssl bloqueados.

Você também pode gostar