Freeradius Zertifikate für Server und Client eap-tls Authentifizierung
Für die EAP-TLS Authentifizierung werden mindestens 3 Zertifikate gebraucht, das sind CA-Zertifikat, Server-Zertifikat und Client-Zertifikat. Auf dem Debian Linuxsystem stehen einige Dateien für die Zertifikatserstellung zur Verfügung. Wir müssen die lediglich anpassen und dann die Zertifikate generieren.
Sind die Zertifikate generiert, können wir die in der Freiradius-Konfiguration oder auf dem Client nutzen.
Um ein eigenes Zertifikat zu erstellen, müssen wir zuerst vier Dateien bearbeiten. Das sind Textdateien. In allen Dateien müssen wir fast die gleichen Angaben machen. Es gibts nur kleine Anpassungen. Die Zertifikate werden für 10 Jahre erstellt.
/etc/freeradius/3.0/certs/ca.cnf
/etc/freeradius/3.0/certs/server.cnf
/etc/freeradius/3.0/certs/client.cnf
/etc/freeradius/3.0/certs/xpextensions
[ CA_default ]
...
default_days = 3650
...
crlDistributionPoints = URI:http://www.monoplan.de
...
[ req ]
...
input_password = secret
output_password = secret
...
[certificate_authority]
countryName = DE
stateOrProvinceName = Bayern
localityName = Stein (Mittelfranken)
organizationName = IT-SYS/MBS
emailAddress = admin@mono.plan
commonName = RadSchuleX
[v3_ca]
...
crlDistributionPoints = URI:http://www.monoplan.de
[ CA_default ]
...
default_days = 3650
...
[ req ]
...
input_password = secret
output_password = secret
...
[server]
countryName = DE
stateOrProvinceName = Bayern
localityName = Stein (Mittelfranken)
organizationName = IT-SYS/MBS
emailAddress = admin@mono.plan
commonName = RadSchuleX
[ CA_default ]
...
default_days = 3650
...
[ req ]
...
input_password = secret
output_password = secret
...
[client]
countryName = DE
stateOrProvinceName = Bayern
localityName = Stein
organizationName = IT-SYS/MBS
emailAddress = ddf1@mono.plan
commonName = ddf1@mono.plan
extendedKeyUsage = 1.3.6.1.5.5.7.3.2
crlDistributionPoints = URI:http://www.monoplan.de
[ xpserver_ext]
extendedKeyUsage = 1.3.6.1.5.5.7.3.1
crlDistributionPoints = URI:http://www.monoplan.de
...
certificatePolicies = 1.3.6.1.4.1.40808.1.3.2
root@ddf1:~# openssl rand -out .rand 2048
root@ddf1:~# make ca
root@ddf1:~# make server
root@ddf1:~# make client
Die Zertifikate wurden erstellt. Für unsere Zwecke werden die Dateien ca.pem, server.pem und server.key für die Konfiguration des Radius-Dienstes gebraucht.
Die Zertifikate ca.der und client.p12 müssen wir auf den Clients installieren.
Mit dem folgenden Befehl können wir auf shell Ebene den Inhalt des Zertifikates auslesen.
root@ddf1:~# openssl x509 -in server.pem -text -noout
root@ddf1~# chown -R freerad:freerad *
root@ddf1~# systemctl restart freeradius.service
Wir haben die gewünschte Zertifikate erstellt und jetzt können wir die in unsere Radius-Konfiguration einbinden als auch auf den Client installieren. Konzept 2/Freeradius-EAP-TLS
Die zwei Client-Zertifikate client.p12 und client.pem können wir umbenennen auf die Namen, die in der Datei
/etc/freeradius/3.0/certs/client.cnf unter commonName steht. In unserem Fall wäre das ddf1@mono.plan.
root@ddf1~# mv client.pem ddf1@mono.plan.pem
Danach kann man wieder die Datei /etc/freeradius/3.0/certs/client.cnf bearbeiten. Die Bezeichnung unter commonName kann man ändern und/oder auch die E-Mail-Adresse, wenn so ein Bedarf existiert. Danach erstellt man mit make das nächste Zertifikat.
Mit dieser Methode kann man mehrere Client Zertifikate erstellen und nach Bedarf auf den Clients einsätzen.
Wichtig für uns bei der Nutzung des CA-Zertifikates ist der CN Eintrag. Auf dem Client, wenn das CA-Zertifikat installiert und genutzt wird, muss man unter Domäne gerade dieser Wert eintragen. Es ist auch wichtig, dass auch keine Leerzeichen vorkommen. Wir haben hier einfach RadSchuleX eingetragen
Um bestimmte Informationen in der Log-Datei zu erhalten, könnten wir noch bestimmte Einträge in der Datei: /etc/freeradius/3.0/radiusd.conf anpassen. Die Einträge befinden sich im Bereich Log in der genannten Datei.
stripped_names = yes
# auth = no
auth = yes
auth_badpass = yes
auth_goodpass = no
msg_goodpass = "OK"
msg_badpass = "Falsch"