After finally getting my hands on the now famous Linksys WRT54GL router, and flashing it with DD-WRT, I was left with a small problem: I had ADSL, not Cable, and I didn’t have an ADSL modem to hand, not even under my bed. No problem I thought, I’d just use my Netgear DG834G flashed with the DGTeam firmware and use that in bridge/modem mode, and so I did. At this point clouds started forming over head and my worst fears were confirmed, the Gods truly where conspiring against me, for the DG834G was only sync’ing at 18Mbps/812Kbps. [/drama]
Using the O2 Wireless Box II (if I ever have to mention the model number of a router again it will be too soon) I had previously achieved 22Mbps/1.2Mbps – and for any self-respecting geek that 4Mbps matters; a shortfall of that magnitude could do serious damage to my reputation on the touring circuit. After some quick research it was confirmed: the supposed ‘ADSL2+’ compatible chipset in the Netgear isn’t up to the task.
So I had only one option left – hack the O2 box. After half an hour or so of digging, I finally found an article that detailed the process (without the use of an .ini file, which I was hoping to avoid), and documented it well. I’ll run through the steps here in case that forum or that particular post ever goes ‘bye-bye’.
First things first: we’re going to be configuring Port 2 for the bridge, so connect your Cat5 cable to any other of the ports. Log in to the O2 box via telnet, using the default (disgracefully insecure – O2 be ashamed) superuser account:
Username: SuperUser
Password: O2Br0ad64nd
Pay attention to capitalisation, and communism whilst you’re at it.
Once you’ve successfully logged in, enter the following, line for line as you see it below:
box:~# ip ifdelete intf=O2_ADSL2plus
box:~# eth ifdelete intf=eth_llu
box:~# eth bridge ifdetach brname=bridge intf=ethport2
box:~# eth bridge ifdelete brname=bridge intf=ethport2
box:~# eth bridge add brname=bridge2
box:~# eth bridge ifadd brname=bridge2 intf=ethport2
box:~# eth bridge ifconfig brname=bridge2 intf=ethport2 dest=ethif2
box:~# eth bridge ifadd brname=bridge2 intf=atm
box:~# eth bridge ifconfig brname=bridge2 intf=atm dest=atm_llu
box:~# eth bridge ifattach brname=bridge2 intf=atm
box:~# eth bridge ifattach brname=bridge2 intf=ethport2
Now, connect to the routers web interface and turn off DHCP:
Home Network > Interfaces > Local Netowrk > Configure (top right corner) > Untick “Use DHCP”
Back in the Telnet session, issue the following commands:
box:~# ip rtadd dst=0.0.0.0 gateway=192.168.1.1 intf=LocalNetwork
box:~# dns client dnsadd addr=192.168.1.1
box:~# dns server config WANDownSpoofing=disabled
box:~# dns server route add dns=192.168.1.1 intf=LocalNetwork
box:~# system config defaultconnection=LocalNetwork
Please note that the above presumes 192.168.1.1 is the IP of your Netgear. If this is not the case, either substitute the IP above with your own, or change the IP via the web interface.
We’re almost there, we’ve just got to save the new configuration and then test that it still works following a reboot. To save the configuration issue the following command in the Telnet session:
box:~# config save filename=user
Now the original poster said at this point he has to reissue the last block of commands following a restart, as doing a eth bridge list did not show the bridge2 connection we just created, with OBC1, ethport2, and atm attached. However, I had no such problem – though your mileage may vary!
The poster then goes on to give some really good advice: if you’ve come this far, you might aswell go the extra mile and secure the box! It’s relatively easy to do:
User Subversion – AKA enable the web administrator account
1. Type user config and choose the Administrator account.
2. Enter a new password, and choose the SuperUser role.
3. Log back in to the web interface using the credentials you’ve just decided upon, and welcome a whole host of new options to tinker with (or in our case, turn off).
Turn off all non-essential services
Via the web interface:
WLAN: Home Network > WLAN > Configure (top right corner) > Untick the box
UPnP: Toolbox > Game & Application Sharing > Configure (top right corner) > Untick the box
Firewall: Toolbox > Firewall > Configure (top right corner) > Untick the box
NTP: O2 Wireless Box II > Configuration > Configure (top right corner) > Untick the box
Via the Telnet CLI:
Type service system list to see what’s running. You’re then free to disable as you please, but I followed the posters advice and disabled:
- CWMP-C – updating utility
- CWMP-S – and again…
- DNS-S – DNS Server
- FTP – F…
- MDAP – Proprietary Thomson Service
- PPTP – Peer-to-Peer Tunnelling Protocol aka VPN
- SSDP – Part of UPnP
The command to disable each of the services is service system modify name=SERVICE_NAME – I shouldn’t have to tell you what part of that to substitute. If you’ve had to think about it, maybe go to bed and try again with fresh eyes.
Disable all default accounts
Finally, and perhaps the most important/worthwhile step: delete all the standard Thomson/O2 accounts. As the original poster rightly pointed out, the vast majority of the so-called Thomson firmware ‘hacks’ just involve logging in using one of the default accounts. So start off by creating a new account:
box:~# user add root
Give the account a strong password, and remember to make it a SuperUser account – and also remember to note down the details. It took me a good fifteen minutes of guessing when I last wanted to make a change…
Once the new account is created, log out and log back in as the new user. You can then delete all the remaining accounts as below:
box:~# user delete name=SuperUser
I think that just about concludes everything – you can now go and connect the router/modem to your line and see if you get the all important sync speed increases!
Feel free to contact me if you have any problems with the above, and again I must thank the original poster for being good enough to post his own guide.