JP Vossen on 23 Oct 2011 11:28:47 -0700

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [PLUG] ideas for class material

Date: Sat, 22 Oct 2011 19:24:09 -0400
From: Andrew Craig<>
Subject: [PLUG] ideas for class material

I am currently in a Computer Technology program and have an upcoming Linux
III class.  The professor is open to ideas for curriculum.
I want to do stuff, not write about it, excluding any documentation of
course.  I was thinking of the following ideas

- fix broken stuff
- break working stuff
- ssh stuff
- scripts
- hacking
- build an arch or BSD system
- build up workstations and / or server

- Try different Rescue and other LiveCDs
- Try recovering deleted data from a "bad" hard drive
	Create a loop mount volume
	Damage it
	Give everyone copies
	See what they can recover

All of the above are good, though I can't say I'd suggest building BSD for a Linux class--they are quite different things. :-)

And I'm shocked that Rich already replied to this and didn't say what I thought he'd say, which is--build a Gentoo box! Or "Linux from scratch" or maybe even Slackware... You will learn more about the guts of Linux using any of those than you will using Debian, Ubuntu, Fedora, CentOS, etc.

"Build a box" is boring though. Build it for what? How about building a general "services" server for a small business or branch office? This is a single sever (also a single point of failure) that does just about everything:
	Linux software RAID1 or RAID5
	Internal DNS
	Internal email
		SMTP (authenticated?)
		IMAP (authenticated?)
		(external email relay config for extra credit)
	Samba (SMB/CIFS, WINS) for Windows clients
		& groups and permissions
	NFS for Linux clients
		& groups and permissions
	SSH (which facilitates tons of stuff, like remote admin
		sshfs, rsync, and much more)
	Local client backup (BackupPC, Duplicity, Backula, Amanda, etc.)
		Test a restore
	Off-site server backup (Box Backup,, some cloud)
		Test a restore
	LAMP for Intranet
		Some CMS/wiki (Drupal or Mediawiki)
		MySQL database
		Write server docs in the CMS/wiki
	Print server (CUPS)
	syslog (rsyslog, syslog-ng) log aggregator
	LogCheck, swatch or other log monitoring
	Monit, Cacti, OpenNMS or similar network monitoring
	Set up cron jobs for something
		e.g. use wget to mirror a web site (get permission!)
	Caching proxy server for Internet surfing
		Write a script to run from cron to summarize logs
	Revision control server
		Web GUI for either/both
		etckeeper or similar
	Write an acceptance test plan for all of the above

This is a pretty big project if you've never done it before. It could be broken up, or limited as needed. It also doesn't require too much in the way of security (firewall, separating internal and external services) or scripting, both of which are critical. So maybe:
	Firewall config for services server (arguably overkill)
	VPN to HQ office?
	Find some simple tasks to automate with scripts

Pick a virtualization solution everyone can live with and build the server to spec in that so you can "hand in" the machines for testing. Yes, I know that doing software RAID in a VM is silly. Do it anyway for the experience.

The no-cost VMware Player runs on Windows or Linux and would work. OTOH, since this server is a single point of failure, building it to run in a KVM or similar VM that runs on a minimal "headless" Linux host makes DR (disaster recovery) or hardware swaps almost trivial. Or maybe build in free Amazon EC2 micro instances ( That might already automate too much of the above though.

Having said all of that, shell scripting is easily a whole course by itself but is often overlooked, especially by those with a Windows/GUI point-and-click perspective. (That may be changing with Win8 that can be CLI/headless. Only took 'em just under 20 years to see the light.) _Learning the bash Shell_ would be a good textbook, and I have a ton of other resources listed in I also have a few presos in

This is all very system administration focused, and is arguably not "Linux" at all, since Linux is really just a kernel. But to really focus on Linux then means mostly kernel guts, configs, compiling, etc. While that's interesting, it's not similar to the list at the top, and you probably should walk (& build some servers) before you try brain surgery (custom kernels). IMO.

Hope this is useful,
JP Vossen, CISSP            |:::======|
My Account, My Opinions     |=========|
"Microsoft Tax" = the additional hardware & yearly fees for the add-on
software required to protect Windows from its own poorly designed and
implemented self, while the overhead incidentally flattens Moore's Law.
Philadelphia Linux Users Group         --
Announcements -
General Discussion  --