Na een lange zoektocht naar een manier om sip_spoof werkend te krijgen met een wrt54g had ik nog steeds geen informatie gevonden hierover. Op GOT werd alleen een suggestie gedaan om een firmware te gebruiken die een shell opent op de router. Dat werkt op zich wel, maar de instellingen worden helaas niet vastgehouden.
Inmiddels heb ik de boel draaien met behoud van instellingen en leek het me handig om die info te delen met de rest van de wereld
Wellicht kan dit worden opgenomen in de FAQ van NT.
sip_spoof met een Linksys WRT54G
Ik ga ervan uit dat je weet wat sip_spoof / dhcp_spoof is en wat je ermee kan doen. Er is al diverse informatie hierover op het internet te vinden.
In het kort komt het erop neer dat het IP adres van je internetverbinding op de ethernet kant van het ADSL modem ingesteld wordt waardoor het mogelijk is om een router direct aan te sluiten zonder tussenkomst van PPTP / NAT etc. Alles wordt dus overgelaten aan de router die je gebruikt.
In het vervolg spreek ik alleen over sip_spoof omdat dhcp_spoof technisch hetzelfde doet maar shcp_spoof de IP adressen aanbiedt via een DHCP server in het ADSL modem.
Waarom werkt sip_spoof niet met elke router?
Er zijn een tweetal problemen waarom sip_spoof niet compatible is met elke router:
1. Er moet een netmask van 255.255.255.255. ingesteld kunnen worden.
Indien er een andere netmask wordt ingesteld kan het zijn dat enkele adressen, wat afhankelijk is van de gekozen netmask, niet meer bereikbaar zijn vanaf je eigen PC.
2. Het gateway adres moet in een ander netwerk segment kunnen liggen dan het ingestelde internet IP adres.
Dit is noodzakelijk omdat een netmask van 255.255.255.255 geen ruimte biedt voor andere adressen. Als je nu een gateway gaat instellen zal de router gaan klagen dat het gateway adres niet in hetzelfde segment zit als het ingestelde IP adres. De oplossing hiervoor is het aanmaken van een zogenaamde host route naar de gateway en deze route te koppelen aan de netwerkinterface waarop
het ADSL modem is aangesloten.
Wat heb je nodig?
Waarschuwing: er wordt gebruik gemaakt van een onofficiele firmware. Ik heb geen problemen ondervonden bij het gebruik van deze firmware. Je bent zelf verantwoordelijk voor de eventuele gevolgen. Alle instellingen van de router worden gewist bij het uploaden van deze firmware, een reset is dan ook noodzakelijk.
Standaard is het niet mogelijk om de WRT54G te benaderen via een shell toegang. Er zijn een aantal onofficiele firmware updates verkrijgbaar die onder andere shell access mogelijk maken. Zelf heb ik gebruik gemaakt van de firmware die te vinden is op http://wifi-box.sf.net. Ik heb daar het bestand code_2.02.pre1-wfb.zip gedownload. Via webinterface is het mogelijk om deze firmware in de router te laden. Reset na het update proces je router, dit is noodzakelijk voor het goed functioneren van de firmware.
Configureer je router opnieuw zodat deze bereikbaar is via je PC, maar stel nog geen internetverbinding in. Dit doen we later.
Hoe nu verder?
Nadat de basis instellingen gedaan zijn gaan we kijken naar de internet verbinding. Ga naar de optie Setup en daarna naar het submenu Basic Setup. Stel nu een statisch IP adres in op de volgende manier:
Deze instellingen gaan we laten aanpassen via de commandline. Druk nu op Save Settings onderaan de pagina.
De commandline
Om toegang te krijgen tot de commandline via telnet moet dit eerst worden aangezet. Dit gaat via het menu Administration. In het overzicht zit een optie voor telnet. Zet deze op enable.
Maak via telnet een verbinding met de router. Je kunt inloggen met gebruiker root en het wachtwoord wat je hebt ingesteld voor de webinterface. De router draait op basis van Linux. Je kunt gewoon op het filesysteem rondkijken met het ls commando (dir onder DOS).
Voor ons is het commando nvram belangrijk. Dit commando zorgt ervoor dat de diverse instellingen aangepast kunnen worden in het nvram (Non Volatile RAM). Het commando nvram kent diverse opties:
Probeer maar eens nvram show. Je krijgt nu een complete lijst met opties te zien. Wij zijn alleen geintereseerd in de opties voor de WAN interface. Dit zijn de voor ons belangrijke opties:
Als eerste gaan we deze waarden aanpassen. Gebruik hiervoor het commando nvram set. De waarde 1.2.3.4 moet het IP adres worden wat je van je ADSL provider hebt gekregen.
Ik ben er nog niet achter hoe je deze configuratieopties nu echt kunt opslaan via de command line. Ik heb het via de webinterface wel voor elkaar gekregen:
Ga via de webinterface naar een van de configuratieschermen, als het maar niet het Basic Setup of Advanced Routing scherm is, en druk op Save Settings. In ga zelf altijd naar Setup en dan SNMP. De instellingen zijn nu opgeslagen.
Omdat het gateway adres een niet geldige waarde heeft (valt immers niet in hetzelfde segment als het ingestelde IP adres), moeten er een aantal routes worden aangemaakt. Er zijn twee configuratieopties die daarvoor gebruikt worden:
Dit is ook weer via de webinterface te zien via Setup en submenu Advanced Routing. Het is echter via de webinterface niet mogelijk om de routes erin te plaatsen die wij nodig hebben, daarom maken we opnieuw gebruik van het nvram programma.
Er zijn twee routes noodzakelijk:
1. De hostroute voor 10.0.0.138 (het ADSL modem)
2. De default route naar 10.0.0.138
De volgende commando's realiseren dat, vergeet bij het 2e commando de ' tekens niet:
Killraven wees mij op een fout in een van de onderstaande regels. Bij beide regels dien je de ' tekens te gebruiken. Dit is nu aangepast.
Sla ook deze wijziging weer via de webinterface op.
Herstart nu de router via het reboot commando of door de stroom tijdelijk te onderbreken. Maak daarna opnieuw contact met de router via telnet en log in.
Controle
Controleer eerst of het internet IP adres goed is ingesteld met het ifconfig commando. Je ziet in de output een regel met:
Waarbij 1.2.3.4 natuurlijk het adres is wat je hebt ingesteld.
Nu de route tabel met het commando route -n. De -n optie is ervoor dat alleen de IP adressen zichtbaar worden en niet de complete hostnaam. Er moeten twee routes zichtbaar zijn:
Er staan nog meer routes in de tabel, maar voor sip_spoof zijn dit de twee belangrijkste.
Als het allemaal goed is ingesteld kan er getest worden. Probeer een ping naar een bekend adres. Als het goed is moet er een reply terugkomen. Probeer hierna of je vanaf je PC het internet kunt bereiken. Als het allemaal werkt is alles goed ingesteld.
Conclusie
Ik hoop dat ik het een beetje duidelijk het kunnen uitleggen. Ik zal kijken of ik er een aantal screenshots bij kan maken. Dat maakt het allemaal wat makkelijker te bergrijpen.
Mocht nog iemand erachter komen hoe je de instellingen toch kunt opslaan zonder gebruik te maken van de webinterface dan hoor ik dat graag.
Inmiddels heb ik de boel draaien met behoud van instellingen en leek het me handig om die info te delen met de rest van de wereld
sip_spoof met een Linksys WRT54G
Ik ga ervan uit dat je weet wat sip_spoof / dhcp_spoof is en wat je ermee kan doen. Er is al diverse informatie hierover op het internet te vinden.
In het kort komt het erop neer dat het IP adres van je internetverbinding op de ethernet kant van het ADSL modem ingesteld wordt waardoor het mogelijk is om een router direct aan te sluiten zonder tussenkomst van PPTP / NAT etc. Alles wordt dus overgelaten aan de router die je gebruikt.
In het vervolg spreek ik alleen over sip_spoof omdat dhcp_spoof technisch hetzelfde doet maar shcp_spoof de IP adressen aanbiedt via een DHCP server in het ADSL modem.
Waarom werkt sip_spoof niet met elke router?
Er zijn een tweetal problemen waarom sip_spoof niet compatible is met elke router:
1. Er moet een netmask van 255.255.255.255. ingesteld kunnen worden.
Indien er een andere netmask wordt ingesteld kan het zijn dat enkele adressen, wat afhankelijk is van de gekozen netmask, niet meer bereikbaar zijn vanaf je eigen PC.
2. Het gateway adres moet in een ander netwerk segment kunnen liggen dan het ingestelde internet IP adres.
Dit is noodzakelijk omdat een netmask van 255.255.255.255 geen ruimte biedt voor andere adressen. Als je nu een gateway gaat instellen zal de router gaan klagen dat het gateway adres niet in hetzelfde segment zit als het ingestelde IP adres. De oplossing hiervoor is het aanmaken van een zogenaamde host route naar de gateway en deze route te koppelen aan de netwerkinterface waarop
het ADSL modem is aangesloten.
Wat heb je nodig?
Waarschuwing: er wordt gebruik gemaakt van een onofficiele firmware. Ik heb geen problemen ondervonden bij het gebruik van deze firmware. Je bent zelf verantwoordelijk voor de eventuele gevolgen. Alle instellingen van de router worden gewist bij het uploaden van deze firmware, een reset is dan ook noodzakelijk.
Standaard is het niet mogelijk om de WRT54G te benaderen via een shell toegang. Er zijn een aantal onofficiele firmware updates verkrijgbaar die onder andere shell access mogelijk maken. Zelf heb ik gebruik gemaakt van de firmware die te vinden is op http://wifi-box.sf.net. Ik heb daar het bestand code_2.02.pre1-wfb.zip gedownload. Via webinterface is het mogelijk om deze firmware in de router te laden. Reset na het update proces je router, dit is noodzakelijk voor het goed functioneren van de firmware.
Configureer je router opnieuw zodat deze bereikbaar is via je PC, maar stel nog geen internetverbinding in. Dit doen we later.
Hoe nu verder?
Nadat de basis instellingen gedaan zijn gaan we kijken naar de internet verbinding. Ga naar de optie Setup en daarna naar het submenu Basic Setup. Stel nu een statisch IP adres in op de volgende manier:
code:
1
2
3
| Internet IP adres: 12.34.56.78 Netmask: 255.255.255.0 Gateway: 12.34.56.1 |
Deze instellingen gaan we laten aanpassen via de commandline. Druk nu op Save Settings onderaan de pagina.
De commandline
Om toegang te krijgen tot de commandline via telnet moet dit eerst worden aangezet. Dit gaat via het menu Administration. In het overzicht zit een optie voor telnet. Zet deze op enable.
Maak via telnet een verbinding met de router. Je kunt inloggen met gebruiker root en het wachtwoord wat je hebt ingesteld voor de webinterface. De router draait op basis van Linux. Je kunt gewoon op het filesysteem rondkijken met het ls commando (dir onder DOS).
Voor ons is het commando nvram belangrijk. Dit commando zorgt ervoor dat de diverse instellingen aangepast kunnen worden in het nvram (Non Volatile RAM). Het commando nvram kent diverse opties:
code:
1
| nvram [get name] [set name=value] [unset name] [show] |
Probeer maar eens nvram show. Je krijgt nu een complete lijst met opties te zien. Wij zijn alleen geintereseerd in de opties voor de WAN interface. Dit zijn de voor ons belangrijke opties:
code:
1
2
3
4
| wan_ipaddr = Het IP adres op de WAN interface (internet kant) wan_netmask = Het netmasker op de WAN interface wan_ifname = De interfacenaam van de WAN interface wan_gateway = Het gateway adres |
Als eerste gaan we deze waarden aanpassen. Gebruik hiervoor het commando nvram set. De waarde 1.2.3.4 moet het IP adres worden wat je van je ADSL provider hebt gekregen.
code:
1
2
3
| nvram set wan_ipaddr=1.2.3.4 nvram set wan_netmask=255.255.255.255 nvram set wan_gateway=10.0.0.138 |
Ik ben er nog niet achter hoe je deze configuratieopties nu echt kunt opslaan via de command line. Ik heb het via de webinterface wel voor elkaar gekregen:
Ga via de webinterface naar een van de configuratieschermen, als het maar niet het Basic Setup of Advanced Routing scherm is, en druk op Save Settings. In ga zelf altijd naar Setup en dan SNMP. De instellingen zijn nu opgeslagen.
Omdat het gateway adres een niet geldige waarde heeft (valt immers niet in hetzelfde segment als het ingestelde IP adres), moeten er een aantal routes worden aangemaakt. Er zijn twee configuratieopties die daarvoor gebruikt worden:
code:
1
2
| static_route = Hier staan de statische routes opgeslagen static_route_name = Hier staan de namen van de routes in |
Dit is ook weer via de webinterface te zien via Setup en submenu Advanced Routing. Het is echter via de webinterface niet mogelijk om de routes erin te plaatsen die wij nodig hebben, daarom maken we opnieuw gebruik van het nvram programma.
Er zijn twee routes noodzakelijk:
1. De hostroute voor 10.0.0.138 (het ADSL modem)
2. De default route naar 10.0.0.138
De volgende commando's realiseren dat, vergeet bij het 2e commando de ' tekens niet:
Killraven wees mij op een fout in een van de onderstaande regels. Bij beide regels dien je de ' tekens te gebruiken. Dit is nu aangepast.
code:
1
2
| nvram set 'static_route=10.0.0.138:255.255.255.255:0:0:vlan1 0.0.0.0:0.0.0.0:10.0.0.138:0:vlan1' nvram set 'static_route_name=$NAME:SIP_SPOOF$$ $NAME:SIP_SPOOF_GW$$' |
Sla ook deze wijziging weer via de webinterface op.
Herstart nu de router via het reboot commando of door de stroom tijdelijk te onderbreken. Maak daarna opnieuw contact met de router via telnet en log in.
Controle
Controleer eerst of het internet IP adres goed is ingesteld met het ifconfig commando. Je ziet in de output een regel met:
code:
1
| inet addr: 1.2.3.4 Bcast: 1.2.3.4 Mask: 255.255.255.255 |
Waarbij 1.2.3.4 natuurlijk het adres is wat je hebt ingesteld.
Nu de route tabel met het commando route -n. De -n optie is ervoor dat alleen de IP adressen zichtbaar worden en niet de complete hostnaam. Er moeten twee routes zichtbaar zijn:
code:
1
2
3
| Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.0.138 0.0.0.0 255.255.255.255 UH 0 0 0 vlan1 0.0.0.0 10.0.0.138 0.0.0.0 UG 0 0 0 vlan1 |
Er staan nog meer routes in de tabel, maar voor sip_spoof zijn dit de twee belangrijkste.
Als het allemaal goed is ingesteld kan er getest worden. Probeer een ping naar een bekend adres. Als het goed is moet er een reply terugkomen. Probeer hierna of je vanaf je PC het internet kunt bereiken. Als het allemaal werkt is alles goed ingesteld.
Conclusie
Ik hoop dat ik het een beetje duidelijk het kunnen uitleggen. Ik zal kijken of ik er een aantal screenshots bij kan maken. Dat maakt het allemaal wat makkelijker te bergrijpen.
Mocht nog iemand erachter komen hoe je de instellingen toch kunt opslaan zonder gebruik te maken van de webinterface dan hoor ik dat graag.