he wide availability of free or low-cost operating system, Web server and firewall software, and the penetration of relatively low-cost broadband service have reached the point where you can set up a complete Web server?from scratch?for very little money. For the first time in history, an average Internet user has the resources and tools to build a Web site without paying rent for space or a hosted server beyond the cost of the Internet connection itself. Even better, you probably already have at least some of the software and hardware you’ll need.
Obtaining Broadband Service
Since you are reading this article, you probably already have broadband service, but if you don’t, that’s the first thing you’ll need.
You should be able to sign up with any broadband service provider, but make sure that they support Point-to-Point Protocol over Ethernet (PPPoE) connections. Pricing and features for broadband connections vary, depending on which type of connection you purchase, where you live and what promotions are being offered at the time you sign up. For example, I obtained DSL service from Earthlink in Atlanta, GA at a cost of $49.95/month. Earthlink waived the activation fee and modem charge because I signed up during a promotion. So, my initial cost for service was $49.95.
|Author’s Note: This is an approximate cost for the first month of service, based on current pricing of home DSL service from big providers, such as EarthLink and BellSouth.net. The estimate does not include taxes, activation fees, or any other fees that your service provider may charge.|
Activation of your new broadband service can take anywhere from a few days to several weeks, so if you don’t already have a connection, order it first. You can assemble the rest of the required hardware and software while you’re waiting.
Obtaining the Required Hardware
Building an Internet server isn’t hardware-intensive, but you do need a few things. To minimize costs, look for used hardware, which you can sometimes even get for free. For example, I assembled my server from old spare parts I had lying around: an 80386 motherboard, 16 MB RAM, 1.5 GB hard drive, a 4x CD-ROM drive, and a 14″ VGA monitor. Yes, you read that right. My server is a 386. Unless you’re anticipating very large traffic volumes you don’t need a high-powered modern chipset for your server?and if you’re anticipating very large traffic volumes, a DSL or cable connection probably won’t be fast enough.
Here’s a list of the hardware you need:
- Broadband Modem. (0-40$). Your service provider supplies the appropriate broadband modem. Because of the many special offers available in many areas, your service provider may waive the cost of the modem.
- Computer. (~ $75). You don’t need much horsepower and should be able to find something used for $75 or less. If you are already running Linux on your personal computer, you could use that, but you should be aware that by placing your Internet server on your personal computer, you also potentially make your private files and data vulnerable to security breaches.
- Network Interface Cards (NICs). ($5 – $10). You will need one NIC for the incoming Internet connection and (unless you are going to use your personal computer as the server) a second NIC for the server’s local area network (LAN) connection. Shop around, but make sure that the cards you get are compatible with Linux. One good resource to check is the Red Hat hardware compatibility list. Linksys and 3COM work well. I had an old Linksys LNE100TX lying around and bought a used 3COM 3c509 for about $5.
- Ethernet Switch. ($25 – $45). You will need a switch only if you are going to put your Internet server on a LAN and share the Internet connection. I bought a Linksys EZXS55W, but there are several other brands that should work just as well. (I based the cost estimate on the results of searches for comparable hardware at PriceGrabber.com).
Obtaining the Required Software
While you are getting your hardware together, you will also need to gather some software. Here’s what you’ll need:
- Red Hat Linux. ($0 – $30). Any version will work. You can download Red Hat for free from the Internet, or you can buy a copy on CD for about $30. I used Red Hat Linux 6.2, which I bought at a local bookstore.
- NIC Driver/Setup. ($0). This software should come with your NIC, or you should be able to download it from the NIC manufacturer’s Web site. If you have a 3COM 3c509 or 3c579, you may need to get 3c5x9setup from Scyld Computing. If you have a Linksys LNE100TX, you should be able to use the Tulip driver that comes with Linux.
- Roaring Penguin PPPoE. (0$). This software will establish your Internet connection and configure your firewall.
- Web Server. (0$). This software serves up Web pages. I chose Apache, which comes with Linux, but you can download many others from the Internet. Consult the documentation that comes with the software for installation and configuration information.
- FTP Server (optional). (0$). This software lets people download and upload files using FTP. I chose WU_FTP, which comes with Linux, but you can download many others from the Internet. Download and consult the documentation for the server you choose to get detailed installation and configuration information.
- Dynamic DNS Client. (0$) This software will keep your domain name mapped to your IP address. You won’t need it if you have a static IP address.
Red Hat Linux is the first piece of software that you need to install. (Windows users unfamiliar with Linux may want to read the article The Windows Administrator’s 10-Minute Guide to Installing Red Hat Linux. Others may want to start with the Red Hat installation guide.) You will want to do a server install, rather than a workstation install. That way, you won’t install a desktop environment, which you don’t need on a server, and you will have the option to install Apache and WU_FTP at the same time.
Configuring the Network
If you have a Linux compatible NIC, the odds are that the Red Hat installation program will find it and set it up properly when you install Linux. If not, you will have to do some research, and maybe check with the NIC manufacturer.
If you have a Linksys LNE100TX, one problem you might run into is that the version of the Tulip driver that comes with your Red Hat Linux distribution is not the version that is required by the NIC firmware. The LNE100TX works with the Tulip driver, but it is picky.
If you have a 3COM 3c509/3c579, you may need to use 3c5x9setup to configure the NIC. It is fairly straightforward. For more information, on installing and using 3c5x9setup, refer to the documentation that comes with the distribution.
After setting up the NICs, you need to configure and enable the network interfaces (“adaptors” in the Red Hat netconf utility). Note that you only need to configure and enable the interface you use to connect to your LAN. The PPPoE software will find, enable, and configure the interface to your ISP automatically.
Connecting to the Internet
The Roaring Penguin PPPoE (RP-PPPoE) software establishes and maintains your Internet connection from the service provider. The best way to install and configure RP-PPPoE is to use the Red Hat Package Manager (RPM) distribution (.rpm file), which is a file format designed for easy installation on Linux.
After installing and configuring RP-PPPoE, you can establish an Internet connection by running adsl-start, either from the command-line or from a startup script. To terminate the connection, run adsl-stop. To check the connection and see the IP address that was assigned to your server, run adsl-status.
Here is an example of running adsl-status from the command-line:
Red Hat Linux release 6.2 (Zoot) Kernel 2.2.14-5.0 on an i486 login: trose Password: Last login: Tue Sep 16 21:04:28 from 192.168.1.10 [email protected]:~ $ /usr/sbin/adsl-status adsl-status: Link is up and running on interface ppp0 ppp0 Link encap:Point-to-Point Protocol inet addr:22.214.171.124 P-t-P:126.96.36.199 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1 RX packets:114192 errors:0 dropped:0 overruns:0 frame:0 TX packets:97349 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:10
For more information, consult the documentation at the Roaring Penguin Web site.
Adding a Firewall
You could run your Internet server without a firewall?but only if you don’t mind your server being pillaged.
RP-PPPoE comes with a script for configuring the Red Hat Linux firewall, ipchains. You will probably want to tweak it. At minimum, you will want to open port 80 for Web (HTTP) traffic, and if you are going to run an FTP server, you will want to open ports 20 and 21.
To set up ports and services, see Listing 1, which contains a script that sets up the server to allow HTTP and FTP traffic, and Listing 2), which lets anything move through your firewall (essentially turning it off). Using those two scripts as examples, you should be able to create modified scripts to allow or deny whatever services you wish.
Setting a Domain Name Service (DNS) Provider
If you have a static IP address, you can have your service provider or a domain name registrar create a DNS entry for your domain name. If you have a dynamic IP address, you will need to associate your IP address with your domain name every time your server connects to the Internet. This dynamic process is called as dynamic DNS. You should be able to obtain a domain name for about $8.95 (this is the lowest price I was able to find for registration of a domain name for one year. I checked recently, and this price is offered by two registrars: Go Daddy and Bigfoot.)
There are many dynamic DNS providers. Just search the Web for “dynamic DNS” to get a list. I chose ZoneEdit for dynamic DNS because it has good setup instructions and easy, Web-based tools for maintaining my account. If you want to use ZoneEdit, you must first sign up for an account, and then create a zone for your domain name.
You will also need to download a dynamic DNS client. I chose DDClient because it’s easy to use and appared first in ZoneEdit’s list of compatible DNS clients. To install and configure DDClient, unarchive the distribution file to /usr, and follow the instructions in the README file.
The total cost to set up your Internet server as described in this article should be somewhere between $50 and $250, as shown in Table 1.
Table 1: A cost range estimate for all the hardware and software mentioned in this article. Note: All costs are approximate.
|Hardware||$0 – $130|
|Software||$0 – $30|
|Total||$58.90 – $218.90|
Lock and Load
Once you get everything installed and configured, you are ready for visitors. Load up your content, fire up the Web server, and tell all your friends and neighbors to come on down.