Integração pfSense com Active Directory

Integração pfSense com Active Directory

Tutorial: Integração pfSense com Active Directory

Olá Friends!
Quanto tempo em? 2021 de muitos desafios e muito trabalho…

Como estou bastante tempo sem escrever nenhum tutorial estou até enferrujado, peguei alguns dias de férias coletivas e pude estudar um pouco e gostaria de compartilhar com todos este conteúdo que com certeza será útil para comunidade!

Trata-se de um breve tutorial para integração pfSense com Active Directory o qual ser utilizado para login administrativo do Web Config ou até mesmo na integração de VPN client to site com o OpenVPN.

Neste tutorial em especifico será abordado apenas a integração Active Directory com pfSense e como você pode configurar grupo administrativo do seu AD onde os usuários deste grupo terão a permissão de administrador do pfSense, no proximo tutorial será abordado a integração com o OpenVPN.

Pré-requisitos

  • pfSense já instalado e configurado o básico;
  • Active Directory instalado e configurado o básico;
  • Criar usuário de serviço que irá realizar a autenticação em seu Active Directory (Não é necessário nenhuma permissão de administrador);
  • Criar usuário no AD que será administrador do pfSense;
  • Criar usuário no AD sem permissão – Para testes;
  • Criar um grupo  no AD de administração do pfSense;
Active Directory Users and Computers
File Action View Help
Active Directory Users and Computers [WinServer201g.friendsti.com.br] Name
Type
Security Group...
User
Description
Saved Queries
friendstl.com.br
guiltin
Computers
Domain Controllers
ForeignSecurityPrincipaIs
FriendsTI
Brasil
v SaoPauIo
Computers
Groups
Keys
LostAndFound
Managed Service Accounts
Program Data
System
Users
NTDS Quotas
TPM Devices
Carlos
G_pfSense
jean
svc.pfsense
Atenção: Observe a estrutura de OU que estamos utilizando neste lab, ela será importante no próximo tutorial;

Após atender os pré-requisitos vamos para a primeira etapa deste tutorial.

Recomendo que você de um duplo clique no usuário de serviços que foi criado e anote o atributo  distinguishedName pois iremos utilizar esta linha para algumas configurações neste tutorial.

wc.pfsense Properties
Published Certificates Member Of
En vironment
General Address Account
Remote Desktop Services Profile
Password Replication Dialqn Object
Remote control
Profile Telephones Organization
COM*
Attribute Editor
displayNamePnntabIe
distinguished Name
division
d SASignature
dSCorePropagationD
dyn amic L DAP Server
employee ID
emp oyeeNumber
employeeType
extension Name
facsimileTeIephoneN
flags
fSMOR01eOwner
aartaaeCoIIPehod
<not set >
CN=svc pfsense .01 J=Useß U —Sao Paulo C
<not set >
enot set >
21/12/2021 20 1802E Star
enot set >
<not set >
<not set >
<not set >
<not set >
<not set >
<not set >
<not set >
<not set >
String Attribute Editor
distinguished Name
.0 Ll=Llseß.O Ll=Sao Paulo OLI=8rasiI .0 Ll=FnendsTI DC=fnendsti DC.com DC—br
Localizando distinguishedName do usuário de serviço na aba de atributos

Agora realize o login no WebConfigurator do seu pfSense e clique na Aba System em seguida em  User Manager.

Localize a opção Authentication Servers e conforme demonstrado através dos prints abaixo preencha os campos a seguir:

Descriptive name: AD (O nome que deseja descrever a integração)
Type: LDAP ( Obviamente iremos utilizar LDAP para esta configuração)
Hostname or IP address: 10.254.0.10 (Endereço IP do servidor de Active Directory)
Search scope:
Level – Entire Subtree (Aqui você precisa selecionar na opção Level a opção Entire Subtree para que a consulta possa ser realizada com base na OU que você irá especificar.)
Base DN – DC=friendsti,DC=com,DC=br (Neste tutorial utilizamos o dominio friedsti.com.br portanto você deve preencher conforme demonstrado na figura caso o seu seja similar.)
Authentication containers: OU=FriendsTI (Neste tutorial iremos “verificar” todos objetos de usuário que estão abaixo da OU FriendsTI, ou seja conforme demonstrado as demais OU serão “acessadas”)

