Jump to content
From ArchWiki
Esta traducción de MAC address spoofing fue revisada el 2020-12-11. Si existen cambios puede actualizarla o avisar al equipo de traducción.

Este artículo proporciona varios métodos para falsificar una dirección de control de acceso al medio (MAC).

## Manualmente

Hay dos métodos para falsificar una dirección MAC: instalando y configurando ya sea iproute2 o macchanger. Ambos se describen a continuación.

### iproute2

Primero, puede verificar su dirección MAC actual con el comando:

    # ip link show interfaz

donde `interfaz` es el nombre de su interfaz de red.

La sección que nos interesa en este momento es la que tiene "link/ether" seguido de un número de 6 bytes. Probablemente se verá algo como esto:

    link/ether 00:1d:98:5a:d1:3a

El primer paso para falsificar la dirección MAC es desactivar la interfaz de red. Se puede lograr con el comando:

    # ip link set dev interfaz down

A continuación, falsificaremos nuestra MAC. Cualquier valor hexadecimal servirá, pero algunas redes pueden configurarse para negarse a asignar direcciones IP a un cliente cuya MAC no coincida con ninguno de los proveedores conocidos. Por lo tanto, a menos que controle las redes a las que se está conectando, utilice el prefijo MAC de cualquier proveedor real (básicamente, los primeros tres bytes) y utilice valores aleatorios para los siguientes tres bytes. Para obtener más información, véase Wikipedia:es:Identificador único de organización.

Para cambiar la MAC, necesitamos ejecutar el comando:

    # ip link set dev interfaz address XX:XX:XX:XX:XX:XX

Donde cualquier valor de 6 bytes será suficiente para `XX:XX:XX:XX:XX:XX`.

El último paso es volver a activar la interfaz de red. Esto se puede lograr ejecutando el comando:

    # ip link set dev interfaz up

Si desea verificar que su MAC ha sido falsificada, simplemente ejecute nuevamente `ip link show interfaz` y verifique el valor para 'link/ether'. Si funcionó, 'link/ether' debería ser la dirección a la que decidió cambiarla.

### macchanger

Otro método utiliza macchanger (también conocido como el Cambiador de MAC de GNU). Proporciona una variedad de funciones, como cambiar la dirección para que coincida con un determinado proveedor o al azar.

Instale el paquete macchanger.

La falsificación se realiza por interfaz, especifique el nombre del interfaz de red como `interfaz` en cada uno de los siguientes comandos.

La dirección MAC se puede falsificar con una dirección completamente aleatoria:

    # macchanger -r interfaz

Para hacer aleatorio solo los bytes específicos de dispositivo de la dirección MAC actual (es decir, de modo que si la dirección MAC se verificara se registraría como si fuera del mismo proveedor), ejecutaría el comando:

    # macchanger -e interfaz

Para cambiar la dirección MAC a un valor específico, debe ejecutar:

    # macchanger --mac=XX:XX:XX:XX:XX:XX interfaz

Donde `XX:XX:XX:XX:XX:XX` es la MAC a la que desea cambiar.

Finalmente, para devolver la dirección MAC a su valor de hardware original y permanente:

    # macchanger -p interfaz

Nota: Un dispositivo no puede estar en uso (conectado de ninguna manera o con su interfaz levantada) mientras se cambia la dirección MAC.

## Automáticamente

### systemd-networkd

systemd-networkd soporta la falsificación de direcciones MAC a través de archivos link (véase systemd.link(5) para los detalles).

Para establecer una dirección MAC estática falsificada:

    /etc/systemd/network/00-default.link

    [Match]
    MACAddress=MAC original

    [Link]
    MACAddress=MAC falsificada
    NamePolicy=kernel database onboard slot path

Para hacer aleatoria la dirección MAC en cada arranque, establezca `MACAddressPolicy=random` en lugar de `MACAddress=MAC falsificada`.

### systemd-udevd

Udev le permite realizar la falsificación de la dirección MAC mediante la creación de reglas udev. Utilice el atributo `address` para que coincida con el dispositivo correcto por su dirección MAC original y cámbielo utilizando la orden ip:

    /etc/udev/rules.d/75-mac-spoof.rules

    ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="XX:XX:XX:XX:XX:XX", RUN+="/usr/bin/ip link set dev $name address YY:YY:YY:YY:YY:YY"

