Benutzer-Werkzeuge

Webseiten-Werkzeuge


  • Deutsch (German)
  • English
  • Français (French)
de.bkp:intern:dokumentationen:pfsense-adauth

AD-Authentifizierung und RADIUS für pfSense

Version Status Datum Autor:in URL
0.1 Erster Entwurf 06.02.2023 S.E.
0.2 Ergänzungen 14.02.2023 S.E.
1.0 Review und Freigabe TT.MM.JJJJ Vorname Nachname

1. Kurzfassung

Ausgangssituation: Zur zentralisierung der Authentifizierung auf die pfSense soll herausgefunden werden wie die Authentifizierung einem Active-Directory-DC überlassen werden kann und schliesslich auf NPS/RADIUS aufgerüstet werden.
Umsetzung: Virtualisiert auf dem betrieblichen GNS3-Server mit nur dem für die Evaluation der geforderten Features zwingend notwendigen Aufbau
Ergebnis: AD und später der NPS/RADIUS kann wie im Hauptteil beschrieben die Authentifizierung von Usern sowie die Gruppenzugehörigkeit/Permissions sowie die Autorisierung der VPN übernehmen

2. Active Directory

Einrichtung AD-User und Gruppen

Als Erstes müssen auf dem Windows-Server die RollenAD-Domänendienste und DNS-Server eingerichtet werden.
Dann werden für die Testumgebung die AD-Gruppen Netadmins und VPN erstellt und die OU=uwu mit den Unter-OUs OU=Users und OU=Computers eingerichtet, Administratoren sind im AD built-in


Es werden folgende User eingerichtet:

User Group
m.strawberry Netadmins
s.folf VPN
k.fluffball Netadmins, VPN

LDIF-Notation der Container, User und Gruppen:

objectCategory

Container Users: CN=Orgarizational-Unit,CN=Schema,CN=Configuration,DC=uwu,DC=rawr
Gruppe Netadmins: CN=Group,CN=Schema,CN=Configuration,DC=uwu,DC=rawr
Gruppe VPN: CN=Group,CN=Schema,CN=Configuration,DC=uwu,DC=rawr
User Majira Strawberry: CN=Person,CN=Schema,CN=Configuration,DC=uwu,DC=rawr
User Keenora Fluffball: CN=Person,CN=Schema,CN=Configuration,DC=uwu,DC=rawr
Userin Stormi Folf: CN=Person,CN=Schema,CN=Configuration,DC=uwu,DC=rawr

distinguishedName

Container Users: OU=Users,OU=uwu,DC=uwu,DC=rawr
Gruppe Netadmins: CN=Netadmins,OU=Users,OU=uwu,DC=uwu,DC=rawr
Gruppe VPN: CN=Group,CN=Schema,CN=Configuration,DC=uwu,DC=rawr
User Majira Strawberry: CN=Majira Strawberry,OU=Users,OU=uwu,DC=uwu,DC=rawr
User Keenora Fluffball: CN=Keenora Fluffball,OU=Users,OU=uwu,DC=uwu,DC=rawr
Userin Stormi Folf: CN=Stormi Folf,OU=Users,OU=uwu,DC=uwu,DC=rawr

RADIUS/NPS

Grundkonfig NPS

Installation NPS-Rolle und Mgmt-Tools

Als Erstes müssen auf dem Windows-Server die Rolle „Network Policy and Access Services“ mit den dazugehörigen Management Tools installiert werden, am einfachsten geht das über die Powershell mit dem Befehl

Install-WindowsFeature NPAS -IncludeManagementTools

Konfiguration des NPS

Im Server-Manager muss als Nächstes die NPS-Konsole geöffnet werden. Diese findet sich unter Tools/Network Policy Service.
Dort muss man dann um den NPS in AD zu registrieren auf „NPS (Local)“ rechtsklicken, und dann „Register server in Active Directory“ auswählen.
Im daraufhin erscheinenden Dialogfeld zweimal OK auswählen, dann ist der NPS auch schon im AD registriert.

Konfigurieren der Kontoführung für den NPS

Man öffne die NPS-Konsole, klicke auf „Accounting“ und wähle „Configure Accounting“
Dann im Wizard „Next/Log to a text file on the local computer/Next/Alle Kästchen Ankreuzen/Next/Next/Close“ durchführen.
Die NPS-Protokolldateieigenschaften von dieser Abfolge müssten passen

Hinzufügen der pfSense als RADIUS-Client

1. In der NPS-Konsole auf „RADIUS-Clients and Servers“ doppelklicken. 2. Auf „RADIUS-Clients“ rechtsklicken. 3. Sicherstellen, dass das Kästchen „Enable this RADIUS client“ angekreuzt ist. 4. „New“ anklicken 5. Bei „Friendly Name“ einen Namen eingeben, der mit dem auf der pfSense übereinstimmt. 6. Unter „Address (IP or DNS)“ die IP-Adresse der pfSense eingeben 7. Bei „Shared secret“ „Manual“ auswählen, das Shared Secret des OpenVPN-Services auf der pfSense zweimal eingeben und „OK“ drücken, worauf der VPN-Server in der Liste der im NPS konfigurierten RADIUS-Clients erscheinen sollte

Policies auf NPS definieren

Eine Connection Request Policy für die pfSense einrichten

NPS (local)/Policies/Rechtsklick auf Connection Request Policies/New/Namen eingeben/Next/Add/Access Client IPv4 Address/Add/IP der pSense eingeben/OK/Next/Next/Next/Finish

die Network policies für die Gruppen erstellen

