¡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:
- sudo apt-get update
- sudo apt-get install likewise-open
- sudo domainjoin-cli join
enter the FQDN of your domain here
enter your admin account here
, puede usar el formato user@domain.com
. También debe poder usar la versión de GUI yendo aSystem → Administration → Likewise.
- sudo update-rc.d igualmente-abre valores predeterminados
- sudo /etc/init.d/likewise-open start
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 user@domain.com
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:
- /etc/wpa_supplicant.conf
- / etc / network / interfaces
- /etc/openssl/openssl.cnf
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 esto
Siga estos pasos para configurar su archivo wpa_supplicant.conf:
- sudo gedit /etc/wpa_supplicant.conf
Pegue lo siguiente en el archivo y guárdelo:
# 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"
}
Ahora debemos editar su archivo de interfaces. Siga estos pasos para configurar su archivo de interfaces:
- sudo gedit / etc / network / interfaces
Pegue lo siguiente en el archivo debajo de la eth0
interfaz y guárdelo:
# 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
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 -keyout enter a name for your private key/certificate here
.pem enter a name for your private key/certificate here
-out .pem
Ejemplo: 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
Ejemplo: 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:
- Vaya a su directorio de inicio en la máquina Linux y busque su archivo de solicitud de certificado
- Envíe el archivo por correo electrónico o abra el archivo con un editor de texto (como gedit) y copie y pegue la solicitud en un correo electrónico y envíelo a usted mismo.
- En un cliente de Windows, abra una página web con IE en el sitio web de su CA (como
http://caname/certsrv
).
- Seleccione Solicitar un certificado
- Solicitud de certificado avanzada
- Ahora abra su correo electrónico y reciba la solicitud de certificado que se envió por correo electrónico.
- Si se envió el archivo por correo electrónico, ábralo con el bloc de notas y copie y pegue el contenido en el cuadro de solicitud de certificado codificado Base-64. Si se envió por correo electrónico el contenido del archivo de solicitud de certificado en lugar del archivo en sí, simplemente copie y pegue la solicitud desde allí en el cuadro de solicitud de certificado codificado Base-64.
- Haga clic en Enviar y descargue el certificado en forma de Base 64, no DER.
- Guarde el certificado en su escritorio y
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.
- Tome este archivo y envíelo por correo electrónico.
- Ahora, en su máquina Linux, obtenga su certificado y guárdelo en algún lugar (preferiblemente su carpeta de inicio para mantener las cosas organizadas y juntas).
- Ahora, necesitamos copiar su certificado que acaba de recibir en su
/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 escribiendo sudo 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:
- sudo gedit /etc/ssl/openssl.cnf
- Desplácese hacia abajo hasta la mitad y debería ver una sección llamada
[usr_cert]
. En esta sección, necesitamos el lugar donde nsCertType
se define como "Para el uso normal del cliente, esto es típico" , y debería haberlo nsCertType = client, email
y se comentará. Elimine el comentario de esta línea y elimine el correo electrónico para que se muestre nsCertType = 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 su eth0
interfaz y se autentique. Así que solo corre sudo 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 escribiendo sudo dhclient
.