Je cherche à utiliser ma station de travail Linux sur notre réseau d'entreprise, mais j'ai rencontré quelques problèmes, en particulier 802.1xi.
Je suis root sur ma machine et un administrateur de domaine Windows, donc je devrais pouvoir accéder à tout ce dont j'ai besoin pour que cela fonctionne. Actuellement, ma machine Linux a une connectivité restreinte, ce qui m'amène à croire qu'elle a été placée dans un vlan par défaut pour les clients non 802.1x.
Je suppose que ma question générale est: comment puis-je faire en sorte que ma machine Linux utilise 802.1x sur le réseau Windows câblé? Le réseau est un domaine Windows typique et utilise des comptes d'ordinateur ainsi que des comptes d'utilisateurs.
Voici ce que je sais et ai essayé jusqu'à présent:
Je crois que je vais avoir besoin d'obtenir un certificat d'ordinateur client valide pour l'ordinateur, le certificat CA pour le domaine et la clé privée pour le client
Idée 1, prenez une clé valide sur une machine Windows / domaine ca.J'ai exécuté une machine virtuelle Windows sur la machine Linux, et je l'ai jointe au domaine, pensant que cela produirait un certificat client valide que je pourrais utiliser pour la machine Linux. - à cette fin, j'ai ensuite exporté le certificat client et le certificat CA hors du serveur Windows CA, puis les ai convertis au format PEM, prêt pour le gestionnaire de réseau sous Linux (en supposant que PEM ne soit pas DER). - J'ai ensuite tenté d'exporter la clé privée sur la machine virtuelle Windows elle-même à l'aide de certmgr, mais elle a été marquée comme non exportable :-(
L'idée 2 était powerbroker ... - J'ai utilisé powerbroker open (formellement de même) pour joindre la machine linux au domaine, getent passwd montre maintenant tous les utilisateurs du domaine. - Je pensais que cela mettrait un certificat client et une clé privée sur le système quelque part (/ etc / ssl / certs?) Mais je ne trouve rien
Idée 3, demandez à quelqu'un qui sait ce qu'il fait réellement.
Je dois souligner qu'à l'origine cette machine linux avait des fenêtres dessus (que j'ai p2v'd lors de l'installation de linux) donc je sais que le commutateur réseau est correctement configuré, et le MAC etc est accepté sur le réseau; Je suis sûr que c'est juste un problème 802.1x
Edit: totalement oublié de mentionner son spin fedora 21 xfce, 64bit.
Réponses:
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:
enter the FQDN of your domain here
enter your admin account here
, vous pouvez utiliser le format[email protected]
. Vous devriez également pouvoir utiliser la version GUI en allant surSystem → Administration → Likewise.
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
[email protected]
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:
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:
Collez ce qui suit dans le fichier et enregistrez-le:
Nous devons maintenant éditer votre fichier d'interfaces. Suivez ces étapes pour configurer votre fichier d'interface:
Collez ce qui suit dans le fichier sous l'
eth0
interface et enregistrez-le: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 -keyoutenter a name for your private key/certificate here
.pem -outenter a name for your private key/certificate here
.pemExemple: 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
.pemExemple: 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:
http://caname/certsrv
).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./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 tapantsudo 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:
[usr_cert]
. Dans cette section, nous avons besoin de l'endroit où lensCertType
est défini comme "Pour une utilisation normale par le client, c'est typique" , et il devrait l'avoirnsCertType = client, email
et il sera commenté. Décommentez cette ligne et supprimez l'e-mail pour qu'il s'affichensCertType = 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é à votreeth0
interface et s'authentifie. Alors lancez-voussudo 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 tapantsudo dhclient
.la source