Skip to main content


These are instructions to turn the ASUS WL500g Premium2 router into a Universal Threat Management (UTM) system.  Incidentally, the instructions on the packetprotector website were WAY lame (for version 3.4), which was why I started posting mine.  After they upgraded their firmware from 3.4 to 3.5.1, the instructions are a LOT better (and so is the firmware), and a lot of the troubles I had getting this working melted away.  So I recommend using 3.5.1 or newer.   Here is a picture of the (Way Cool) router.  

This router is a SWEET router, and I almost felt bad nuking the firmware that was on it. The router came with some great firmware, which I played around a little with.  Here is a screenshot

But I decided to go for the UTM firmware from Packetprotector, as it gives me Snort, ClaimAV, DansGuardian, and OpenVPN.  So, I can use this router to replace my VPN router, and as an IDS as well (I'm not too concerned about AV).  

I Downloaded the 3.5.1 firmware (packetprotector-brcm-3.5.1.trx).  The router WAS running firmware version When I tried to install it, the ASUS would not just install the firmware from the web interface.  So, I tried to 'tftp -i PUT packetprotector....trx per their instructions---didn't work.  I defaulted to unplugging router, plugged back in while holding reset button, and held until Power light blinked, indicating it was waiting for firmware.  Then:
>rexmt 1
>timeout 60
>put packet...
and this worked like a champ.  

After waiting for a few minutes to ensure a successful upgrade, I unplugged the router and tried to log in with (note, ssh doesn't work until you reset the password, which you can't do until you plug in a USB drive).  So, I had to sacrifice my "Securix NSM 1.3" thumb drive for the cause.   I downloaded the packetprotector-3.5.1.tar.gz tarball, unzipped it, and copied directories to the thumb.  Then I un-plugged the router, plugged in in the USB, and rebooted.   

The router came up perfectly.  I changed the root password, and dug around.  There were no SNORT codes, so I configured the WAN interface, plugged it into my router, input my oinkcode, and downloaded the current SNORT rules.  

Note, that sometimes the router doesn't work well until after a reboot, so reboot it and be patient (it takes a while to come up at first)

After I looked around, I found out that the log files are stored under: 
and the snort rules are in

So I went to the snort configuration page, put in my oink code, and updated snort.  If that works properly, you should be greeted with a screen like this:

I tested Snort with a ping, changing the /packetprotector/etc/snort/drop-rules/local-user.rule to detect and drop pings, and it worked fine.  The log is stored in /tmp/log/snort-inline/, but it clears upon every reboot (probably not a good thing).  I may change where this is stored, or alias it to the USB so that I can shut off the router and still have the logs.  

I ran a NMAP basic scan to test the normal rules, and they worked as well from the LAN interface.  Note that this is a firewall first, then an IPS, so when I ran a NMAP scan from to the WAN, the firewall dropped the packets before SNORT noticed the scan.  

Since I wanted to put this router anywhere in my network, and might have to access it both from the LAN and WAN interfaces, I decided to try out the OpenVPN service.  I've previously tried to get OpenVPN running on a WRT54G, a WRT54GS, and a WRT54GL with both dd-WRT and OpenWRT, and have never had any good success.   But I tried it here, and it couldn't have been simpler.  

First, you have to create your certificates.  This is easily done via the GUI:

If you use the default results, you'll be left with something like this:

After you create your certificates, you have to copy them to your client computer (they are nicely already where they should be on the router).  To do this, again, you can simply use the GUI to copy off your certificates.   Here is a screenshot:

So I uploaded these to my Ubuntu machine, and tested them.  They didn't work until I rebooted the router (like I mentioned above), but after I did, I have been able to create an OpenVPN tunnel from Ubuntu to the UTM effortlessly!  Here's a screenshot from my Ubuntu machine setting up the interface.

I've done a little playing with it, and noticed that the router updates the Snort rules daily, as well as the ClamAV rules.  I've also done a bit of playing with DansGuardian, and even though I initially thought it would be lame, I actually LOVE it!  I was previously protecting my son's computer from porn/malware via OpenDNS, but on a couple of occasions I'd get a new IP address, and his computer was no longer protected.  Also, although OpenDNS will filter websites it thinks is bad, a Google search for "Boobs" will still display a bunch of stuff (which you can't get to after you click on it, but it's still there because the ULD is google).  But DansGuardian works on CONTENT, not addresses, so searching for "Boobs" in google simply results in a DansGuardian blockage notice.

For example:  Here is what you get protected only by OpenDNS, and searching for "boobs" in Google:

And when you click on something you are, of course blocked by OpenDNS like so:

But when you do the same Google search behind the UTM, you get this as a response:

So using the UTM seems like a LOT better solution (heck, I use BOTH).  PLUS, I get the IDS (actually an IPS) for malware, and the OpenVPN tunnel!   ClamAV may be useful for checking for viruses in email and such, but I haven't played around with that much.  Mostly I wanted an IDS that I could move around my network and wouldn't be a powrer hog (like a full-blown computer), but I love all the features of PacketProtector 3.5.1 on the ASUS WL500g!

As an update, 3.5.1 has invalid certificates (expired on 12/28/2009), so OpenVPN won't work out of the box.   Additionally, 3.6.2 has bugs with the cert making scripts, so the easiest is probably to go with 3.6.1, which works find with OpenVPN, ClamAV, DansGuardian, and Snort (if you run from the shell, not the GUI).   But an easy solution to this problem is to install 3.6.2, get OpenVPN working, and pull off the certificates.   Then nuke it and install 3.5.1, and port those certificates over.  This got me up and running quickly and easily.  


Popular posts from this blog

ADS-B plotting with Kali (and other SDR goodies)

Recently I wanted to try some Software Defined Radio stuff.   
I had a RTL-SDR, FM+DAB, DVB-T USB Stick Set with RTL2832U & R820T. that I got from:
But, even though this dongle would break out FM radio stations, and ATC frequencies (like the local Ground Control, tower, and even ATIS), which was cool, it wouldn't break out ADS-B.   
Thus, I bought a Vantech Green Mini RTL2832U R820T DVB-T SDR DAB FM USB DIGITAL TV Tuner Receiver RTL-SDR Project + DAB dongle Tuner MCX Input from Amazon, and tried this.  
This dongle was able to listen to the 1090MHz frequency required for ADS-B (as it goes from 25MHz to 1700MHz).  There were tons of Windows programs out there for breaking out and plotting ADS-B Mode S broadcasts, but not many for Linux.  
For Kali Linux, here's how I got it running and plotting planes around my home:
0) before you start, you should do an apt-get update to ensure you hav…

