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 .