Ich möchte meine Linux-Workstation in unserem Unternehmensnetzwerk verwenden, bin jedoch auf einige Probleme gestoßen, insbesondere auf 802.1xi.
Ich bin root auf meinem Computer und ein Windows-Domänenadministrator, sodass ich auf alles zugreifen kann, was ich brauche, damit dies funktioniert. Derzeit hat mein Linux-Computer eine eingeschränkte Konnektivität, was mich glauben lässt, dass er in ein Standard-VLAN für Nicht-802.1x-Clients gestellt wurde.
Ich denke, meine allgemeine Frage lautet: Wie kann ich meinen Linux-Computer dazu bringen, 802.1x im kabelgebundenen Windows-Netzwerk zu verwenden? Das Netzwerk ist eine typische Windows-Domäne und verwendet sowohl Computerkonten als auch Benutzerkonten.
Das weiß ich und habe es bisher versucht:
Ich glaube, ich muss ein gültiges Client-Computer-Zertifikat für den Computer, das CA-Zertifikat für die Domäne und den privaten Schlüssel für den Client erhalten
Idee 1: Holen Sie sich einen gültigen Schlüssel von einem Windows-Computer / Domänen-Computer. Ich habe eine Windows-VM auf dem Linux-Computer ausgeführt und diese mit der Domäne verbunden, da ich dachte, dies würde ein gültiges Client-Zertifikat erzeugen, das ich für den Linux-Computer schnappen könnte. - Zu diesem Zweck habe ich dann das Client-Zertifikat und das CA-Zertifikat vom Windows-Ca-Server exportiert und sie dann in das PEM-Format konvertiert, bereit für den Netzwerkmanager unter Linux (vorausgesetzt, PEM benötigt nicht DER). - Ich habe dann versucht, den privaten Schlüssel auf der Windows-VM selbst mit certmgr zu exportieren, aber er wurde als nicht exportierbar markiert :-(
Idee 2 war Powerbroker ... - Ich habe Powerbroker open (formal ebenfalls) verwendet, um den Linux-Computer mit der Domain zu verbinden. Getent passwd zeigt jetzt alle Domain-Benutzer an. - Ich dachte, dies würde irgendwo ein Client-Zertifikat und einen privaten Schlüssel auf dem System platzieren (/ etc / ssl / certs?), Aber ich kann nichts finden
Idee 3: Fragen Sie jemanden, der weiß, was er tatsächlich tut.
Ich sollte darauf hinweisen, dass ursprünglich auf diesem Linux-Computer Windows installiert war (was ich bei der Linux-Installation getan habe), damit ich weiß, dass der Netzwerk-Switch richtig eingerichtet ist und der MAC usw. im Netzwerk akzeptiert wird. Ich bin mir ziemlich sicher, dass es nur ein 802.1x-Problem ist
Bearbeiten: völlig vergessen, seinen Fedora 21 xfce Spin, 64bit zu erwähnen.
quelle
Antworten:
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:
enter the FQDN of your domain here
enter your admin account here
, können Sie das Format verwenden[email protected]
. Sie sollten auch in der Lage sein, die GUI-Version zu verwenden, indem Sie auf gehenSystem → Administration → Likewise.
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
[email protected]
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:
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:
Fügen Sie Folgendes in die Datei ein und speichern Sie sie:
Jetzt müssen wir Ihre Schnittstellendatei bearbeiten. Führen Sie die folgenden Schritte aus, um Ihre Schnittstellendatei zu konfigurieren:
Fügen Sie Folgendes in die Datei unter der
eth0
Benutzeroberfläche ein und speichern Sie sie: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 -keyoutenter a name for your private key/certificate here
.pem -outenter a name for your private key/certificate here
.pemBeispiel: 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 - outenter a name for your certificate request here
.pemBeispiel: 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:
http://caname/certsrv
).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./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 vonsudo 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:
[usr_cert]
. In diesem Abschnitt benötigen wir das, wo dasnsCertType
als "Für den normalen Client-Gebrauch ist dies typisch" definiert ist , und es sollte habennsCertType = client, email
und es wird auskommentiert. Kommentieren Sie diese Zeile aus und löschen Sie die E-Mail, damit sie angezeigt wirdnsCertType = 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 Ihreeth0
Schnittstelle gebunden ist, und sich authentifiziert. Also lauf einfachsudo 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 eingebensudo dhclient
.quelle