Beaglebone Black as a Wireless Intrusion Detection System (WIDS)

Recently I have been wanting a wireless IDS (WIDS) to detect nefarious wifi activity.  I also had a Beaglebone Black hanging around that I wanted to put to good use.   This seemed like a perfect match, and indeed it seems to be so!

I did some research on WIDSs, and although there is SUPPOSED to be several out there, nearly all that I seemed to find was commercial and Windows-based products, not something I could use myself.   
About the only exception to that rule was Kismet, so I decided to give that a try.  Kismet is supposed to work as a WIDS, and per its documentation should catch the following attacks:
Kismet supports the following alerts, where applicable the WVE (Wireless Vulnerability and Exploits, ID is included: AIRJACKSSID Fingerprint Deprecated The original 802.11 hacking tools, Airjack, set the initial SSID to 'airjack' when starting up. This alert is no longer relevant as the Airjac…

Temper Temperature monitor on a Beaglebone Black

Beaglebone Black as a temperature monitor:

Recently I wanted to monitor the temperature of my shed.  I thought I'd use a small computer such as a Raspberry Pi or a Beaglebone or Odroid.

My Raspberry Pi boxes were all in use, so I grabbed my Beaglebone, which was doing nothing.

I flashed it with the Debian9.32018-03-054GB SDIoTimage, but that seemed like it was running lots of bloatware and the ethernet interface wouldn't take a static IP with /etc/network/interfaces.

So I went with the Debian9.32018-01-284GB SDLXQTi image instead.  I still had the same problem, that lots of junk was running, and I couldn't configure my interface by modifying /etc/network/interfaces

So my first step was to get rid of all the bloatware.  If you're using a Raspberry Pi or something, you can skip this and just go to the second step below

STEP 1--Remove Blotatware from Beaglebone Black:

With some searching, I came across this post:…