4 votos

¿Cómo configura Netplan en Ubuntu para almacenar las credenciales de 802.1x de forma segura?

En un 802.1 x red de la empresa, puedo utilizar NetworkManager para configurar 802.1 x parámetros, incluyendo la contraseña. Todo esto funciona, pero requiere almacenar la contraseña en texto plano.

Estamos tratando de usar Netplan para almacenar las credenciales de forma más segura (como un hash de la contraseña), pero no podemos hacer que el 802.1 x conexiones de autenticar.

No he sido capaz de encontrar una buena guía para la construcción de un Netplan de configuración que incluye 802.1 x credenciales.

(ACTUALIZACIÓN: Hay un error en Netplan acerca de hash de contraseña, https://github.com/CanonicalLtd/netplan/pull/78), que parece ser el tema principal)


Aquí es un archivo que no funciona

network: 
  version: 2
  renderer: networkd
  ethernets: 
    enp0s31f6:
      auth:
        key-management: 802.1x
        password: hash:some-stuff-here
        method: peap
        identity: ghewett
      dhcp4: false
      addresses:
        - 1.2.3.4
      gateway4: 5.6.7.8
      nameservers:
        search: [cisco.com, otherdomain]
        addresses:
          - 1.1.1.1
          - 2.2.2.2

(IP y credenciales cambiado )

Esto nos da

DEBUG:command generate: running ['/lib/netplan/generate']
** (generate:19354): DEBUG: 09:23:41.614: Processing input file /etc/netplan/01-netcfg.yaml..
** (generate:19354): DEBUG: 09:23:41.614: starting new processing pass
Error in network definition /etc/netplan/01-netcfg.yaml line 7 column 6: unknown key auth

2voto

Jordi Bunster Puntos 3840

Ver https://netplan.io/examplesy el https://netplan.io sitio en general tiene buena información. Asegúrese sudo netplan --debug generate a comprobar .archivos yaml, y generar los archivos de configuración y, a continuación, sudo netplan apply para activarlas.


Authentication

Netplan supports advanced authentication settings for ethernet and wifi interfaces, as well as individual wifi networks, by means of the auth block.

auth (mapping)

    Specifies authentication settings for a device of type ethernets:, or an access-points: entry on a wifis: device.

    The auth block supports the following properties:

    key-management (scalar)
        The supported key management modes are none (no key management); psk (WPA with pre-shared key, common for home wifi); eap (WPA with EAP, common for enterprise wifi); and 802.1x (used primarily for wired Ethernet connections).
    password (scalar)
        The password string for EAP, or the pre-shared key for WPA-PSK.

    The following properties can be used if key-management is eap or 802.1x:

    method (scalar)
        The EAP method to use. The supported EAP methods are tls (TLS), peap (Protected EAP), and ttls (Tunneled TLS).
    identity (scalar)
        The identity to use for EAP.
    anonymous-identity (scalar)
        The identity to pass over the unencrypted channel if the chosen EAP method supports passing a different tunnelled identity.
    ca-certificate (scalar)
        Path to a file with one or more trusted certificate authority (CA) certificates.
    client-certificate (scalar)
        Path to a file containing the certificate to be used by the client during authentication.
    client-key (scalar)
        Path to a file containing the private key corresponding to client-certificate.
    client-key-password (scalar)
        Password to use to decrypt the private key specified in client-key if it is encrypted.

Fuente: https://netplan.io/reference#authentication

Actualización #1:

Nota: asegúrese de que no hay FICHAS en su .archivo yaml...

Añade tu certs, restaurar la IP, y tratar esta...

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s31f6:
      auth:
        key-management: 802.1x
        method: peap
        identity: "ghewett@example.com"
        ca-certificate: my_ca.pem
        client-certificate: my_cert.pem
        client-key: my_key.pem
      addresses:
        - 1.2.3.4
      gateway4: 5.6.7.8
      nameservers:
        search: [cisco.com, otherdomain]
        addresses:
          - 1.1.1.1
          - 2.2.2.2

0voto

El valor predeterminado netplan que se suministran con Ubuntu 18.04.02 no admite la conexión de cable de autenticación por lo que no hay posibilidad de que si funciona. La última versión de github a principios de Marzo de 2019 no admite la autenticación, pero se carece de otras cosas que se requieren. El WPA supplicant requiere un CLI flag a utilizar el cable conductor para trabajar con y escribí un PR para agregar esto a netplan. Netplan controlar también el hash de las contraseñas de una manera que rompe con ellos así que no hay otra PR para arreglar eso.

Si quieres probar una de estas, PR, las instrucciones son:

  1. Tiene una instalación de servidor de Unbuntu 18.04.02

  2. Instalar suplicante

    • sudo apt install wpasupplicant"
  3. Instalar necesario construir herramientas con

    • sudo apt install hacer cpp pkg-config libyaml-dev uuid-dev libgio2.0-cil-dev libglib2.0-dev pandoc
  4. Obtener el parcheado netplan de software con

  5. Construir e instalar con

    • hacer
    • sudo make install
  6. Generar una versión de hash de la contraseña

    • echo-n 'Contraseña' | iconv -t UTF-16LE | openssl md4 -binario | xxd -p
    • historia -c
  7. Editar el netplan archivo de configuración

    • cd /etc/netplan
    • sudo mv 50-cloud-init.yaml config.yaml
    • sudo emacs /etc/netplan/config.yaml
  8. Ver algo como:

network:
    version: 2
    ethernets:
        enp0s31f6:
            dhcp4: true
            optional: true
            auth:
                key-management: 802.1x
                wired: true
                method: ttls
                identity: fluffy@cisco.com
                password: hash:83...11

  1. Aplicar con

    • sudo netplan aplicar
  2. En este punto, si usted reinicio, se debería funcionar, pero algunas cosas que debe comprobar para ayudar a depurar

  3. Compruebe el WPA supplicant archivo de configuración

    • sudo cat /ejecutar/netplan/wpa-enp0s31f6.conf

y debe parecerse a

 ctrl_interface=/run/wpa_supplicant
 network={
   key_mgmt=IEEE8021X
   eap=TTLS
  identity="fluffy@cisco.com"
  password=hash:83..11
}

Asegúrese de que no hay comillas alrededor de la contraseña si el uso de hash de las contraseñas.

  1. Compruebe la plantilla de systemd

    • ls /ejecutar/systemd/system/systemd-networkd.servicio.quiere/netplan*enp0s31f6.servicio

Debe devolver algo como

/run/systemd/system/systemd-networkd.service.wants/netplan-wpa-wired@enp4s0.service

La clave es para comprobar que es como wpa-cableado en ella

  1. Prueba de la autenticación funciona con contraseñas y todos los

    • matar a cualquier versión de wpa_supplicant, a continuación, hacer

    • sudo wpa_supplicant-c /ejecutar/netplan/wpa-enp0s31f6.conf -i enp0s31f6 -D cable

Usted verá un flujo de información acerca del 802.1 x mensajes y cerca de la final debería ser una "Autenticación logrado"

Usted necesitará Ctrl^C este matarlo.

  1. Reiniciar y a disfrutar ....

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: