Serving the Internet from a PowerBook 5300
It has been a year since the seduction began.
I was an early adopter of ISDN, but years later I felt that it never lived up to its promise. Now that DSL is available in my area, and since I can hit the telco central office with a well-aimed pitch from my back yard, I figured I would get excellent results, since bandwidth available via DSL depends in part on the length and condition of the wires from the central office to your site.
My DSL installation was quick and practically flawless, in spite of complications caused by the conversion from ISDN. To keep the DSL line isolated from the rest of my network, Pacific Bell provided a PCI Ethernet card for my Mac. My downlink speed reached 1.5 megabits per second (Mbps), although PacBell throttled my uplink bandwidth down to 128 Kbps.
Spreading the Joy — I couldn’t be happier, except that this new instant-on, super-fast connection worked only for my main computer. My wife Kim’s iMac, barely two meters away, was still chained to a 56 Kbps analog modem (and since our voice line uses the same pair of wires as the DSL connection, she could no longer surf and talk at the same time). Other derelict machines scattered around the house had no Internet access at all. We needed a way to share this prodigious new bandwidth resource.
A quick search of the Web turned up some DSL routers. These devices connect to both the DSL line and an Ethernet network, and optionally share a single IP address among several machines using Network Address Translation (NAT). Just what I needed, except that both Kim and I are resident doctors, which means we make just over minimum wage. The $200 installation fee for the DSL line had already decimated my computer budget for a few months, and DSL routers from companies like Netopia start at about $500.
It occurred to me that there must be a software-based solution. Another search turned up SurfDoubler by Vicomsoft and IPNetRouter from Sustainable Softworks.
The Vicomsoft product looked friendly and polished, but it limited the number of simultaneous users to two or three. I liked IPNetRouter’s approach of leveraging the considerable power already present in Open Transport. The interface was geekier and more flexible, and since I’m a geeky kind of guy, I downloaded the free demo.
IPNetRouter did everything its author, Peter Sichel, promised. I went seriously over budget by registering the $89 program (generous educational and competitive upgrade prices are available), and within minutes my wife’s iMac was enjoying the same unfettered Internet access that I had. Unfettered, that is, as long as my machine was running. That presented a problem: I like to write low-level software, which means that I crash and/or restart my machine frequently while testing. I also hate fan noise and I hate wasting electricity. Leaving my SuperMac S-900 with dual fans and dual monitors continuously running when I wasn’t using it was troublesome.
Full-Time Service — IPNetRouter, I’m told, doesn’t use a whole lot of processor power. I had an old PowerBook 5300cs sitting around that had both a malfunctioning display and a broken trackpad. It wasn’t worth the trouble and expense to fix it, but the processor still worked fine. It was fanless, sipped power, and even had built-in backup power in the form of its built-in battery. Could it be pressed into service as a router?
Indeed it could. I hooked up an external monitor and a mouse long enough to load AT&T’s Virtual Network Computing (VNC) software onto it, which allows a remote machine to mirror the screen and send keyboard and mouse commands over the Internet. (See Kevin Savetz’s look at earlier versions of VNC in TidBITS-441.) It isn’t as stable or feature-filled as Netopia’s Timbuktu, but it would do the job and, being free, it fit my budget. I bought a Ethernet PC Card from TidBITS sponsor Small Dog Electronics for $19, loaded IPNetRouter onto the PowerBook, and connected it to my Ethernet hub.
What had started as a simple switch from ISDN to DSL had grown into a small but significant LAN construction project. I now had a stable, fast, 24/7 Internet connection that could be shared by all the computers in my home. You would think I’d be satisfied.
But another problem quickly presented itself.
A Web of One’s Own — I’ve had a Web presence for a long time, but I’d always been content to have my site served by my ISP. Why should I take on the hassle of keeping a server up constantly, when server space is included with most ISP accounts? The ISP I used for my old ISDN connection, however, didn’t support DSL. That meant moving my site, which meant rewriting all of the pages that used server-specific resources (mostly CGI scripts to handle email forms) to be compatible with PacBell’s servers. PacBell also limits DSL accounts to three megabytes of server space, which would be a tight squeeze for my site. Free server sites exist, but usually on the condition that you display ads, and I take pride in the fact that my site is free of advertising. I could buy more server space from PacBell or elsewhere, but there was that pesky overextended budget problem again.
I stared balefully at the 5300cs under my desk. Always on. Always connected. Static IP address. Hundreds of megabytes of free disk space. Why, it was the perfect candidate for a server!
With no previous need for a Web server, I had never paid much attention to the server software that was out there. I knew about StarNine’s WebSTAR, but it violated the Prime Budget Directive. My brief search for a very low cost server was rewarded when I was reminded that Apple’s Personal Web Sharing has been bundled with the Mac OS since version 8.0, and runs under Mac OS 7.6. [Another option is NetPresenz, the venerable shareware application which offers Web, FTP, and even Gopher servers, but its $75 price is higher than that of the free Personal Web Sharing. Ron eventually switched his server to NetPresenz, but later in his server odyssey than what’s covered in this article. -Geoff]
I activated Personal Web Sharing, copied my Web site files onto the 5300cs, and I was hosting my own site! I was surprised to find that Personal Web Sharing even uses File Sharing to support basic authentication (password-protected Web pages) and CGI scripts. I soon discovered a wealth of AppleScript CGIs on the Web, and installed the venerable Email CGI to support my basic forms.
Why Not Email? High-speed access for all my machines, a local Web server with hundreds of megabytes to play with, freedom to write my own CGI scripts… that should have been enough, but I’d been bitten by the server bug. I have always wanted to host some mailing lists to help my fellow residents communicate better, but never had access to a list server. I remembered Macjordomo, an long-standing mailing list server, and was surprised to find out that it was still free.
Macjordomo doesn’t require your own mail server, but as I configured it I realized that I would need several addresses for each list, since I was thinking along the guidelines published in TidBITS for mailing list management (though I haven’t set up all the headers yet).
Sure, I could get extra mailboxes from PacBell, but then that budget thing reared its ugly head again. The Macjordomo documentation, though, listed a couple of free Mac POP and SMTP mail servers. Those would provide me with all the mailboxes I wanted. First, I evaluated Eudora Internet Mail Server (EIMS) since I’m a big Eudora fan. The commercial version looks nice, but is way out of my price range. The freeware version also seems to work well, and has its adherents, but I couldn’t get the anti-relay features to work as well as I wanted. I couldn’t live with myself if someone were using my site to relay spam. So instead I adopted Stalker Internet Mail Server (SIMS), a flexible server with excellent anti-spam features.
Now I could create whatever email boxes I wanted, and in the process I had solved another problem: many of my patients prefer to communicate with me by email. Some encrypt their mail using PGP, but for others that is too complicated. I worried about their messages sitting, unencrypted, on someone else’s POP server. Though messages can still be intercepted in transit, at least now they go directly to a computer under my control.
What’s in a Name? Surely that would be the end of things. I now had a server for email and the Web, a mailing list manager, and NAT-equipped router. I had done it all for about $200. The only problem was that the "friendly" DNS name PacBell had given my PowerBook 5300 was hideous – it was more than 40 characters long and contained a mishmash of letters, numbers, and hyphens. How was anyone going to remember an email address at a site with a name which looked like a random slap on the keyboard?
I admit it: I have always lusted after a vanity Internet address. Now I had my excuse, and with the opening up of the domain-name registration process, prices were falling. It would mean spending a little bit more money, but by then I had saved a bit by skipping meals while trying to get all this server software running. I registered with Network Solutions at $70 for two years.
Another catch, though: in order to register a domain name, you have to have two separate domain name servers (DNS) – ideally on topologically distant parts of the Internet. Again, these services can be purchased from any number of vendors, but I needed a more budget-friendly solution.
Fortunately, there are two free name servers available for the Mac OS. But first a word of warning. With some perseverance and patience, most people could probably get this far. The free Web, email, and mailing list server software is of generally high quality, well-supported, and more-or-less easy to use. The DNS system, however, does not excel at user-friendliness. Understanding the arcana associated with DNS servers and their zone files can be a monumental challenge. If you’re going to break down and pay somebody else to administer part of your site, or plunk down serious bucks for a friendly and supported commercial product (such as the $290 QuickDNS Pro from Men & Mice), DNS is where I’d start.
To their credit, Apple attempted to put a friendly face on DNS back in 1995 when they flirted with the idea of supporting Internet servers on the Mac. MacDNS makes it possible to get a domain name server online in minutes, though its capabilities are limited, its performance poor, and its stability is highly questionable (although some report using it without problems). It is still available as a free download from Apple, but has not been updated since 1996.
NonSequitur is an alternative for Unix geeks and others willing to tackle the mysteries of BIND-format zone files. It is a small, fast, streamlined name server that seems extremely stable. It is also free, and is my name server of choice. Since MacDNS’s and NonSequitur’s zone files both use BIND format, you could conceivably use the MacDNS front end to create a zone file for NonSequitur, though I haven’t actually tried it.
Providing a secondary DNS proved more problematic. I only had one IP address, so my secondary service would have to be hosted elsewhere. For the short term, I solved this problem by recruiting a temporarily unused computer at my work. DNS is generally low bandwidth and can run in the background virtually unnoticed for low-volume sites, but this solution wasn’t really satisfactory – even the scant few cycles I was using weren’t really mine.
Ideally, now that high-speed access is becoming more commonplace, we could create simple DNS hosting partnerships: you provide secondary DNS for me and I’ll provide it for you. Unfortunately, neither of the free Mac OS DNS programs support this concept. Most DNS programs can act as secondary servers by querying the primary, so zone files don’t have to be manually synchronized between the two machines. MacDNS and NonSequitur will act as primaries, but do not support secondary DNS. A clever AppleScript could probably circumvent this limitation, but that project is currently languishing on my good intentions pile. The commercial QuickDNS Pro does offer secondary service, but when the budget had recovered a bit, I ended up buying secondary DNS service. Several providers offer secondary DNS for a dollar or two a month.
Share and Share Alike — Enough certainly should be enough, but there was just one more piece I wanted to put in place. I was involved in another project that needed some hosting services. Now that I had all the pieces in place, how hard could it be to add another domain to my server?
I soon became discouraged. There are well-established standards for sharing a single IP address among multiple Web sites as a way of conserving scarce IP address space – a practice called virtual hosting. Alas, virtual hosting implementations for the Mac OS seemed to be limited to WebSTAR plug-ins. I mulled over the idea for a few days before it occurred to me that a CGI script could do the job. When I went to create the script, I discovered that it was frighteningly simple. In its most basic form, Web server multihoming can be accomplished with just three lines of AppleScript! Even after I added some error checking and refinement, the script is less than a screen’s length and supports an unlimited number of Web sites all hosted from the same IP address.
Mastering the Web Universe — We’ve all heard the A.J. Liebling witticism, "Freedom of the press is guaranteed only to those who own one." What is remarkable, to me, is the dramatic way in which the Internet has decreased the cost of press ownership. The one major piece of the puzzle was full-time access to the Internet, but the rest of the job of building a full-fledged Internet presence required little money, a scrap computer, and a chunk of spare time.
When I’d considered setting up my own server in the past, I’d always assumed I would run it under Linux. In retrospect, I am glad I took the Mac OS approach, unplanned though it was. It convinced me as nothing else could how viable Macintosh is as an Internet platform.
More information about setting up Internet services under the Mac OS can be found in the book Providing Internet Services via the Mac OS, by Carl Steadman and Jason Snell, available online. Although the book was published in mid-1996 and is now quite dated in places, it was comprehensive at the time and the basics remain as true as ever.
[Ron Risley could have been a dot-com. Instead, he closed his communications consulting practice in 1986 to pursue a new career as a psychiatrist and family doctor.]