Skift Hardware-Adress via Script

Dette forum bruges på EGET ANSVAR til at lege med scripts og andre ting med risiko for at beskadige sit eget og andres systemer.
Brugeravatar
Christian.Arvai
Admin
Indlæg: 10725
Tilmeldt: 26. apr 2008, 19:27
IRC nickname: Christian_Arvai
Geografisk sted: Holeby - Lolland

Skift Hardware-Adress via Script

Indlæg af Christian.Arvai »

Jeg har lavet et lille script, som skifter hardwareadressen ved kørsel, samt laver kontrol på ny Add, da ikke alle random Add kan tildeles. Scriptet skifter nu Add ved hver eneste kørsel.

Det virker ok. Dog har jeg observeret en mindre fejl, som gør at man nogle gange manuelt skal genstarte kablet netværk bagefter via ikonet i toppanelet.

Jeg har ikke lige løst det, for som sådan skulle det virke som det er nu, og linjen virker ved selvstændig kørsel. Jeg ved at den læser linjen, for jeg har haft "echo" med inde i den del.

Anyway. Her er det:

Kode: Vælg alt

#!/bin/sh
#
# Project: Black-Ninja
# Author: Christian Arvai
# Credits: Ubuntu Denmark LoCo Team
# For: All Ubuntu releases from 12.04 to current stabil 
# To: 32 and 64 bits systems
# This code is available under the creative commons attribution-sharealike license https://creativecommons.org/licenses/by-sa/4.0/
# Scriptet placeres i hjemmemappen, og aktiveres med denne kommando:
# sudo mv ~/mac.sh /usr/local/bin && sudo chmod +x /usr/local/bin/mac.sh
# Køres med denne kommando i terminalen:
# mac.sh
# Kommando til at udskifte dette script med en nyere udgave (med samme navn):
# sudo rm -rf /usr/local/bin/mac.sh && sudo mv ~/mac.sh /usr/local/bin && sudo chmod +x /usr/local/bin/mac.sh


VAR=1
STARTMAC=$(ifconfig eth0 |grep HWaddr)

echo $STARTMAC
sudo ifconfig eth0 down

while [ $VAR = 1 ]; do
NEWMACADDR=$(dd if=/dev/urandom bs=1024 count=1 2>/dev/null|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\)\(..\).*$/\1:\2:\3:\4:\5:\6/')
sudo ifconfig eth0 hw ether $NEWMACADDR
ENDMAC=$(ifconfig eth0 |grep HWaddr)
  if [ "$ENDMAC" != "$STARTMAC" ]; then
    VAR=0
    echo $ENDMAC
  fi
done

sudo ifconfig eth0 up # dette burde genstarte nettet????
Med venlig hilsen Christian

"We can only see a short distance ahead, but we can see plenty there that needs to be done." -- Alan Turing
thj01
Indlæg: 2667
Tilmeldt: 21. nov 2006, 10:06
Geografisk sted: Fredericia

Re: Skift Hardware-Adress via Script

Indlæg af thj01 »

Virker det på en Ubuntu server - altså hvor det ikke er networkmanager der styrer ...
Forfatter til Ubuntuguiden: http://www.vidas.dk/guides/ubuntuguiden.html

Kører LTS udgaverne.

"It's always easy if you know how to do it."
Brugeravatar
Christian.Arvai
Admin
Indlæg: 10725
Tilmeldt: 26. apr 2008, 19:27
IRC nickname: Christian_Arvai
Geografisk sted: Holeby - Lolland

Re: Skift Hardware-Adress via Script

Indlæg af Christian.Arvai »

Pas. Det har jeg ikke testet.
Med venlig hilsen Christian

"We can only see a short distance ahead, but we can see plenty there that needs to be done." -- Alan Turing
thj01
Indlæg: 2667
Tilmeldt: 21. nov 2006, 10:06
Geografisk sted: Fredericia

Re: Skift Hardware-Adress via Script

Indlæg af thj01 »

Har lige testet scriptet på en Ubuntu 14.04.03 linuxserver på virtualbox.

Den ændrer fint macadressen ... men ikke ude i selve "hardwaren" (altså VB).

Skal lige siges at det sagtens kan skyldes at serveren er virtualiseret, og jeg ikke lige en ikke virtualiseret server i nærheden.
Forfatter til Ubuntuguiden: http://www.vidas.dk/guides/ubuntuguiden.html

Kører LTS udgaverne.

"It's always easy if you know how to do it."
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Skift Hardware-Adress via Script

Indlæg af lath »

Christian.Arvai skrev:Jeg har lavet et lille script, som skifter hardwareadressen ved kørsel, samt laver kontrol på ny Add, da ikke alle random Add kan tildeles. Scriptet skifter nu Add ved hver eneste kørsel.

Det virker ok. Dog har jeg observeret en mindre fejl, som gør at man nogle gange manuelt skal genstarte kablet netværk bagefter via ikonet i toppanelet.

Jeg har ikke lige løst det, for som sådan skulle det virke som det er nu, og linjen virker ved selvstændig kørsel. Jeg ved at den læser linjen, for jeg har haft "echo" med inde i den del.

Anyway. Her er det:

Kode: Vælg alt

#!/bin/sh
# ...
sudo ifconfig eth0 up # dette burde genstarte nettet????

Det har nok noget med ARP at gøre.
Der er en cache, som er en IP adresse <-> MAC adresse tabel. Den cache skal kernen bruge når den skal bygge en Ethernet frame op rundt om en IP pakke.

I øvrigt så er net-tools pakken forældet (engelsk: deprecated), og man kan med fordel bruge iproute2 pakken, der har mere funktionalitet tilgængelig:

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Skift Hardware-Adress via Script

Indlæg af AJenbo »

thj01 skrev:Har lige testet scriptet på en Ubuntu 14.04.03 linuxserver på virtualbox.

Den ændrer fint macadressen ... men ikke ude i selve "hardwaren" (altså VB).

Skal lige siges at det sagtens kan skyldes at serveren er virtualiseret, og jeg ikke lige en ikke virtualiseret server i nærheden.

Indstillingen i VirtualBox er kun den ene vej, så det sætter MAC adressen ved boot, men bliver ikke opdateret hvis den ændres inde i maskinen.