MY FIRST BIG LINUX PROJECT:
For quite some time now, I have wanted to build a server-run home network. Well, I recently joined the ranks of the Downsized and Unemployed, so now I find myself with plenty of time to learn as I go.

I have several questions though, before I even get started. I have provided as much preliminary information as possible below, followed by my specific questions. If you can spare the time to continue reading, I would greatly appreciate any comments, suggestions, and recommendations. Thanks, in advance.

MY EXPERTISE:
Approximately 19 years of End-User desktop and small LAN support, the first 10 years (1990-2000) almost exclusively Apple and Macintosh. Since then, mostly Windows (98-Vista), only the most basic DOS, a smidgen of Linux, and a very limited amount of Mac OS X.

From 2000 to 2005 I went to DeVry for a BS in Network and Communications Management, where I had introductory classes in Programming with C+, Networking with Windows Server 2003, TCP/IP, and command-line RedHat Linux. (I wasn’t exactly honors material, but I held my own in all of these.) I do, however, still have all of my textbooks.

MY LAN:
My home network will have fewer than 10 workstations total, but multiple HW & SW platforms, although generally, no more than four Users will be on the network at any one time. I may want to host the occasional LAN party for the kids and their friends, but I would still expect no more than seven or eight concurrent Users at any given time.

My brother-in-law lives in an attached apartment and will be sharing the network. He has a desktop and a notebook, each running XP Pro 32. He seldom uses both simultaneously.

The rest of the nodes will be as follows.

  • My personal workstation: running 64-bit Vista Ultimate (runs mostly business apps, but some games and occasional audio file management). This system will use both, the built-in RJ-45 and a PCI card, each mapped to a dedicated outside IP, for multiple concurrent Internet connections.
  • My HP Pavilion notebook: shipped with XP Pro 32 and when running, uses mostly Open Office and Firefox.
  • Wife’s workstation: running Win XP 64 and doing a lot of mid to high end graphic work, scanning and editing photos, maintaining the family website, digital scrap-booking, eBay posting, etc. It will also be doing some basic audio work: mp3, CD burns, etc.
  • Two workstations, booting to Linux but with a twist: they should not be able to make or save any changes to the booting profile. Instead, the desktop will contain multiple VM-ware engines, each running a different version of Linux, Mac, and Windows operating systems, to accommodate the wide variety of software applications in our library.
  • These last two systems are for my pre-teen kids, and will be used almost exclusively for web-access, music downloading and audio CD burning, and gaming. I decided on the virtual machine idea because we have a collection of games that span multiple OS platforms and some are old enough to be floppy disk-installed.
  • Plus, kids tend to run into a lot of mal-ware online, so I figure the virtual engines will add another layer of security and make it easier to restore their infected virtual machines from copies of the originals, stored on the server.
  • One additional workstation for a visiting friend or family member, and that can act as a spare system for anyone in the house. Most likely, it will be configured exactly like the ones for the kids: boot to Linux, restrictions against modifying the boot-profile, and multiple virtual engines running a variety of OS versions.
  • An ancient but functional grayscale HP LaserJet 4 networked printer.
  • A somewhat newer but USB-only Konica-Minolta MagiColor 2500W color laser printer. This printer uses a non-standard language, so will not work with the average USP print server. To share this printer across the network, I will need to attach it to a server and set print-sharing so each system can map to it.
  • I may also, eventually, want to self-host my personal and family websites, but that is definitely on the back burner.


MY INTERNET:
I connect to the world via high-speed DSL (currently 7Mb, but might soon be 20Mb). I currently have a single static outside IP address, but will soon have a bundle of eight. I will need to map each of these to a specific internal MAC address. I’m pretty sure I can do this with my current router, a Belkin F5D7230-4 802.11g WLAN router. (House is fully-wired with Cat-5, so most systems will connect via 10/100 Ethernet.)

I may also be reconnecting the (Cox) cable-Internet, as a backup against Qwest outages. If so, I will either need a second router (and a way to make the two routers work together), or a Gateway Server that can accept and manage simultaneous connections from both the DSL and Cable modems.

