Inhaltsverzeichnis
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//