WirelessMutants.com

Home

 

This Airo-LRP, Linux & Aironet Wireless Firewall / Router is based on the LRP.

What is LRP?
LRP is a floppy based distribution of Linux that can boot a complete gateway/router on any old 486 or pentium machine with as little as 8 meg of RAM. It creates a solid state router (the whole thing runs in ram - once it is booted, there is NO disk access) that is just as fast as an expensive router, and costs next to nothing.

There are a variety of distributions of LRP, so you can pick one that suits your needs from sourceforge or the links you can find here. The firewall used is the seawall project, also at sourceforge, and since it has an LRP distribution, it's easy to add to any LRP based system. The first thing you have to do is get a working LRP disk, and configure it for your network. Refer to the docs that come with your LRP distribution for that.

What is this Airo-LRP based solution about?
The goal was to add 340 & 350 aironet PCI support to a LRP(2.2.16 kernel) box so that it could receive from a wireless ISP, and provide a firewall & gateway to a LAN. The box could also be configured (in reverse) to be a homebrew Ad-Hoc Access Point, sharing Internet Access to wireless clients from a DSL or Cable (ethernet) Internet connection.


The hard part is getting the driver for the aironet card to work. Most of the instructions that come with various 802.11b linux drivers pertain to PCMCIA support, and require a full kernel source and recent pcmcia source tree as well. Compiling the driver often results in obscure error messages:-(

To get a pci card driver for aironet 340 AND 350 cards that can be used with LRP, you can try to follow the instructions that come with the AIROLINUXv15000.tar.gz file, or follow the instructions below, which worked for me.



Compiling Aironet Drivers:

Clean, full install slackware 7 (2.2.16 kernel) on an old pc.

download, untar to /usr/src, and make config, make all, make install the pcmcia-cs-3.1.27 package.

download and install the AIROLINUXv15000.tar.gz from cisco's site. untar and run the cwinstall script, giving it the location of the pcmcia package. follow the instructions to recompile the pcmcia package again...

This gives you a good airo.o in /lib/modules/2.2.16/pcmcia for 2.2.16 kernels that supports the cisco utilities and the 350 series pci cards.

copy this file to an msdos floppy, boot your lrp disk, mount the floppy (mount -t /dev/fd0 /mnt) and copy the airo.o file to /lib/modules. backup your lrp disk and reboot it.


The aironet linux drivers are configured by the xwindows based utilities. This won't work for an floppy based LRP, so here's a script to set the ssid, enable wep etc...

#!/bin/sh

int="eth0"
SSID="tsunami"
NodeName="lrp"
Mode="ESS"
DataRates="2 4 139 22 0 0 0 0"

config=/proc/aironet/$int/Config
ssid=/proc/aironet/$int/SSID

echo "$SSID" > $ssid
echo "NodeName: $NodeName" > $config
echo "Mode: $Mode" > $config
echo "DataRates: $DataRates" > $config
echo "WEP: encrypt" > $config


The aironet drivers write status information to the /proc/aironet/ethx/ directory, so you can view connection info with something like this:

cat /proc/aironet/eth0/Status | grep "Signal Strength"

Of course, this is a bit difficult unless you are logged into the router, so installing the Weblet.lrp module and running a cgi to give you this info on a webpage is even better. Weblet is a 12k shell script that runs through inetd and responds to http requests. Read the docs on Weblet to install it securely. Below is the script to add to the /var/sh-www/cgi-bin directory to monitor aironet Status and Statistics.

#!/bin/sh
#
# airostats script for airo-lrp
#

echo "Content-type: text/html"
echo ""
echo "<HTML><HEAD><TITLE>Aironet Statistics</TITLE></HEAD>"
echo "<BODY background="/images/lrpbkg.gif">"
echo "<H1>LRP Firewall</H1>"
echo ""
echo "<H3>Current Cisco Aironet Wireless Stats</H3><PRE>"
echo ""
echo "<B>Status:</B>"
echo `cat /proc/aironet/eth0/Status | grep "Signal Strength"`
echo `cat /proc/aironet/eth0/Status | grep "Signal Quality"`
echo `cat /proc/aironet/eth0/Status | grep "AP:"`
echo `cat /proc/aironet/eth0/Status | grep "BitRate"`
echo ""
echo "<B>Statistics</B>"
echo `cat /proc/aironet/eth0/Stats | grep "ElapsedSec"`
echo `cat /proc/aironet/eth0/Stats | grep "HostTxBytes"`
echo `cat /proc/aironet/eth0/Stats | grep "HostRxBytes"`
echo `cat /proc/aironet/eth0/Stats | grep "LostSyncBetterAP"`
echo "</PRE>"
echo "</BODY></HTML>"


Additionally, if you want to monitor your Aironet Based LRP box from a Windows machine, you can download this utility. It polls the LRP box at regular intervals for stats, and displays them nicely for you in windows. Note: This is free software - no guarantees of anything. That said, it should work fine in Win 95 and up.

It requires this shell script to be installed on the lrp box running the weblet package.

#!/bin/sh

echo "Content-type: text/html"
echo ""
echo `cat /proc/aironet/eth0/Status | grep "Signal Strength"`
echo `cat /proc/aironet/eth0/Status | grep "Signal Quality"`
echo `cat /proc/aironet/eth0/Status | grep "AP:"`
echo `cat /proc/aironet/eth0/Status | grep "BitRate"`
echo `cat /proc/aironet/eth0/Stats | grep "ElapsedSec"`
echo `cat /proc/aironet/eth0/Stats | grep "HostTxBytes"`
echo `cat /proc/aironet/eth0/Stats | grep "HostRxBytes"`
echo `cat /proc/aironet/eth0/Stats | grep "LostSyncBetterAP"`

 


After the router was working, I added seawall firewall script and utilities, just about maxing out the 1.4meg floppy, but making the router / firewall complete.


Downloads

If you are using the 2.2.16 kernel, and a 340 or 350 cisco aironet pci card, you can download the airo.o file zipped here. Note that this will not work with other kernels or kernels that don't support loadable modules. It also doesn't provide for pcmcia card support - only the PCI cards are supported.

The obvious question - Can you send me your lrp disk???
No. I am not an expert on configuring LRP or the Firewall script, and because the disk I have is configured specifically for my network, giving it away might compromise my own security.

ka@pacific.net

 

 

4964