Este artigo explica como alterar/falsificar permanentemente os endereços MAC das interfaces de rede. Para isso, usaremos o Macchanger, um utilitário para manipulação de endereços MAC, para o qual criaremos uma unidade systemd para iniciá-lo automaticamente na inicialização.
Macchanger, a ferramenta que vamos usar neste artigo para alterar o endereço MAC, tem um serviço que pergunta se você deseja alterar seu MAC cada vez que o computador inicializa, mas isso não funciona para mim no Ubuntu 18.04. Como qualquer alteração feita pelo Macchanger é redefinida quando você reinicia o sistema, este artigo inclui instruções para criar uma unidade systemd para executar o Macchanger automaticamente quando o computador Linux é inicializado, alterando o endereço MAC a cada vez.
Para usar este guia, seu sistema Linux precisa usar o systemd, obviamente.
1. Instale o Macchanger
Macchanger deve estar nos repositórios das principais distribuições Linux. Para instalá-lo no Debian/Ubuntu/Linux Mint, use:
sudo apt install macchanger
2. Descubra a interface de rede para a qual deseja alterar o endereço MAC
Para isso, você pode usar o seguinte comando:
ifconfig -a
Se estiver usando um sistema em que isso não funciona mais, você pode executar este comando:
ip link show
Suas interfaces de rede agora devem ser exibidas assim:
ifocnfig -a
:$ ifconfig -a
enp10s0: flags=4163 mtu 1500
inet 192.168.1.211 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe60::cc24:29cf:2c1:1c5a prefixlen 64 scopeid 0x20
ether 1d:21:da:ab:1d:71 txqueuelen 1000 (Ethernet)
RX packets 164861 bytes 215658240 (215.6 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 45118 bytes 8577639 (8.5 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 265 bytes 20133 (20.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 265 bytes 20133 (20.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp3s0: flags=4098 mtu 1500
ether 1e:14:57:1c:66:11 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ip link show
:$ ip link show
1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp10s0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 1d:21:da:ab:1d:71 brd ff:ff:ff:ff:ff:ff
3: wlp3s0: mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
link/ether 1e:14:57:1c:66:11 brd ff:ff:ff:ff:ff:ff
Aqui, a interface de rede com fio é enp10s0
e a interface de rede sem fio é wlp3s0
(anteriormente, eth0
, 1, etc. era usado para interfaces com fio e wlan0
, 1 e assim por diante para sem fio). Anote a interface de rede para a qual você deseja falsificar o endereço MAC.
3. Verifique se Macchanger realmente funciona em seu sistema
Antes de criar a unidade do systemd para alterar o endereço MAC automaticamente em cada reinicialização, verifique se Macchanger pode realmente alterar seu endereço MAC (já vi casos em que ele não funciona por algum motivo). Para alterar temporariamente o endereço MAC (a alteração é revertida após a reinicialização do sistema), execute o Macchanger da seguinte maneira:
sudo macchanger -r NETWORK-INTERFACE
NETWORK-INTERFACE
é a interface de rede para a qual você deseja alterar o MAC, conforme listado na etapa 2 neste artigo (por exemplo, enp10s0, wlp3s0).
Se Macchanger funcionar, a opção -r
deve alterar o MAC para um endereço MAC aleatório e o comando deve gerar o endereço MAC original e o novo.
4. Crie uma unidade systemd para executar o Macchanger automaticamente sempre que o sistema for iniciado (para que o endereço MAC mude cada vez que o sistema for inicializado)
Criaremos o arquivo de unidade systemd 24430105 e o abriremos como raiz com um editor de texto:
sudo touch /etc/systemd/system/[email protected]
gedit admin:///etc/systemd/system/[email protected]
Se você não tiver o Gedit instalado, substitua-o no comando acima por outro editor de texto instalado em seu sistema.
Cole o seguinte no arquivo [email protected]
:
[Unit]
Description=changes mac for %I
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device
[Service]
Type=oneshot
ExecStart=/usr/bin/macchanger -r %I
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
A unidade systemd usa macchanger -r
para alterar o MAC. -r
define um endereço MAC totalmente aleatório. Você pode alterar -r
para -e
para alterar o MAC, mas preservar os bytes do fornecedor da NIC original, -a
para definir o MAC do fornecedor aleatório do mesmo tipo e assim por diante. Você pode ver todas as opções disponíveis executando:
macchanger --help
Você também pode definir um endereço MAC não aleatório personalizado. Para isso, altere a linha ExecStart=/usr/bin/macchanger -r %I
para algo assim:
ExecStart=/usr/bin/macchanger --mac=XX:XX:XX:XX:XX:XX %I
Substituindo XX:XX:XX:XX:XX:XX
pelo novo endereço MAC.
5. Habilite o serviço systemd Macchanger
Agora é hora de habilitar o serviço systemd para que ele comece na inicialização. Para isso, use:
sudo systemctl enable [email protected]
Substituindo enp10s0
pelo endereço de rede da etapa 2.
Você pode usar o mesmo comando para ativar a alteração do endereço MAC para várias interfaces de rede.
6. Reinicialize o sistema
Sua(s) interface(s) de rede agora devem ter um novo endereço MAC. Para saber como verificar o endereço MAC antigo (original) e o novo, consulte abaixo.
Macchanger pode ser usado para descobrir o MAC original e o novo endereço MAC, executando este comando:
macchanger -s NETWORK-INTERFACE
Onde NETWORK-INTERFACE
é a interface de rede que você descobriu usando os comandos da etapa 2.
Exemplo:
$ macchanger -s enp10s0
Current MAC: 1d:21:da:ab:1d:71 (unknown)
Permanent MAC: 72:ab:3d:89:88:88 (Intel Corporate)
Para desfazer as alterações, comece desabilitando o (s) serviço (s) do trocador de MAC systemd:
sudo systemctl disable [email protected]
Substituindo enp10s0
pelo endereço de rede da etapa 2 (das instruções de configuração inicial). Faça isso para cada interface de rede para a qual habilitou o serviço anteriormente.
Agora você pode remover o arquivo de serviço systemd do trocador de MAC:
sudo rm /etc/systemd/system/[email protected]
Esse post foi traduzido do site LinuxUprising.com pela rtland.team.
Confira a versão original desse post em inglês:
How To Permanently Change The MAC Address On Linux