Yinette's Webshite

A collection of security stuff and all sorts of other random shit.

Project AWACS

Project AWACS

E3 Sentry AWACS (image from Wikipedia)

I had a requirement for 4G on the go that doesn’t cost me $40,000,000 a year to run… Telstra’s Voice and Data Pre-Paid sucks for price.

I wanted something I could use on the way to and from work, and whenever I was out. Something that was low-power and could sit in my bag.

UPDATE I fixed the issue where the usb modem would not show itself as an interface at boot, check the end of the post to find the fix!

Why AWACS?

I have massive planespergers… From wikipedia:

AWACS or Airborne Warning and Control System is an airborne radar picket system designed to detect aircraft, ships and vehicles at long ranges and perform control and command of the battle space in an air engagement by directing fighter and attack aircraft strikes.

I usually name my Wireless stuff after Airforce related things, Such as TACAMO (TAke COmmand And Move Out – Nuclear war survivable communications) for my Mobile Phone tether, and Callsigns for static Access Points, such as “Mainsail” and “Skyking”

The Setup:

Hardware!

1x TP-Link TL-MR3020 Mobile Access Pointhttp://wiki.openwrt.org/toh/tp-link/tl-mr3020 – Atheros AR7240 MIPS Processor @ 400MHz – 32M RAM – 4M Flash (yes, very tight…) – 1x USB, 1x Mini-USB (for power input) – 1x 10/100 Ethernet (for un-fucking with ThinkPad)

1x ZTE MF823 LTE/UMTS USB Modemhttp://zte.com.au/telstra/MF823.htm – Has an ARMv7 SoC and runs a Linux Kernel as I found out. (Had root on it less than 10 minutes after it being delivered)

1x Mini-Gorilla Battery Pack. https://www.powertraveller.com/en/shop/portable-chargers/professional/minigorilla/

So, firstly, I needed to Install OpenWRT on the TP-Link, this was fairly straight forward with the trunk versions known as Barrier Breaker. TP-Link are bros that don’t dick you around in giving access to the hardware you own, so it was as simple as feeding it OpenWRT as a Firmware Upgrade via the Web Interface :)

Once installed, I opkg’d the niceties and requirements after getting it connected up to my work’s non-priveleged wireless :3

opkg update; opkg install ip kmod-usb-net kmod-usb-net-rndis kmod-usb-net-cdc-ether usbutils udev

This will get you the nice new IP tools, as well as all the kernel modules and software required to tether to the ZTE Modem (Which will present itself like an Ethernet Adaptor over USB)

Once Telstra was kind enough to deliver my USB Modem (ok, it wasn’t that bad) I registered it up, and put on 10G that will stay active for 90 days, none of this 30 day bullshit with voice and data. You pay more up-front, but it will last you.

Once all together, we tell the AP what to do:

Since we cannot fit a web interface or let alone luci on this bee’s dick of a flash storage, we need to use the OpenWRT CLI configuration utility uci

(Alternatively, you can edit shit directly in /etc/config/network)

uci set wireless.@wifi-iface[0]=wifi-iface
uci set wireless.@wifi-iface[0].device=radio1
uci set wireless.@wifi-iface[0].mode=ap
uci set wireless.@wifi-iface[0].network=wan
uci set wireless.@wifi-iface[0].key=<GOOD PASSPHRASE>
uci set wireless.@wifi-iface[0].ssid=<AN SSID> (i use AWACS)
uci set wireless.@wifi-iface[0].encryption=psk2+ccmp

once satisfied, commit changes.

uci commit

Following this will get your USB Tether up and going – http://wiki.openwrt.org/doc/howto/usb.tethering

the tl;dr:

uci del network.wan
uci set network.wan=interface
uci set network.wan.ifname=usb0
uci set network.wan.proto=dhcp
uci commit network

and

ifup wan

How does it go?

Overall, I’m very impressed how it has turned out. Even in a city like Sydney where the 2.4GHz spectrum is literally shitted with Access Points, the close-proximity and power output make this more of a Piconet. People sitting directly next to you or around you on a bus or train will be able to use this without packet loss.

Internet access is very reliable, at around Lunch Time in the Sydney CBD (Heavy use period) I got 21 Mbps down and 17 Mbps up on 4G/LTE.

I’ve now used it more than a few occasions (Two without modem, one with) and I still have not dropped a Bar of Energy on the Gorilla. This is one Power Efficient setup, let me tell you.

What did impress me was the ability to reach the USB Dongle’s management interfaces still.

The USB Dongle will by default make a network of 192.168.0.0/24, whereas OpenWRT will have 192.168.1.0/24, you can reach the modem still on 192.168.0.1

Protip:

The ZTE MF823 has Telnet open, here’s the creds:

USER: root
PASS: zte9x15

It has a pretty decent Busybox on it too.

Weird Quirks

Sometimes, the USB modem won’t show up unless you plug it in after the AP boots. If this happens, just do so and run ifup wan from a root shell on the AP, everything will take care of itself from there.

FIXED

The way to solve this is rather silly, but it does work:

For some reason, the rndis_host module is not loaded into /etc/modules-boot.d to fix this run:

ln -s /etc/modules.d/usb-net-rndis /etc/modules-boot.d/50-usb-net-rndis

Then in /etc/rc.local add the line /etc/init.d/usbmode restart

For some reason, the USB stuff has to be restarted when the Access Point comes online, this might be due to the fact that both the ZTE Modem and the AP power up at the same time, the AP might be ready before the ZTE modem is… This will refresh stuff and then your usb0 interface should pop online at boot!