NPS (local)/Policies/Rechtsklick auf Network Policies/New/Namen eingeben/Next/Add/User Groups/Add/Add Groups/Gruppennamen eingeben/OK/OK/Next/Next/Authentication Methods auswählen/Next/Next/Next/Finish

WICHTIG: Das RADIUS-Attribut für die Gruppe setzen

Properties der Network Policy/Settings/Standard/Add/Class/Add/Gruppenname als String einfügen/OK/Apply
gpupdate in Powershell

Konfiguration pfSense

Welche Einstellungen wurden vorgenommen
im User-Manager der pfSense wurden folgende Einstellungen vorgenommen um die Kommunikation mit dem Authentifizierungsserver zu ermöglichen:
{intern:dokumentationen:usermanager-pfsense.png}

Den Authentifizierungsserver konfigurieren

Im User-Manager der pfSense muss LDAP als Typ spezifiziert sein, und bei „Hostname“ die IP des Authentifizierungsserver angegeben sein:




Konfiguration User-Manager

Anlegen der Gruppen und Berechtigungen

im User-Manager-Tab „Groups“ wurde die Gruppe „Netadmins“ erstellt, die Namengleich ist mit der AD-Gruppe, dann wurden unter Groups/Netadmins/Editstift/Assigned Privileges/Add die Berechtigungen WebCfg - Firewall: Rules: Edit (um die Seite für Rulebearbeitung den Netadmins zuzuweisen), User - System: SSH tunneling (ohne das kein SSH-Zugang möglich) und User - System: Shell account access (ebenfalls notwendig für SSH) hinzugefügt.

ACHTUNG:SSH funktioniert nicht mit RADIUS-Gruppen!!! Nur mit lokalen Usern!


HTTPS-Zugang

Die pfSense-Gruppennamen müssen identisch zu den AD-Gruppennamen sein, mit der oben beschriebenen Konfiguration sollte https mit einer Browser-Warnung bereits funktionieren

SSH-Zugang

Der Gruppe „Netadmins“ wurden die Permissions User - System: SSH tunneling und User - System: Shell account access gewährt, damit Mitglieder der Gruppe dazu berechtigt sind eine SSH-Verbindung zu öffnen. Im Weiteren muss man noch bei Firewall/Rules/LAN der Anti-Lockout Rule port 22 hinzufügen.
Zu Testzwecken Auf die LAN-IP SSHen

ACHTUNG:SSH funktioniert nicht mit RADIUS!!! Nur mit lokalen Usern!

VPN

1. Erstellen des VPN-Servers auf der pfSense: VPN/OpenVPN/Wizards/Type of Server RADIUS/Next/Next/Next/Descriptive Name OpenVPN/Lifetime 3650/Common Name OpenVPN/Country Code CH/State or Province $Kanton/City $Gemeinde/Organization $Betrieb/Organizational Unit $Abteilung/Create new Certificate/Description OpenVPN/Interface $VPNInterface/Local Port 1194/IPv4 Tunnel Network 10.0.8.0/24/IPv4 Local Network $LAN/Concurrent Connections -1/Inter-Client Communication häkchen setzen/Next/Firewall Rule häkchen setzen/OpenVPN rule häkchen setzen/next/finish
2. OpenVPN Client Export installieren: System/Package Manager/Available Packages/Search Term openvpn/search/openvpn-client-export install/confirm/warten bis fertig
3. Zertifikat erstellen: System/Certificates/Certificates/Add/Sign/Create a Certificate Signing Request/Descriptive Name VPNUser/Common Name VPNUser/Country Code CH/State or Province $Kanton/City $Stadt/Organization $Betrieb/Organizational Unit $Abteilung/save/ 4. OpenVPN Client exportieren: VPN/OpenVPN/Client Export/Use Microsoft Certificate Storage instead of local files/Current Windows Installer/64-bit/Beibehalten/erweitert/trotzdem beibehalten/doppelklick auf die Datei/erweitert/trotzdem ausführen/install now/ja/close/ja/install/close/unten rechts openvpn gui rechtsklick verbinden/credentials eingeben/

Glossar

NPS == Network Policy Server, die Microsoft-Implementation von RADIUS.
RADIUS == Remote Authentication Dial-in User Service, Nomen est Omen.
AD == Active Directory, die Microsoft-Implementation von LDAP.
LDAP == Lightweight Directory Access Protocol, ein Protokoll zur zentralisierten Userverwaltung.
VPN == Virtual Private Network, eine Art Tunnel der es erlaubt über eine verschlüsselte Verbindung in einem anderen als dem lokalen Netz zu sein.
CA == Certificate Authority, eine Zertifikatsstelle die Zertifikate signieren kann.
PS == Abkürzung für die Windows-Powershell.

Quellenverzeichnis

Egil Rüefli
https://docs.netgate.com/pfsense/en/latest
https://serverfault.com
https://community.spiceworks.com/how_to/128944-pfsense-admin-logins-via-radius-using-active-directory-accounts
https://unix.stackexchange.com
https://www.dokuwiki.org/wiki:syntax
https://learn.microsoft.com/de-de/windows-server/remote/remote-access/vpn/always-on-vpn/deploy/vpn-deploy-nps
https://learn.microsoft.com/de-de/windows-server/networking/technologies/nps/nps-accounting-configure
https://learn.microsoft.com/en-us/windows-server/networking/core-network-guide/cncg/server-certs/install-the-certification-authority//

de.bkp/intern/dokumentationen/pfsense-adauth.txt · Zuletzt geändert: 2023/11/16 11:51 von 127.0.0.1