Bekijk Volledige Versie : Script om Mac en ipadres aan te passen
Ik zoek het volgende (tegen vergoeding)
Bij het starten van centos moet er een check worden gedaan of het macadres in de netwerk configuratie overeenkomt met die van de huidige locale netwerkkaart (onboard).
Indien dit niet het geval is moet deze automatisch worden bijgewerkt, en de vraag worden gesteld welk ip de server moet krijgen.
Indien het macadres gelijk is, moet er een ander programma worden gestart. Details daarvan zijn overbodig.
Wie kan en wil zoiets maken? Ik zoek een fixed prijs oplossing!
Ps, deadline is dinsdag :)
Het probleem is dat het mac adres gespoofed kan zijn;
Bedoel je dat moet worden gechecked of de huidige interface interdaad het gespoofde mac adres heeft zoals aangegeven in /etc/sysconfig/network-scripts/[interface]
Of bedoel je dat moet worden gechecked of de huidige interface het orginele mac adres heeft wat bij de hardware van deze interface hoort?
systemdeveloper
07/12/13, 23:47
Misschien handig om aan te geven wat het doel is van het scriptje?
Ik denk dat je dit vraagt om bv. clones van vm's te laten detecteren of ze starten met mac adres van je master-vm en je daardoor wellicht een error krijgt bij het starten van het vm, maar dat is een gok natuurlijk.
Dit is makkelijk op te lossen door bv. geen hwaddr veld op te nemen in de ifcfg-ethN files en via een firstboot scriptje te vragen voor een ipadres indien er geen hwaddr veld in de config beschikbaar is en dan hwaddr/ipaddr toe te voegen.
Er zijn een paar wegen die naar het virtuele Rome leiden, afhankelijk van de context en de initieele setup van de server/vm, waarbij de belangrijkste eigenlijk wel het moment is dat het scriptje moet draaien
In ieder geval, ik bouw het niet, maar om het mac adres uit de firmware van de hardware uit te lezen kun je iets van lspci -v gebruiken....
Bedankt voor de reacties. Ik zal het iets meer uitleggen.
Wij hebben op een USB stick een linux installatie staan. Deze usb willen wij kopieeren naar een xx aantal andere usb's. Deze usb sticks gaan wij weer in nieuwe machines stoppen. Bij de boot van zo'n machine willen we niet al te veel werk hebben met het invoeren van het macadres en juiste ipadres. Een soort plug en play willen we realiseren.
systemdeveloper
08/12/13, 13:27
Misschien is dhcp een eenvoudigere optie?
Anders zul je behalve het ip natuurlijk ook netmask, gateway, hostname enzo moeten gaan invullen en blijft van je plug&pray weinig over.
Misschien is dhcp een eenvoudigere optie?
Anders zul je behalve het ip natuurlijk ook netmask, gateway, hostname enzo moeten gaan invullen en blijft van je plug&pray weinig over.
Tenzij die in het script zijn voor geconfigureerd. Dat is natuurlijk altijd een optie als je geen DHCP wilt draaien.
systemdeveloper
08/12/13, 14:50
Tenzij die in het script zijn voor geconfigureerd. Dat is natuurlijk altijd een optie als je geen DHCP wilt draaien.
Ik denk toch echt dat ik een andere gateway gebruik dan jij bijvoorbeeld? Als je van te voren zoveel weet dat je dit soort dingen 'vast' kunt configureren, dan hoef je idd. alleen je ipadres aan te passen, maar dan nog... moet je scriptje opletten dat je niet een reeds gebruikt ipadres ergens inklopt of je moet toch zelf in de config de boel gaan aanpassen.
Maar anyway. Volgens mij is het goed te doen op voorwaarde dat je nic drivers geladen kunnen worden (en ifconfig/ip link een hwaddr teruggeven dat te controleren is met hetgeen in de config staat) en dan met een 'read' op de console een ipadres laten invoeren en het netwerk restarten.
Of gewoon een bestandje touchen ergens op de usb om te checken of de config doorlopen is.
systemdeveloper
08/12/13, 15:18
En als we dan toch bezig zijn...
#!/bin/sh
CONFFILE=/etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR=`ifconfig eth0|grep HWaddr| awk '{print $5}'`
HWSET=`cat ${CONFFILE} | grep HWADDR | awk -F = '{print $2}'`
DOCONFIG=0
if [ "${HWSET}x" == "x" ]
then
DOCONFIG=1
echo "HWADDR=${HWADDR}" > ${CONFFILE}
else
if [ "${HWADDR}" == "${HWSET}" ]
then
DOCONFIG=0
else
perl -pi -e "s/HWADDR=(.*)/HWADDR=${HWADDR}/" ${CONFFILE}
DOCONFIG=1
fi
fi
if [ "${DOCONFIG}" == "1" ]
then
echo -n "New IP addr: "
read MYIP
perl -pi -e "s/IPADDR=(.*)/IPADDR=${MYIP}/" ${CONFFILE}
fi
Daarmee lees je toch een eventueel gespoofd adres uit? Je kunt immers het mac adres in de config zelf aanpassen naar wens. Als je 100% zeker wilt zijn moet je de firmware van de nic uitlezen.
systemdeveloper
08/12/13, 15:26
Daarmee lees je toch een eventueel gespoofd adres uit? Je kunt immers het mac adres in de config zelf aanpassen naar wens. Als je 100% zeker wilt zijn moet je de firmware van de nic uitlezen.
Om het macadres te spoofen moet je een MACADDR parm erin zetten en HWADDR weglaten, maar... het zijn usb sticks die TS zelf maakt. Als iemand dat wil spoofen dan heeft ie root rechten nodig en kan ie het scriptje ook verwijderen natuurlijk.
Ohja, daar heb je dan ook weer een punt... 😃
systemdeveloper
08/12/13, 15:33
Ohja, daar heb je dan ook weer een punt...
Hehe, dat 'root rechten hebben' is altijd zo'n dooddoener, he :)
Bedankt voor jullie reacties, hier kan ik zeker verder mee!
systemdeveloper
13/12/13, 01:18
Perfect.
Als je het kunt gebruiken geef maar 25 euro aan de eerste de beste dakloze die je tegenkomt :)
Indien er altijd dezelfde interfaces zijn of enkel een, kun je HWADDR ook uit je configuratie halen.
systemdeveloper
13/12/13, 10:44
Indien er altijd dezelfde interfaces zijn of enkel een, kun je HWADDR ook uit je configuratie halen.
True, maar in gevallen dat ie er niet in staat 'echo' ik hem er even in. Heb hem er zelf nooit in staan ivm. clonen van vm's om geen dubbele te krijgen.