c
O https://10.254.0.1 /system_authservers.php?act=edit&id=O
System / User Manager / Authentication Servers/ Edit
Users Groups Settings Authentication Servers
Server Settings
Descriptive name
AD
LDAP
LDAP Server Settings
Hostname IP
value
Peer Certificate
Authority
Protocol version
Server Timeout
Search scope
Authentication
containers
10.254.0.10
NOTE: When using SSUTLS or STARTTLS, this hostname MUST match a Subject Alternative Name (SAN) or the Common
Name (CN) of the LDAP server SSL/TLS Certificate
389
Standard TCP
No Certificate Authorities defined.
Create one under System > Cert. Manager.
Timeout for LDAP operations (seconds)
Level
Subtree
Base DN
OU=FriendsTl
Note Semi-Colon separated. This will be prepended to the
Q Select a container
Configurando a integração do Active Directory com pfSense

Bind anonymous – Remova o Flag ( Quando removido o flag as demais configurações irão aparecer)
Bind credentials: CN=svc.pfsense,OU=Users,OU=SaoPaulo,OU=Brasil,OU=FriendsTI,DC=friendsti,DC=com,DC=br ( Conforme verificamos no atributo do usuário svc.pfsense que foi criado para a autenticação LDAP copie e cole o distinguishedName aqui e em seguida digite a senha deste usuário.)

As demais configurações neste tutorial não serão abordadas, portanto clique em salvar.

c
Authentication
containers
Extended query
Bind anonynwus
Bind credentials
RFC 2307 Groups
Group Object Class
Shell Authentication
Group DN
UTF8 Encode
Alterations
O https://10.254.o.1
/system_authserv'ers.php?act=edit&id=O
OU=FriendsTl
Note Semi-Colon separated This will be prepended to the
search base dn above or the full container path can be
specified containing a dc: component.
Example: CN=lJsers,'DC=example.DC.com or OU=Staff;
OU=Freelancers
Cl Enable extended query
Cl Use anonymous binds to resolve distinguished names
samAccountName
memberOf
Cl LDAP Server uses RFC 2307 style group membership
RFC 2307 style group membership has members listed on the group object rather than using groups listed on user object
Leave unchecked for Active Directory style group membership (RFC 2307bis).
posixGroup
Object class used for groups in RFC2307 mode Typically "posixGroup• or "group'.
If LDAP server is used for shell authentication, user must be a member of this group and have a valid posixAccount
attributes to be able to login.
Example: CN=Remoteshellusers,CN=Users.DC=example.DC.com
Cl UTF8 encode LDAP parameters before sending them to the server.
Required to support international characters, but may not be supported by every LDAP server.
Cl Do not strip away parts of the username after the@symbol
e.g. user@host becomes user when unchecked.
Configurando a integração do Active Directory com pfSense – print 2

Agora para testar a autenticação junto ao seu Active Directory que acabamos de configurar basta clicar na aba Diagnostics e em seguida em Authentication.
Selecione o nome que deu na configuração que no meu caso é AD e em seguida digite qualquer usuário e senha que esteja dentro da OU especificadas, aqui utilizei o próprio usuário de serviço.

c
Zsense
System
COMMUNITY
PA https://10.254.0.1 /diag_authentication.php
Interfaces Firewall Services. VPN- Status
Diagnostics
Help
Diagnostics/ Authentication
User svc.pfsense authenticated successfully. This user is a member of groups:
Authentication Test
Authentication
Select the authentication server to test against.
svc.pfsense
Password
Test
Testando a autenticação do pfSense com o Active Directory

Caso o teste de autenticação tenha sido concluído com sucesso, siga para as próximas configurações.

Agora iremos criar o grupo que tem as permissões de administração do pfSense com base no grupo já existente em seu Active Directory.

Group Name: G_pfSense (Nome exato do grupo do Active Directory)
Scope: Remote (Existem apenas duas opções, selecione Remote)
Description: Escreva a descrição que desejar.

Após preenchido estas configurações clique em salvar.

c
Zsense
System
COMMUNITY EDITION
https://10.254.0.1 /system_groupmanager.php?act
Interfaces Firewall Services. VPN- Status
= new
Diagnostics
Help
System/ User Manager/ Groups/ Edit
Users Groups Settings Authentication Servers
Group Properties
Description
Groto membership
G_pfSense
Remote
Waming: Changing this setting may affect the local groups file, in which case a reboot may be required for the changes to
take effect.
Grup administraqäo pfSense - FriendsTl
Group description, for administrative information only
admin
Not members
Mcwe to •Members'
Members
Move to • Nol mernbers
Hold down CTRL (PC)/COMMAND (Mac) key to select multiple items.
a Save
Configurando o grupo com permissões administrativas no Web Config

Observe na tela que o grupo foi criado, clique no lápis para que possamos edita-lo adicionando as permissões necessárias.

