As you browse the internet you probably don’t give much thought to how you are connected through your modem. You probably just plugged in your modem when you signed up, configured the connection settings and walked away. But have you noticed how dull the web interfaces used to manage modems are? They could be described as confusing, non-intuitive and when it comes to real networking features, modems lack in this area too.
What if there was a better solution to that of your hardware modem? What if there was a software solution which could act as your router and give you the real power and control you seek for your network? Well, there is. Using a software-based router offers you much better network performance, flexibility and offers an extra layer of security that hardware modems simply cannot provide.
There are many Linux-based router and firewall distributions. I have been a long time user of a niche distribution called Zeroshell. Zeroshell is often overlooked and it still surprises me today when people tell me they’ve never heard of it. I plan to write more tutorials in the coming months on how to do various tasks using Zeroshell, but first I want to show you how to install it and get a basic software router running. The whole process is quick and takes no longer than 15 minutes.
You could build a dedicated box out of old hardware you have lying around your garage to run Zeroshell, but it’s simply not required. For a simple router configuration using Zeroshell you can get away with as little as 256MB RAM. This makes Oracle VM VirtualBox the perfect platform for installing Zeroshell.
I will assume you have Oracle VM VirtualBox already installed. Create a new virtual machine. Give your new virtual machine a name, I have used simply “zeroshell”. Select “Linux” as the Type and select “Other Linux 64-bit” for the Version.
Allocate the virtual machine 256MB of shared memory and 8GB hard disk space. That is all that is required. Once you have created the virtual machine, head into its settings and change the Network adapter settings to “Bridged Adapter”.
Then, head into the Storage settings and attach the Zeroshell installation ISO to the virtual CD-ROM drive.
You are now ready to boot and install Zeroshell. Click “Start” to boot the virtual machine.
Once the boot process has completed you will be presented with the Zeroshell console where you can choose to install it to the hard disk, along with a host of other changes that can be done through the console.
To install Zeroshell, press “A” on your keyboard.
Press “1” to select the hard disk for installation and it will ask you for confirmation.
Confirm the installation to the hard disk by typing “yes”.
The next two settings are irrelevant to achieving a basic Zeroshell configuration so you can simply press “ENTER” to use the default settings and then the installation will commence.
Once the installation to the hard disk is complete, press “ENTER” to confirm the creation of a profile and use the default name for the profile.
Change the hostname to something that suits your network configuration and one that will uniquely identify Zeroshell. If unsure, you can just use “zeroshell” as the hostname.
Enter an administrative password. Remember this password as it will be used to log into the Zeroshell web interface.
The next two settings can be ignored. Press “ENTER” to proceed until you reach the network interface configuration.
You must now assign an IP address to the network interface. This will be used to identify Zeroshell on your network, like any other connected computers. It will also be used to access the web interface through your web browser. I am using the IP address of “192.168.1.88”, but please just use whatever suits your own network identification preferences.
Press “ENTER” to use 255.255.255.0 for the subnet. Then enter the IP address for the gateway, which will be the source of your internet connection and the IP address of the modem. This will be different for everyone, but my own gateway is “192.168.1.1”. This is quite a common IP address used by modems.
The Zeroshell installation will now be complete.
Press “ENTER” to return to the Zeroshell console and then press “H” to shutdown the system. To confirm shutdown, press “y”.
Once the system is shutdown you need to head back into the virtual machine settings and detach the Zeroshell installation ISO.
You are now ready to start using Zeroshell.
Once you have rebooted Zeroshell and the console has loaded, you can now log into the web interface. So open your web browser and navigate to the IP address of Zeroshell. Mine is “192.168.1.88”, so I would use “http://192.168.1.88”.
Enter the username “admin” and your password to login.
The first thing I always recommend with Zeroshell is to set the correct timezone as it defaults to Europe/Rome. So click on the “Time” tab at the top. Now select your correct timezone and sync the time with the NTP server.
Zeroshell now takes on the role of your router, for your network. Now you simply need to change the gateway IP address in your operating system’s network settings to the IP address of Zeroshell.
If you are unfamiliar with the interface of Zeroshell, it can appear quite intimidating at first. But over the next couple of weeks and months I will go through various tasks using Zeroshell and show you how to setup a DNS forwarder, a transparent proxy server, and show you how to use advanced features like Quality of Service (QoS) and Net Balancer.
Zeroshell is a fantastic package which you will find is extremely rewarding if you are patient enough to become familiar with its interface and learn its powerful configuration options. It’s flexible and can be whatever you want it to be.
Leave Zeroshell running on your system in the background full-time. You still need your hardware modem to access the internet, but all future router tasks that you may have traditionally relied on your modem for are now all handled by Zeroshell.