Donde `XX:XX:XX:XX:XX:XX` es la dirección MAC original e `YY:YY:YY:YY:YY:YY` es la nueva.

### Unidades systemd

#### Crear la unidad

A continuación, encontrará dos ejemplos de unidades systemd para cambiar una dirección MAC durante el arranque, uno configura una MAC estática utilizando ip y el otro utiliza macchanger para asignar una dirección MAC aleatoria. El `network-pre.target` de systemd se utiliza para asegurar que la MAC se cambie antes que un gestor de red como Netctl o NetworkManager, comience el servicio systemd-networkd o dhcpcd.

##### iproute2

La unidad systemd configura una dirección MAC predefinida:

    /etc/systemd/system/macspoof@.service

    [Unit]
    Description=Cambio de dirección MAC %I
    Wants=network-pre.target
    Before=network-pre.target
    BindsTo=sys-subsystem-net-devices-%i.device
    After=sys-subsystem-net-devices-%i.device

    [Service]
    Type=oneshot
    ExecStart=/usr/bin/ip link set dev %i address 36:aa:88:c8:75:3a
    ExecStart=/usr/bin/ip link set dev %i up

    [Install]
    WantedBy=multi-user.target

##### macchanger

La unidad systemd establece una dirección aleatoria mientras se conservan los bytes originales del proveedor NIC. Asegúrese de que macchanger está instalado:

    /etc/systemd/system/macspoof@.service

    [Unit]
    Description=macchanger en %I
    Wants=network-pre.target
    Before=network-pre.target
    BindsTo=sys-subsystem-net-devices-%i.device
    After=sys-subsystem-net-devices-%i.device

    [Service]
    ExecStart=/usr/bin/macchanger -e %I
    Type=oneshot

    [Install]
    WantedBy=multi-user.target

Se puede establecer una dirección completamente aleatoria utilizando la opción `-r`, véase #macchanger.

#### Activar el servicio

Añada la interfaz de red deseada al nombre del servicio (por ejemplo `eth0`) y active el servicio (por ejemplo `macspoof@eth0.service`).

Reinicie, o detenga e inicie los servicios requeridos en el orden correcto. Si tiene el control de su red, verifique que el enrutador haya recogido la MAC falsificada mediante el examen de las tablas de direcciones DHCP o estáticas dentro del enrutador.

### Interfaces netctl

Puede utilizar un hook de netctl para ejecutar una orden cada vez que un perfil netctl es re-/iniciado para una interfaz de red específica. Reemplace `interfaz` en consecuencia:

    /etc/netctl/interfaces/interfaz

    #!/usr/bin/env sh
    /usr/bin/macchanger -r interfaz

Haga el script ejecutable:

    chmod +x /etc/netctl/interfaces/interfaz

Fuente: akendo.eu[enlace roto 2023-05-06]

### NetworkManager

Véase NetworkManager#Configuring MAC address randomization.

### wpa_supplicant

wpa_supplicant puede utilizar una dirección MAC aleatoria para cada conexión ESS (AP) (véase [1] for details).

Añada esto a su configuración:

    /etc/wpa_supplicant/wpa_supplicant-wlan0.conf

    mac_addr=1
    preassoc_mac_addr=1
    gas_rand_mac_addr=1

### iwd

Para aleatorizar la dirección MAC cuando se inicia iwd (véase iwd.config(5) para más detalles):

    /etc/iwd/main.conf

    [General]
    AddressRandomization=once
    AddressRandomizationRange=nic

Especificar `AddressRandomizationRange` permite controlar qué parte de la dirección es aleatoria. Si se establece en `nic`, solo los octetos específicos del NIC (los últimos tres octetos) son aleatorios. La dirección mac permanente de la interfaz de red se utiliza para los 3 octetos iniciales. Si se establece en `full`, los seis octetos de la dirección son aleatorios.

## Solución de problemas

### La conexión a la red DHCPv4 falla

Si no puede conectarse a una red DHCPv4 y está utilizando dhcpcd, que es el predeterminado para NetworkManager, es posible que deba modificar la configuración dhcpcd para obtener un arrendamiento (lease).

## Véase también

- Wikipedia:es:MAC spoofing
- Página en GitHub de Macchanger
- Artículo en DebianAdmin con más opciones de macchanger

Categories:

- Network configuration (Español)
- Security (Español)

Hidden category:

- Pages with dead links