c
O
Zsense
System
COMMUNITY EDITION
LOA https://lo.254.o.1
/system_groupmanager.php
Interfaces Firewall Services. VPN. Status
Diagnostics
Help
System / User Manager / Groups
Users Groups Settings Authentication Servers
Groups
Group name
G_pfSense
admins
Description
Grup administraqäo pfSense - FriendsTl
System Administrators
All Users
Member Coutt
Editando o grupo para aplicar as configurações administrativas.

Ao clicar para editar observe que a janela tem uma “cara diferente”, agora temos a opção Assigned Privileges, clique em Add

c
O https://10.254 0.l/system
_groupmanager.php?act=edit&groupid=O
System/ User Manager/ Groups/ Edit
Users Groups Settings Authentication Servers
Group Properties
b_pfsense
Warning: Changing this setting may affect the local groups file, in which case a reboot may be required for the changes to
Description
membership
take effect.
Grup administraqäo pfSense - FriendsTl
Group description, for administrative information only
admin
Not members
Move to "Members'
Members
Move to •Not
Hold down CTRL (PC)/COMMAND (Mac) key to select multiple items.
Assigned Privileges
+ Add
a Save
Atribuindo privilégios administrativos ao grupo

Uma nova tela será apresentada, localize WebCfg – All pages e em seguida clique em salvar.