AVAILABLE HARWARE and SOFTWARE:
I have a wide assortment of hardware at my disposal, but almost no two pieces are alike. (Note, my personal workstation is already built and running Vista Ultimate 64, so is not included in the list below.)

  • I have several ATX boards and a range of AMD processors including one each of 2400 Athlon, 3200 Sempron, 3800 Athlon 64x2, and 4200 Athlon 64x2. I also have a few mid-tower and one full-tower case. I have one 650watt PS (SATA-ready) and a handful of others ranging from 250 to 450 watts. I have enough memory sticks lying around that I can easily max-out the RAM on all of these boxes. I also have a few older and smaller (40 GB and less) PATA and SCSI hard drives, a couple of PATA drives in the 200-250 GB range, and a matched-pair of 300GB SATA drives.
  • Macintosh PowerPC (RISC) 7500/200MHz all-in-one (circa 1992-4) with practically no expansion or upgrade capabilities. Internal hardware is limited to a single SCSI HD, a single SCSI CD-ROM, and maximum RAM at 64MB 72-pin DIMM. This box has built-in 14-inch CRT, 10/100 Ethernet, and external SCSI connector, but no USB options at all. It originally ran legacy Mac OS 7.5 and can run up to Mac OS 8.6 and some versions of Linux (Yellow Dog, Ubuntu?).
  • Mac PowerPC 8600/300MHz (c.1992-4) mid-tower: same OS options as the 7500/200MHz above. Internal and external SCSI native, but has 2nd HDD bay and three PCI slots, Apple AUX network port and built-in 10/100 RJ-45.
  • Blue & white PowerPC G3/350MHz: internal PATA with room for one Optical and up to four hard drives, external USB 1.0, FireWire 1394, and RJ-45. Originally shipped with OS 8.5, but can run up to OS 9.2.2 and various Linux flavors.
  • PowerPC G4/450MHz: internal PATA with room for one Optical and up to four hard drives, external USB 1.0, FireWire 1394, and RJ-45. Originally shipped with OS X v10.1 and “Classic” 9.2.2, but can run up to OS 10.4 and various Linux flavors.
  • Assortment of various SCSI, ATA, USB, and Ethernet PCI cards, and external HDD cases.
  • Additionally, I have one licensed copy each of Win 2000, and XP Pro 64, plus two licensed copies of XP Pro 32 (not counting the one that shipped with my HP notebook). I also have every version of Mac OS from the original v1.0 all the way up to OS X v 10.4.


I will have only the smallest of budgets for anything not listed above, so I need to make the most out of the hardware and software that’s available.

SERVER NEEDS:
  1. Easily back up and restore HD images across the network
  2. File and gateway services for all three OS platforms: Linux, Mac, and Windows
  3. Secure Directory to be shared only by my wife and myself
  4. Secure personal directory for each adult in the household
  5. Personal directory for each of the kids. They should not be able to see each other’s files, but Mom and I need access to both
  6. Directory for each of the three Linux-boot boxes. Not sure about this. If no files are stored locally, and each of the virtual engines map to a directory on the server, does the boot OS need its own directory?
  7. Administrator’s directory
  8. Roaming Profiles. Is this possible when no two systems have the same hardware configuration?
  9. Another possibility is bootable USB thumb drives for each family member. How would this differ from Roaming Profiles?
  10. I was thinking about putting the kids on a different subnet than the adults. Will this improve security at all?


CALL for FEEDBACK:
So I open the floor to suggestions, comments, ideas, etc. (Please keep in mind my level of proficiency. While I can learn anything with enough trial and error, I will have a full-scale family-mutiny on my hands if there are long periods with limited or no computer or Internet access!)

If you were in my place, what would you do?
  1. Which Server OS would you choose?
  2. How many servers would you build?
  3. Would you combine multiple server functions into a single box, or split them?
  4. Which Linux Desktop would you use to boot the two workstations that will be running the VM-ware for everything?
  5. Will these systems need more or less horsepower than the file server?
  6. Which hardware would you use for the server(s)? Which HW for the workstations?
  7. What questions do you have for me?
  8. Is there anything you think I overlooked, or need to consider?


FINAL NOTE on PROJECT TIME-LINE:
The current USA job market may end up allowing me all summer to work on this project, but I am hoping not. If I could put this all in place over the course of two to three weeks, that would be ideal.

By the way, the kids will be helping as much as possible. They can prep for their A+ certs by building their own machines and installing all of the software (under my direct supervision of course).

I figure that if they experience first hand just how much time and effort goes into building a system that lets them do everything they want, they just might be a little more careful to avoid crashing said system through careless surfing and downloading. (Well, one can hope, can’t one?)