GNU/Linux >> Tutoriales Linux >  >> Linux

generar una identificación única de máquina consistente

¿Qué tal estos dos:

00

Luego puede combinarlos y mezclarlos con:

19

Para eliminar el guión final, agregue una tubería más:

27

Como señala @mikeserv en su respuesta, el nombre de la interfaz puede cambiar entre arranques. Esto significa que lo que es eth0 hoy podría ser eth1 mañana, por lo que si busca 05 es posible que obtenga una dirección MAC diferente en diferentes arranques. Mi sistema no se comporta de esta manera, por lo que realmente no puedo probar, pero las posibles soluciones son:

  1. Grep para 16 en la salida de 21 pero conserve todos, no solo el correspondiente a una NIC específica. Por ejemplo, en mi sistema tengo:

    31

    Tomando ambas direcciones MAC y pasándolas a través de 39 , debería poder obtener un nombre único y estable, independientemente de qué NIC se llame qué:

    49

    Tenga en cuenta que el hash es diferente de los anteriores porque estoy pasando ambas direcciones MAC devueltas por 48 a 57 .

  2. Cree un hash basado en los UUID de su(s) disco(s) duro(s) en su lugar:

    57

En primer lugar, tenga en cuenta que el CPUID definitivamente no un marcador de identificación único comúnmente accesible para cualquier sistema posterior a un Intel Pentium III. Si bien codificarlo con direcciones MAC puede conducir a marcadores únicos, esto se debe solo a las cualidades únicas de los MAC en sí mismos y el CPUID en ese caso no es más que circunstancial. Además, es probable que el hash resultante no sea más exclusivo que el UUID de la placa base, y eso es mucho más fácil de recuperar y el proceso es mucho menos propenso a cometer errores. De wikipedia.org/wiki/cpuid:

EAX=3 :Número de serie del procesador

Ver también:Pentium III § Controversia sobre problemas de privacidad

Esto devuelve el número de serie del procesador. El número de serie del procesador se introdujo en Intel Pentium III, pero debido a problemas de privacidad, esta función ya no se implementa en modelos posteriores (el bit de función de PSN siempre se borra). Los procesadores Efficeon y Crusoe de Transmeta también ofrecen esta función. Sin embargo, las CPU de AMD no implementan esta función en ningún modelo de CPU.

Puede ver un cpuid analizado usted mismo haciendo 60 o incluso solo 70 .

Esto le da todas las direcciones MAC para las interfaces de red reconocidas por el kernel de Linux, creo:

60

Puede ser necesario filtrar esa lista si puede incluir NIC virtuales con MAC generados aleatoriamente. Puede hacer esto con banderas en la llamada a 84 directamente. Ver 98 para obtener información sobre cómo hacerlo.

También tenga en cuenta que este problema no es exclusivo de 103 y también debe tratarse si usa 114 , pero que se puede manejar de manera más confiable con 124 - que es parte del 136 suite de red y se mantiene activamente, de lo que puede con 146 - que es miembro del 159 y vio una versión de Linux por última vez en 2001. Debido a cambios en las características del núcleo desde su última versión, 163 se sabe que reporta erróneamente algunos indicadores de funciones de red y su uso debe evitarse en la medida de lo posible.

Comprenda, sin embargo, que filtrar con nombres de interfaz del kernel como 174 no es un medio confiable para hacerlo, ya que estos pueden cambiar según su orden de detección en paralelo por 185 durante el proceso de arranque. Consulte Nombres de redes predecibles para obtener más información.

Porque 197 no está instalado en mi sistema. Al principio pensé en codificar una lista de seriales de discos duros generados como:

72

Haz 206 para obtener algunas pistas sobre cómo refinar esa lista, por tipo de disco, digamos. Considere también 212 y/o 225 tal vez.

Combinarlos es fácil:

88

Como me ha informado, está ingresando los recursos de los usuarios en su extremo a sus identificaciones únicas, y no se puede confiar en que existan los discos duros. Pensé en cambiar mi táctica.

Considerando eso, revisé el sistema de archivos nuevamente y encontré el 239 carpeta. Revisé algunos de los archivos:

98

Sin embargo, este parece ser bastante bueno, pero no publicaré el resultado:

106

Supongo que ahí es donde 243 obtiene gran parte de su información de todos modos y, de hecho, lo parece. Según 256 también puede simplificar mucho el uso de esa herramienta especificando el argumento:

113

Sin embargo, más simple aún, puede simplemente leer el archivo. Tenga en cuenta que este archivo en particular identifica específicamente una placa base. Aquí hay un extracto del parche del kernel de 2007 que implementó originalmente estas exportaciones al 265 sistema de archivos virtual:

129

Es posible que pueda usar esos datos solo para identificar el sistema, si la placa base es suficiente. Pero puede combinar esta información con las MAC del sistema de la misma manera que demostré que podría hacerlo con los discos duros:

133

El kernel de Linux también puede generar UUID para usted:

145

O:

158

Por supuesto, se genera aleatoriamente y tendrá que repensar la asignación de ID, pero es tan fácil como obtener al menos. Y debería ser bastante sólido si puede encontrar un medio para codificarlo.

Por último, en los sistemas UEFI esto se vuelve mucho más fácil de hacer, ya que cada variable de entorno de firmware EFI incluye su propio UUID. La variable de entorno 273 debería estar presente en todos los sistemas UEFI, debería persistir reinicios e incluso la mayoría actualizaciones y modificaciones de firmware, y cualquier sistema Linux con el 289 El módulo cargado puede enumerar uno o ambos nombres de la siguiente manera:

164

La forma anterior - 291 aparentemente ahora está en desuso, y en los sistemas más nuevos debería ser 301 pero, según las especificaciones, uno u otro debería estar presente en todos los sistemas UEFI. Con poco esfuerzo, puede definir sus propias variables persistentes de reinicio y tal vez hacer un mayor uso del generador de UUID del kernel de esa manera. Si está interesado, consulte efitools.


Muchas distribuciones modernas envían un archivo 311 que contiene una cadena hexadecimal de 32 caracteres muy probablemente única. Se origina en systemd, donde una página de manual tiene más información y puede ser apropiada para su propósito.


Linux
  1. ¿Cómo generar hash de hardware único?

  2. Cómo apagar o reiniciar Linux

  3. 8 formas de generar una contraseña aleatoria en Linux

  4. ¿Cómo generar una lista de líneas únicas en un archivo de texto usando un script de shell de Linux?

  5. usando random para generar una cadena aleatoria en bash

Ejecute una máquina virtual Linux en Podman

Una introducción a Virtual Machine Manager

Cómo generar una clave SSH en Windows 10

Cómo instalar RHEL 8 en una máquina virtual

Una introducción a GNOME Boxes (virtualización) en Linux

Cómo generar datos de netflow en linux