Freud_Tux
(usa Outra)
Enviado em 17/08/2021 - 17:21h
leandropscardua escreveu:
Acho q o @Buckminster quis dizer q vc não altera o mac da placa, mas uma variável dentro do sistema operacional. Então se vc reiniciar o valor volta ao original ou se vc reiniciar o gerenciador de rede, ou se vc derrubar a interface e subir de novo.
Olá, tudo bem?
Sim, sim, eu tinha captado isso já hehe.
É que pra alterar via firmware da placa, é um trabalhinho que envolve eletrônica e outras coisas. Já a outra alteração é via sistema operacional só. Ai, quando se faz via sistema operacional, dependendo de como é feito, ele pode ser temporário, ai quando se reinicia o sistema volta ao mac original.
Eu achava que a alteração ficava permanente depois do boot, "presa" ao sistema operacional.
Mas obrigado o reforçar o aviso ;)
Obrigadão, T+
Buckminster escreveu:
leandropscardua escreveu:
Acho q o @Buckminster quis dizer q vc não altera o mac da placa, mas uma variável dentro do sistema operacional. Então se vc reiniciar o valor volta ao original ou se vc reiniciar o gerenciador de rede, ou se vc derrubar a interface e subir de novo.
Sim, ao reiniciar o sistema, o MAC alterado pelo ifconfig, ip link, etc (esses programas que já vem nos sistemas operacionais) volta ao original. Porém, tem certos programas que podem alterar de uma forma que ao reiniciar o MAC continua. Daí somente alterando de novo.
Ao derrubar e levantar com, por exemplo, ifconfig down (up) ou com ip link set xxxx down (up) o MAC permanece alterado, precisa reiniciar. Claro que isso vai do programa utilizado para alterar, do sistema, etc.
Vejam (Debian 11, na minha máquina):
# ifconfig enpXxx
ether XX:XX:XX:Xe:XX:Xc
# ip link show enpXxx
link/ether XX:XX:XX:Xe:XX:Xc
# ip link show
link/ether XX:XX:XX:Xe:XX:Xc brd ff:ff:ff:ff:ff:ff <<< na placa de rede com fio não mostra o permaddr e o MAC está alterado.
link/ether XX:XX:XX:Xf:XX:Xa brd ff:ff:ff:ff:ff:ff permaddr XX:XX:XX:Xd:XX:Xb <<< na placa sem fio mostra o permaddr.
Caso você alterar o MAC da placa sem fio (nesta placa) o permaddr permanece o mesmo e o "MAC" alterado (aquele logo após link/ether) volta ao que era no reiniciar.
Mas agora vem o "truque:
Retorne o número de MAC original mostrado no permaddr que essa informação some:
# ip link set dev wlpXxx address XX:XX:XX:Xf:XX:Xa <<< coloque o mesmo número de MAC que aparece em permaddr.
# ip link show
link/ether XX:XX:XX:Xe:XX:Xc brd ff:ff:ff:ff:ff:ff <<< na placa de rede com fio continua não mostrando o permaddr e não mostrará por causa das informações contidas na própria placa.
link/ether XX:XX:XX:Xf:XX:Xa brd ff:ff:ff:ff:ff:ff <<< sumiu o permaddr porque agora o permaddr voltou a ser único.
Donde se conclui:
Em certos casos, quando o ip link show mostra o permaddr numa placa é porque o MAC está alterado na variável do sistema. O MAC do permaddr é o tal MAC gravado na ROM da placa. O nome já diz: perm (permanente) addr (address).
Quando eu disse antes:
"Donde se conclui que não tem como "resetar" o MAC para o original, somente trocando "de volta"."
Estava falando de ROM, EPROM, etc.
No caso, com ifconfig, ip link, etc, ao reiniciar, o MAC volta porque, como tu disse, Leandro, somente alterou uma variável.
É que eu e o Patrick temos outros dois tópicos e as conversas vão se "completando"... rs.
Aliás, Patrick, acredito que isso confirma o que falamos antes que, em certos casos, o MAC original vai junto no pacote.
Veja aqui no arquivo do kernel /net/core/dev.c:
/* If the device has permanent device address, driver should
* set dev_addr and also addr_assign_type should be set to
* NET_ADDR_PERM (default value).
*/
if (dev->addr_assign_type == NET_ADDR_PERM)
memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len);
"/ * Se o dispositivo tiver endereço de dispositivo permanente, o driver deve...".
Isso significa que tem dispositivos que não tem endereço permanente.
Alguns drivers configuram dev_addr e perm_addr, enquanto outros configuram apenas dev_addr .
Basta ler as informações e interpretá-las, por mais simples que pareçam.
________________________________________________
Sanou tua dúvida e resolveu teu problema?
Então marque como "resolvido" e escolha a melhor resposta!
Ou então execute:
# chown -R root:root /
# mount -o remount,rw /
# reboot
e veja o sistema derreter na sua frente.
Olá Buckminster, tudo bem !
Entendi.
Então, resumidamente, mesmo que se altere o mac para o sistema operacional "enxergar" ele, o mac gravado na placa pelo fabricante ainda aparece. É o permaddr, que está no código do kernel já.
E pelo jeito ele segue no protocolo usado na comunicação de rede, mesmo que esteja virtualizado. Intrigante essa!
Como eu disse acima, eu achava que mesmo ao trocar o mac a nível de sistema mesmo, quando reiniciado, ele ficava lá. Mas ao que tudo indica, ele fica só até o sistema ser reiniciado. Mas isso dependeria de como foi feito o processo, se usando algum programa específico ou um ifconfig ou ip.
A não ser que seja editado alguns arquivos (mais tarde eu verifico quais são e posto aqui) no sistema.
Eu vou testar aqui e ver o que eu consigo e retorno com feedbacks.
A minha ideia era bem simples.
Virtualizar um MAC para utilizar na rede aqui, protegendo o MAC "padrão de fábrica" de qualquer tentativa e clonagem. Por isso a ideia era usar um MAC "descartável" e proteger o MAC padrão de fábrica. Pra isso ele teria que sobreviver ao desligamento do sistema.
Valeus e obrigadão pela aula ;)
T+
-------------------------------------------------------------------------------------------------------------------------------------------------
Noob: "[...]Sou muito noob ainda usando o terminal, então preciso de ajuda "mastigada", pra operá-lo."
zhushazang:
"Sou velho e meus dentes desgastados. Estude linux www.guiafoca.org";
" Ignorance is bliss, for learning is the highest joy. " - High Elf Archer