c
Zsense
System
COMMUNITY EDITION
https://
10.254.0.1
/system_groupmanager_addprivs.php?groupid=O
Interfaces Firewall Services VPN- Status. Diagnostics
Help
System/ User Manager/ Groups/ Edit/ Add Privileges
Users Groups Settings Authentication Servers
Group Privileges
Group
G_pfSense
System - HA node sync
Config: Deny Config Write
User -
User - Notices: View
User - Notices: View and Clear
- Services: Captive Portal login
User
System: Copy files (scp)
User -
- System: Copy files to home directory (chrooted
User
System: Shell account access
User -
System: SSH tunneling
User -
User- VPN: IPsec xauth Dialin
VPN: L2TP Dialin
User -
- VPN: PPPOE Dialin
User
WebCfg - AJAX: Get Queue Stats
WebCfg - AJAX: Get Service Providers
WebCf
- AJAX: Get stats
WebCf
-All a es
WebCfg - Crash reporter
WebCfg - Dashboard (all)
WebCfg - Dashboard widgets (direct access).
Web Cf
- Dia nostics: ARP Table
Hold down CTRL (PC)/COMMAND (Mac) key to select multiple items.
Aplicando permissão de adminsitrador ao grupo.

E para concluir a configuração ainda em User Manager clique em Settings e na opção Authentication Server selecione AD (Nome da configuração do Active Directory que realizamos alguns passos atrás)

c
O
Zsense
System
COMMUNITY EDITION
LOA https://lo.254.o.1
/system_usermanager_settings.php
Interfaces Firewall Services. VPN- Status. Diagnostics
Help
System / User Manager / Settings
Users Groups Settings Authentication Servers
Settings
Session timeout
Authentication
Shell Authentication
Auth Refresh Time
Time in minutes to expire idle management sessions. The default is 4 hours (240 minutes). Enter O to never expire sessions.
NOTE This is a security risk!
Local Database
Local Database
If RADIUS or LDAP server is selected it is used for console and SSH authentication. Othervvise, the Local Database is used.
To allow logins v.'Mh RADIUS credentials, equivalent local users with the expected privileges must be created first.
To allow logins wnh LDAP credentials, Shell Authentication Group DN must be specified on the LDAP server configuration
page.
Time in seconds to cache authentication results. The default is 30 seconds, maximum 3600 (one hour). Shorter times result
in more frequent queries to authentication servers.
B save k save&Test
Aplicando a configuração de autenticação através do Active Directory

Clique em Salvar e Testar, caso esteja tudo correto você deve ver algo parecido com o print abaixo;

c
O
LDAP settings
Test results
https://lO.254.O.l
/system_usermanager_settings.php
Attempting connection to
Attempting bind to
Attempting to fetch Organizational Units from
Organization units found
18.254.e.1ß
1ø.254.ø.1ø
18.254.e.1ø
OLI
OLI
OLI
OLI
OLI
CN
CN
Auth Refresh Time
= Brasil OLI=Fri ends TI DC=fri end sti com, br
OLI=Comput ers , OLI=SaoPauIo, OLI= Bras i I , OLI= F ri ends TI , DC=fri end st i , com,
=Domain
= Fri ends TI
OLI=Gnups , OLI= F riendsTI , DC=fri end sti , com, br
=SaoPauIo, OLI=8rasi I , OLI=F ri endsTI , DC=fri end sti com.DC=br
=lJs ers , OLI=SaoPauIo, OIJ= I , OIJ=F ri endsTI , DC=fri end sti , com.DC=br
=lJs DC=fri end sti com, br
=lJsers , n , DC=fri end sti com, br
Time in seconds to cache authentication results. The default is 30 seconds, maximum 3600 (one hour). Shorter times result
in more frequeni queries to authentication servers.
a Save Save
Resultado teste autenticação AD

Agora com um usuário que faça parte do grupo G_pfSense realize a autenticação no Web Config do seu pfSense e observe o User que está conectado.

c
Zsense
System
COMMUNITY EDITION
O
https://10.254.o.1
Interfaces
Firewall
Services
peo
VPN
Status
Diagnostics
Help
Status/ Dashboard
System Information
(LDAP/AO)
Microsoft Azure
FriendsTI.com.l:
Interfaces
VLA"L172
NTP Status
Server Time
Sync Source
Firewall Logs
1 OGbase-T
10Gbase-T
1 OGbase-T
-03
peo
192.168.1.107
10.254.0.1
172.254.0.1
BIOS
CPU Type
Kernel PTI
MDS Mitigation
Netgate Device ID: 67e68ad8299cc788c5bb
Vendor: American Inc.
version: 090008
Release Date: Fri Dec 7 2018
2.52-RELEASE (amd64)
built on Fri Jul EDT 2021
Freeaso 122-STA8LE
The system is on the latest version.
Version information updated at Tue Dec 21 2Cr.10:38
-032021
Intel(R) Core(TM) i5-8365U CPU @ 1.60GHz
2 CPUs: 1 package(s) x 1 core(s) x 2 hardware
threads
AES-NI CPU Crypto: Yes (inactive)
QAT crypto: No
Disabled
Inactive
200.160.7.186 (stratum 1, .ONBR.)
Act
X
X
X
X
X
Time
Dec 21 21:08
Dec 21 21:08
Dec 21 21:08
Dec 21 21:08
Dec 21 21:08
IF
WAN
WAN
WAN
WAN
WAN
Source
192.168.1.100
192.168.1.100
192.168.1.100
192.168.1.100
192.168.1.100
239.255.255.250:1900
224.0.0.251:5353
239.255.255.250:1900
239.255.255.250:1900
239.255.255.250:1900
Gateways
@ WAN_DHCP—
192.168.1.1
Loss
1.1ms
RTTsd
0.9ms
Status
Online
Dashboard pfSense

Caso um usuário que não faça parte do grupo G_pfSense tente realizar o login em seu pfSense a seguinte mensagem será apresentada;

c
O https://10.254.o.1
Zsense
No page assigned to this user! Click here to logout.
Teste autenticação com usuário sem permissão administrativa

Se você seguiu corretamente estes passos será possível a autenticação em seu pfSense através de usuários do seu active directory.

Caso tenha algum problema e não tenha tido sucesso nos testes, recomendo que leia atentamente este tutorial novamente e consulte a documentação de referencia abaixo.

Referências:

Active Directory LDAP Example
https://docs.netgate.com/pfsense/en/latest/recipes/external-authentication.html#active-directory-ldap-example

Gostou? Curta e compartilhe!

Duvidas, críticas ou elogios deixe nos comentários!

Veja também:

TUTORIAL: COMO CRIAR NAT NO PFSENSE

DICA: PING EXTERNO NA WAN DO PFSENSE

TUTORIAL: VPN IPSEC ENTRE PFSENSE 2.2.4 E PFSENSE 2.3

TUTORIAL: PFSENSE OPENVPN

Jean Oliveira

Profissional de Tecnologia da Informação com 10 anos de experiência em empresas de diversos portes. Ampla experiência em administração de servidores Windows, implantação e administração de serviços AD, DNS, DHCP, DFS, GPO, WDS e WSUS. Forte atuação em suporte e administração de servidores virtuais com Hyper-V e VMWare, conhecimentos avançados em Veeam Backup e Veritas BackupExec. Experiência em suporte e administração de Citrix Virtual Apps e Desktops. Vivencia em monitoramento de redes e servidores com Zabbix e SolarWinds. Conhecimentos avançados em desenvolvimento de scripts para automação de tarefas com PowerShell. Foco na melhoria da experiência do usuário e redução de custos operacionais. Capacidade de análise de problemas em ambientes de missão crítica propondo soluções rápidas e efetivas, profissional dinâmico, comprometido, proativo e diligente.

Related Posts
Leave a reply
Captcha Click on image to update the captcha .