Mauvaise nouvelle, tout le monde! Il semble qu'il y ait un bogue non corrigé dans Fedora 21: La connexion filaire avec 802.1x PEAP / MSCHAPv2 ne fonctionne pas . Ainsi, bien que la réponse ci - dessous puisse fonctionner pour d'autres distributions, les utilisateurs de Fedora 21 n'ont actuellement pas de chance.
Je n'ai jamais essayé cela moi-même, mais cet article semble contenir une procédure pas à pas assez détaillée pour configurer le 802.1x entre le client Linux et le domaine Windows. Notez la partie demande de certificat: elle devrait résoudre votre problème de certificat non exportable. Les versions du logiciel sont assez anciennes ( Ubuntu est la 8.04 et le Power Broker de Beyond Trust l' est toujours également ), mais l'idée de base me semble solide.
J'ai formaté le message susmentionné pour en faciliter la lecture. La citation fait griser les zones de code sur le gris, donc je l'ai abandonné, désolé:
Avertissement: Ce guide est écrit du point de vue de la distribution Linux Ubuntu 8.04. Pour que cela fonctionne avec d'autres distributions Linux ou Unix, certaines modifications peuvent devoir être apportées.
Les deux éléments principaux nécessaires à l'authentification de votre machine Linux sur 802.1x sont un certificat client et un compte dans le domaine Windows. Au cours du processus d'authentification, le client Linux présente son certificat d'ordinateur au commutateur, qui à son tour le présente au serveur RADIUS qui vérifie le certificat et vérifie le compte d'ordinateur auquel le certificat est attribué dans Active Directory. Si le certificat et le compte d'ordinateur sont valides, le serveur RADIUS approuve la demande d'authentification qui la renvoie au commutateur, qui à son tour authentifie le port auquel le boîtier Linux est connecté.
La première chose à faire est de joindre votre ordinateur Linux au domaine Windows. Puisque Linux ne peut pas rejoindre nativement un domaine Windows, nous devons télécharger le logiciel nécessaire pour nous permettre de le faire. Fait également des logiciels pour nous permettre de faire exactement cela. Pour l'installer sur Ubuntu, c'est très simple, il suffit de suivre ces étapes:
- mise à jour sudo apt-get
- sudo apt-get installe également-open
- sudo domainjoin-cli join
enter the FQDN of your domain here
enter your admin account here
, vous pouvez utiliser le format user@domain.com
. Vous devriez également pouvoir utiliser la version GUI en allant surSystem → Administration → Likewise.
- sudo update-rc.d également ouvert par défaut
- sudo /etc/init.d/likewise-open start
Si vous n'utilisez pas Ubuntu, vous pouvez télécharger le logiciel ici http://www.likewisesoftware.com/products/likewise_open . Vous pouvez maintenant vous déconnecter et vous reconnecter à l'aide de votre compte de domaine. Je crois que les deux formats user@domain.com
et domaine \ utilisateur fonctionnent tous les deux. Je testerai cela plus tard.
Il y a trois fichiers situés sur la machine Linux qui doivent être configurés correctement pour que cette authentification ait lieu. Ces trois fichiers sont:
- /etc/wpa_supplicant.conf
- / etc / network / interfaces
- /etc/openssl/openssl.cnf
Nous allons d'abord configurer le logiciel pour permettre à notre machine Linux d'utiliser un certificat client pour s'authentifier sur un réseau compatible 802.1x; wpa_supplicant
sera utilisé pour cela.
Suivez ces étapes pour configurer votre fichier wpa_supplicant.conf:
- sudo gedit /etc/wpa_supplicant.conf
Collez ce qui suit dans le fichier et enregistrez-le:
# 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"
}
Nous devons maintenant éditer votre fichier d'interfaces. Suivez ces étapes pour configurer votre fichier d'interface:
- sudo gedit / etc / network / interfaces
Collez ce qui suit dans le fichier sous l' eth0
interface et enregistrez-le:
# 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
L'étape suivante consiste à générer et installer vos certificats. Nous devrons générer un certificat auto-signé, puis générer une demande de certificat basée sur le certificat auto-signé que nous avons créé, puis installer les certificats.
Remarque: Lors de la création de vos certificats, chaque fois qu'il vous demande votre nom, vous devez fournir le nom de l'ordinateur qui s'authentifiera. Pour être sûr, je recommande de faire correspondre le nom à la façon dont il est attribué à l'ordinateur, y compris en respectant la casse. Si vous ne savez pas comment il est attribué à votre ordinateur, ouvrez un terminal et saisissez le nom d'hôte.
Suivez ces étapes:
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
Exemple: 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
Exemple: sudo openssl req -new -newkey rsa: 1024 -nodes -keyout privkey.pem -out certreq.pem
Tous les certificats créés sont placés dans votre répertoire personnel ( /home/<username>
). La partie suivante consiste à demander un certificat à votre autorité de certification à l'aide de la demande de certificat créée à l'étape précédente. Cela devra être fait sur une machine Windows, car pour une raison quelconque, Linux et Windows ne s'entendent pas très bien lors de la demande et du téléchargement de certificats; Je viens de trouver plus facile de m'envoyer la demande de certificat et de l'exécuter sur une machine Windows.
Suivez ces étapes pour terminer la demande de certificat:
- Accédez à votre répertoire personnel sur la machine Linux et recherchez votre fichier de demande de certificat
- Soit vous envoyez le fichier par e-mail, soit vous ouvrez le fichier avec un éditeur de texte (tel que gedit) et vous copiez et collez la demande dans un e-mail et vous l'envoyez.
- Sur un client Windows, ouvrez une page Web à l'aide d'IE sur le site Web de votre autorité de certification (par exemple
http://caname/certsrv
).
- Sélectionnez Demander un certificat
- Demande de certificat avancée
- Ouvrez maintenant votre e-mail et obtenez la demande de certificat que vous avez envoyée par e-mail.
- Si vous vous avez envoyé le fichier par e-mail, ouvrez-le avec le bloc-notes et copiez et collez le contenu dans la boîte de demande de certificat codé en Base-64. Si vous vous avez envoyé par e-mail le contenu du fichier de demande de certificat plutôt que le fichier lui-même, copiez-collez simplement la demande à partir de là dans la boîte de demande de certificat codée en Base-64.
- Cliquez sur Soumettre et téléchargez le certificat sous forme Base-64, pas DER.
- Enregistrez le certificat sur votre bureau et nommez-le
your Linux machine name
.pem. Le système ajoutera automatiquement le .cer
à la fin de celui-ci, il suffit donc de le supprimer. Linux utilise .pem pour les extensions de certificat.
- Prenez ce fichier et renvoyez-le par e-mail.
- Maintenant, sur votre machine Linux, obtenez votre certificat et enregistrez-le quelque part (de préférence votre dossier personnel pour garder les choses organisées et ensemble).
- Maintenant, nous devons copier votre certificat que vous venez de recevoir dans votre
/etc/ssl/certs
dossier, et nous devons copier votre clé / certificat privé et la clé privée créés précédemment dans votre /etc/ssl/private
dossier. Maintenant, seul root a l'autorisation de le faire, vous pouvez donc le faire en ligne de commande en tapant sudo cp /home/<username>/<certificate>.pem /etc/ssl/private
ou /etc/ssl/certs
. Cela peut également être fait à partir de l'interface graphique en copiant et collant en utilisant la commande gksudo et en tapant nautilus. Nautilus est le navigateur de fichiers GUI qu'Ubuntu utilise et il l'exécutera en tant que root vous permettant de copier et coller dans des répertoires auxquels seule root a accès.
Maintenant que nos certificats sont en place, nous devons dire à openssl comment nous voulons utiliser les certificats. Pour ce faire, nous devons modifier le fichier openssl.cnf et lui dire d'authentifier notre machine Linux en tant que client plutôt qu'en tant qu'utilisateur.
Pour le faire, suivez ces étapes:
- sudo gedit /etc/ssl/openssl.cnf
- Faites défiler vers le bas à mi-chemin et vous devriez voir une section intitulée
[usr_cert]
. Dans cette section, nous avons besoin de l'endroit où le nsCertType
est défini comme "Pour une utilisation normale par le client, c'est typique" , et il devrait l'avoir nsCertType = client, email
et il sera commenté. Décommentez cette ligne et supprimez l'e-mail pour qu'il s'affiche nsCertType = client
. Enregistrez maintenant le fichier.
Vous devez maintenant avoir tout ce dont vous avez besoin configuré correctement pour qu'une machine Linux fonctionne dans un environnement de domaine Windows et s'authentifie à l'aide de 802.1x.
Il ne vous reste plus qu'à redémarrer votre service réseau afin que Linux utilise le wpa_supplicant.conf
fichier qui est maintenant lié à votre eth0
interface et s'authentifie. Alors lancez-vous sudo service networking restart
. Si vous n'obtenez pas d'adresse IP après le retour de votre interface, vous pouvez demander manuellement une IP à votre serveur DHCP en tapant sudo dhclient
.