Estoy buscando usar mi estación de trabajo Linux en la red de nuestra empresa, pero me he encontrado con algunos problemas, específicamente 802.1xi.
Soy root en mi máquina y administrador de dominio de Windows, por lo que debería poder acceder a lo que sea necesario para que esto funcione. Actualmente, mi máquina Linux tiene conectividad restringida, lo que me lleva a creer que se ha puesto en un vlan predeterminado para clientes que no son 802.1x.
Supongo que mi pregunta general es: ¿cómo puedo hacer que mi máquina Linux use 802.1x en la red de Windows cableada? La red es un dominio típico de Windows y utiliza cuentas de máquina y de usuario.
Esto es lo que sé y he probado hasta ahora:
Creo que voy a necesitar obtener un certificado de máquina de cliente válido para la máquina, el certificado de CA para el dominio y la clave privada para el cliente
Idea 1, tome una clave válida de una máquina Windows / máquina de dominio ca Ejecuté una VM de Windows en la máquina Linux, y la uní al dominio, pensando que esto produciría un certificado de cliente válido que podría obtener para la máquina Linux. - con ese fin, exporté el certificado de cliente y el certificado de ca del servidor de Windows ca, luego los convertí a formato PEM, listos para el administrador de red en Linux (suponiendo que necesita PEM no DER). - Luego intenté exportar la clave privada en la máquina virtual de Windows usando certmgr, pero se marcó como no exportable :-(
La idea 2 era powerbroker ... - Usé powerbroker open (formalmente de la misma manera) para unir la máquina Linux al dominio, getent passwd ahora muestra a todos los usuarios del dominio. - Pensé que esto pondría un certificado de cliente y una clave privada en el sistema en algún lugar (/ etc / ssl / certs?) Pero no puedo encontrar nada
Idea 3, pregúntale a alguien que sepa lo que realmente está haciendo.
Debo señalar que originalmente esta máquina Linux tenía Windows (que p2v'd en la instalación de Linux), así que sé que el conmutador de red está configurado correctamente, y el MAC, etc., es aceptado en la red; Estoy bastante seguro de que es solo un problema de 802.1x
Editar: olvidé por completo mencionar su giro fedora 21 xfce, 64 bits.
fuente
Respuestas:
¡Malas noticias para todos! Parece que hay un error no corregido en Fedora 21: la conexión por cable con 802.1x PEAP / MSCHAPv2 no funciona . Entonces, aunque la respuesta a continuación puede funcionar para otras distribuciones, los usuarios de Fedora 21 no tienen suerte.
Nunca lo intenté yo mismo, pero esta publicación parece contener un tutorial bastante detallado para configurar 802.1x entre el cliente Linux y el dominio de Windows. Tenga en cuenta la parte de solicitud de certificado: debe resolver su problema de certificado no exportable. Las versiones de software son bastante antiguas ( Ubuntu es 8.04 y Power Broker de Beyond Trust todavía es igual ), pero la idea básica me parece sólida.
He formateado la publicación mencionada anteriormente para que sea más fácil de leer. Las citas hacen que los cuadros de código sean grises sobre grises, así que lo descarté, lo siento:
Descargo de responsabilidad: esta guía está escrita desde la perspectiva de la distribución Linux Ubuntu 8.04. Para que esto funcione con otras distribuciones de Linux o Unix, es posible que sea necesario realizar algunos cambios.
Las dos cosas principales que son necesarias para que su máquina Linux se autentique a través de 802.1x es un certificado de cliente y una cuenta en el dominio de Windows. Durante el proceso de autenticación, el cliente Linux presenta su certificado de computadora al conmutador, que a su vez lo presenta al servidor RADIUS que verifica el certificado y verifica la cuenta de computadora a la que está asignado el certificado en Active Directory. Si el certificado y la cuenta de la computadora son válidos, entonces el servidor RADIUS aprueba la solicitud de autenticación enviándola de vuelta al conmutador, que a su vez autentica el puerto al que está conectada la caja Linux.
Lo primero que debe hacerse es unir su computadora Linux al dominio de Windows. Dado que Linux no puede unirse de forma nativa a un dominio de Windows, debemos descargar el software necesario para permitirnos hacer esto. Del mismo modo, hace que el software nos permita hacer exactamente esto. Para instalar esto en Ubuntu es muy simple, solo siga estos pasos:
enter the FQDN of your domain here
enter your admin account here
, puede usar el formato[email protected]
. También debe poder usar la versión de GUI yendo aSystem → Administration → Likewise.
Si no está ejecutando Ubuntu, puede descargar el software aquí http://www.likewisesoftware.com/products/likewise_open . Ahora puede cerrar sesión y volver a iniciar sesión con su cuenta de dominio. Creo que tanto el formato
[email protected]
como el dominio \ usuario funcionan. Probaré esto más tarde.Hay tres archivos ubicados en la máquina Linux que deben configurarse correctamente para que esta autenticación tenga lugar. Estos tres archivos son:
Primero configuraremos el software para permitir que nuestra máquina Linux use un certificado de cliente para autenticarse en una red habilitada para 802.1x;
wpa_supplicant
será utilizado para estoSiga estos pasos para configurar su archivo wpa_supplicant.conf:
Pegue lo siguiente en el archivo y guárdelo:
Ahora debemos editar su archivo de interfaces. Siga estos pasos para configurar su archivo de interfaces:
Pegue lo siguiente en el archivo debajo de la
eth0
interfaz y guárdelo:El siguiente paso es generar e instalar sus certificados. Tendremos que generar un certificado autofirmado, luego generar una solicitud de certificado basada en el certificado autofirmado que creamos, luego instalar los certificados.
Nota: Al crear sus certificados, siempre que solicite su nombre, debe proporcionar el nombre de la computadora que se autenticará. Para estar seguro, recomiendo que el nombre coincida con la forma en que se asigna a la computadora, incluida la distinción entre mayúsculas y minúsculas. Si no está seguro de cómo se asigna a su computadora, abra una terminal y escriba hostname.
Sigue estos pasos:
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
.pementer a name for your private key/certificate here
-out .pemEjemplo: 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
.pemEjemplo: sudo openssl req -new -newkey rsa: 1024 -nodes -keyout privkey.pem -out certreq.pem
Todos los certificados creados se colocan en su directorio de inicio (
/home/<username>
). La siguiente parte es solicitar un certificado de su CA utilizando la solicitud de certificado que se creó en el paso anterior. Esto tendrá que hacerse en una máquina con Windows, ya que por alguna razón Linux y Windows no se llevan muy bien al solicitar y descargar certificados; Me pareció más fácil enviarme la solicitud de certificado por correo electrónico y realizarla en una máquina con Windows.Siga estos pasos para completar la solicitud de certificado:
http://caname/certsrv
).your Linux machine name
asígnele el nombre .pem. El sistema agregará automáticamente.cer
al final, así que simplemente elimínelo. Linux usa .pem para extensiones de certificados./etc/ssl/certs
carpeta, y debemos copiar su clave / certificado privado y la clave privada creada anteriormente en su/etc/ssl/private
carpeta. Ahora, solo root tiene permiso para hacer esto, por lo que puede hacerlo mediante la línea de comandos escribiendosudo cp /home/<username>/<certificate>.pem /etc/ssl/private
o/etc/ssl/certs
. Esto también se puede hacer desde la GUI copiando y pegando usando el comando gksudo y escribiendo nautilus. Nautilus es el navegador de archivos GUI que usa Ubuntu y lo ejecutará como root, lo que le permite copiar y pegar en directorios a los que solo root tiene acceso.Ahora que nuestros certificados están en su lugar, necesitamos decirle a openssl cómo queremos usar los certificados. Para hacer esto, debemos editar el archivo openssl.cnf y decirle que autentique nuestra máquina Linux como cliente y no como usuario.
Para hacer esto, siga estos pasos:
[usr_cert]
. En esta sección, necesitamos el lugar dondensCertType
se define como "Para el uso normal del cliente, esto es típico" , y debería haberlonsCertType = client, email
y se comentará. Elimine el comentario de esta línea y elimine el correo electrónico para que se muestrensCertType = client
. Ahora guarda el archivo.Ahora debe tener todo lo que necesita configurado correctamente para que una máquina Linux se ejecute en un entorno de dominio de Windows y se autentique con 802.1x.
Todo lo que queda ahora es reiniciar su servicio de red para que Linux use el
wpa_supplicant.conf
archivo que ahora está vinculado a sueth0
interfaz y se autentique. Así que solo corresudo service networking restart
. Si no obtiene una dirección IP después de que su interfaz vuelva a funcionar, puede solicitar manualmente una IP de su servidor DHCP escribiendosudo dhclient
.fuente