Schlechte Nachrichten, alle zusammen! Es scheint, dass Fedora 21 einen nicht behobenen Fehler aufweist: Die Kabelverbindung mit 802.1x PEAP / MSCHAPv2 funktioniert nicht . Während die folgende Antwort möglicherweise für andere Distributionen funktioniert, haben Fedora 21-Benutzer derzeit kein Glück.
Ich habe das selbst nie versucht, aber dieser Beitrag scheint eine ziemlich detaillierte Anleitung zum Einrichten von 802.1x zwischen Linux-Client und Windows-Domäne zu enthalten. Beachten Sie den Zertifikatanforderungsteil: Er sollte Ihr Problem mit nicht exportierbaren Zertifikaten lösen. Die Software - Versionen sind ziemlich alt ( Ubuntu ist 8.04 und darüber hinaus Trust Power Broker ist nach wie vor ebenfalls ), aber die Grundidee scheint mir solide.
Ich habe den oben genannten Beitrag formatiert, um das Lesen zu erleichtern. Durch das Zitieren werden Codefelder grau auf grau angezeigt, daher habe ich sie entfernt. Entschuldigung:
Haftungsausschluss: Dieses Handbuch wurde aus der Perspektive der Linux Ubuntu 8.04-Distribution geschrieben. Damit dies mit anderen Linux- oder Unix-Distributionen funktioniert, müssen möglicherweise einige Änderungen vorgenommen werden.
Die beiden wichtigsten Dinge, die Ihr Linux-Computer zur Authentifizierung über 802.1x benötigt, sind ein Client-Zertifikat und ein Konto in der Windows-Domäne. Während des Authentifizierungsprozesses präsentiert der Linux-Client sein Computerzertifikat dem Switch, der es wiederum dem RADIUS-Server vorlegt, der das Zertifikat überprüft, und überprüft das Computerkonto, dem das Zertifikat in Active Directory zugewiesen ist. Wenn das Zertifikat und das Computerkonto gültig sind, genehmigt der RADIUS-Server die Authentifizierungsanforderung, die an den Switch zurückgesendet wird, der wiederum den Port authentifiziert, mit dem die Linux-Box verbunden ist.
Als erstes müssen Sie Ihren Linux-Computer mit der Windows-Domäne verbinden. Da Linux einer Windows-Domäne nicht nativ beitreten kann, müssen wir die erforderliche Software herunterladen, damit wir dies tun können. Ebenso macht Software, damit wir genau dies tun können. Um dies unter Ubuntu zu installieren, ist es sehr einfach, folgen Sie einfach diesen Schritten:
- sudo apt-get update
- sudo apt-get install ebenfalls-open installieren
- sudo domainjoin-cli join
enter the FQDN of your domain here
enter your admin account here
, können Sie das Format verwenden user@domain.com
. Sie sollten auch in der Lage sein, die GUI-Version zu verwenden, indem Sie auf gehenSystem → Administration → Likewise.
- sudo update-rc.d ebenfalls offene Standardeinstellungen
- sudo /etc/init.d/likewise-open start
Wenn Sie Ubuntu nicht ausführen, können Sie die Software hier herunterladen: http://www.likewisesoftware.com/products/likewise_open . Sie können sich jetzt mit Ihrem Domain-Konto abmelden und wieder anmelden. Ich glaube, dass beide Formate von user@domain.com
und domain \ user beide funktionieren. Ich werde das später testen.
Auf dem Linux-Computer befinden sich drei Dateien, die korrekt konfiguriert werden müssen, damit diese Authentifizierung stattfinden kann. Diese drei Dateien sind:
- /etc/wpa_supplicant.conf
- / etc / network / interfaces
- /etc/openssl/openssl.cnf
Zuerst konfigurieren wir die Software so, dass unser Linux-Computer ein Client-Zertifikat zur Authentifizierung bei einem 802.1x-fähigen Netzwerk verwenden kann. wpa_supplicant
wird dafür verwendet.
Führen Sie die folgenden Schritte aus, um Ihre Datei wpa_supplicant.conf zu konfigurieren:
- sudo gedit /etc/wpa_supplicant.conf
Fügen Sie Folgendes in die Datei ein und speichern Sie sie:
# Where is the control interface located? This is the default path:
ctrl_interface=/var/run/wpa_supplicant
# Who can use the WPA frontend? Replace "0" with a group name if you
# want other users besides root to control it.
# There should be no need to chance this value for a basic configuration:
ctrl_interface_group=0
# IEEE 802.1X works with EAPOL version 2, but the version is defaults
# to 1 because of compatibility problems with a number of wireless
# access points. So we explicitly set it to version 2:
eapol_version=1
# When configuring WPA-Supplicant for use on a wired network, we don't need to
# scan for wireless access points. See the wpa-supplicant documentation if you
# are authenticating through 802.1x on a wireless network:
ap_scan=0
network={
ssid="<enter any name here, it doesn't matter>"
key_mgmt=IEEE8021X
eap=TLS
identity="<FQDN>/computers/<Linux computer name>"
client_cert="/etc/ssl/certs/<your authentication certificate name>.pem"
private_key="/etc/ssl/private/<your private key name>.pem"
}
Jetzt müssen wir Ihre Schnittstellendatei bearbeiten. Führen Sie die folgenden Schritte aus, um Ihre Schnittstellendatei zu konfigurieren:
- sudo gedit / etc / network / interfaces
Fügen Sie Folgendes in die Datei unter der eth0
Benutzeroberfläche ein und speichern Sie sie:
# Configure the system to authenticate with WPA-Supplicant on interface eth0
wpa-iface eth0
# In this case we have a wired network:
wpa-driver wired
# Tell the system we want to use WPA-Supplicant with our configuration file:
wpa-conf /etc/wpa_supplicant.conf
Der nächste Schritt ist das Generieren und Installieren Ihrer Zertifikate. Wir müssen ein selbstsigniertes Zertifikat generieren, dann eine Zertifikatanforderung basierend auf dem von uns erstellten selbstsignierten Zertifikat generieren und dann die Zertifikate installieren.
Hinweis: Wenn Sie Ihre Zertifikate erstellen und nach Ihrem Namen fragen, müssen Sie den Namen des Computers angeben, der sich authentifizieren soll. Aus Sicherheitsgründen empfehle ich, den Namen so anzupassen, wie er dem Computer zugewiesen ist, einschließlich der Groß- und Kleinschreibung. Wenn Sie sich nicht sicher sind, wie es Ihrem Computer zugewiesen ist, öffnen Sie ein Terminal und geben Sie den Hostnamen ein.
Folge diesen Schritten:
sudo openssl req -x509 -nodes -days enter in days how long you want the cert valid for
-newkey rsa: 1024 -keyout enter a name for your private key/certificate here
.pem -out enter a name for your private key/certificate here
.pem
Beispiel: sudo openssl req -x509 -nodes -days 365 -newkey rsa: 1024 -keyout privcert.pem -out privcert.pem
openssl req -new -newkey rsa: 1024 -nodes -keyout enter a name for your private key here
.pem - out enter a name for your certificate request here
.pem
Beispiel: sudo openssl req -new -newkey rsa: 1024 -nodes -keyout privkey.pem -out certreq.pem
Alle erstellten Zertifikate werden in Ihrem Home-Verzeichnis abgelegt ( /home/<username>
). Der nächste Teil besteht darin, ein Zertifikat von Ihrer Zertifizierungsstelle mithilfe der Zertifikatanforderung anzufordern, die im vorherigen Schritt erstellt wurde. Dies muss auf einem Windows-Computer erfolgen, da Linux und Windows aus irgendeinem Grund beim Anfordern und Herunterladen von Zertifikaten nicht gut miteinander auskommen. Ich fand es einfach einfacher, die Zertifikatanforderung per E-Mail an mich selbst zu senden und auf einem Windows-Computer auszuführen.
Führen Sie die folgenden Schritte aus, um die Zertifikatanforderung abzuschließen:
- Wechseln Sie in Ihr Home-Verzeichnis auf dem Linux-Computer und suchen Sie Ihre Zertifikatanforderungsdatei
- Senden Sie die Datei entweder per E-Mail an sich selbst oder öffnen Sie sie mit einem Texteditor (z. B. gedit). Kopieren Sie die Anforderung, fügen Sie sie in eine E-Mail ein und senden Sie sie an sich selbst.
- Öffnen Sie auf einem Windows-Client eine Webseite mit dem Internet Explorer auf der Website Ihrer Zertifizierungsstelle (z. B.
http://caname/certsrv
).
- Wählen Sie Zertifikat anfordern
- Erweiterte Zertifikatsanforderung
- Öffnen Sie nun Ihre E-Mail und erhalten Sie die Zertifikatanforderung, die Sie selbst per E-Mail gesendet haben.
- Wenn Sie sich die Datei per E-Mail geschickt haben, öffnen Sie sie mit dem Editor und kopieren Sie den Inhalt und fügen Sie ihn in das Anforderungsfeld für Base-64-codierte Zertifikate ein. Wenn Sie sich den Inhalt der Zertifikatsanforderungsdatei und nicht die Datei selbst per E-Mail gesendet haben, kopieren Sie die Anforderung einfach und fügen Sie sie von dort in das Feld für die Base-64-codierte Zertifikatanforderung ein.
- Klicken Sie auf Senden und laden Sie das Zertifikat in Base-64-Form herunter, nicht DER.
- Speichern Sie das Zertifikat auf Ihrem Desktop und nennen Sie es
your Linux machine name
.pem. Das System hängt das automatisch .cer
an das Ende an, löschen Sie es also einfach aus. Linux verwendet .pem für Zertifikatserweiterungen.
- Nehmen Sie diese Datei und senden Sie sie per E-Mail an sich selbst zurück.
- Holen Sie sich jetzt auf Ihrem Linux-Computer Ihr Zertifikat und speichern Sie es irgendwo (vorzugsweise in Ihrem Home-Ordner, um die Dinge organisiert und zusammen zu halten).
- Jetzt müssen wir Ihr Zertifikat, das Sie gerade erhalten haben, in Ihren
/etc/ssl/certs
Ordner kopieren und Ihren privaten Schlüssel / Ihr Zertifikat und Ihren privaten Schlüssel, die zuvor in Ihrem /etc/ssl/private
Ordner erstellt wurden, kopieren . Jetzt hat nur root die Berechtigung dazu. Sie können dies entweder über die Befehlszeile durch Eingabe von sudo cp /home/<username>/<certificate>.pem /etc/ssl/private
oder tun /etc/ssl/certs
. Dies kann auch über die GUI erfolgen, indem Sie mit dem Befehl gksudo kopieren und einfügen und nautilus eingeben. Nautilus ist der von Ubuntu verwendete GUI-Dateibrowser, der als Root ausgeführt wird und das Kopieren und Einfügen in Verzeichnisse ermöglicht, auf die nur root Zugriff hat.
Nachdem unsere Zertifikate vorhanden sind, müssen wir openssl mitteilen, wie wir die Zertifikate verwenden möchten. Dazu müssen wir die Datei openssl.cnf bearbeiten und anweisen, unseren Linux-Computer als Client und nicht als Benutzer zu authentifizieren.
Gehen Sie dazu folgendermaßen vor:
- sudo gedit /etc/ssl/openssl.cnf
- Scrollen Sie etwa auf halber Strecke nach unten und Sie sollten einen Abschnitt namens sehen
[usr_cert]
. In diesem Abschnitt benötigen wir das, wo das nsCertType
als "Für den normalen Client-Gebrauch ist dies typisch" definiert ist , und es sollte haben nsCertType = client, email
und es wird auskommentiert. Kommentieren Sie diese Zeile aus und löschen Sie die E-Mail, damit sie angezeigt wird nsCertType = client
. Speichern Sie nun die Datei.
Jetzt sollten Sie alles, was Sie benötigen, richtig konfiguriert haben, damit ein Linux-Computer in einer Windows-Domänenumgebung ausgeführt und mit 802.1x authentifiziert wird.
Jetzt müssen Sie nur noch Ihren Netzwerkdienst neu starten, damit Linux die wpa_supplicant.conf
Datei verwendet, die jetzt an Ihre eth0
Schnittstelle gebunden ist, und sich authentifiziert. Also lauf einfach sudo service networking restart
. Wenn Sie nach dem Wiederherstellen Ihrer Schnittstelle keine IP-Adresse erhalten, können Sie eine IP-Adresse manuell von Ihrem DHCP-Server anfordern, indem Sie Folgendes eingeben sudo dhclient
.