I've always set up challenges (or goals) for my home network. Computers can be had from the dumpster practically, and Linux runs on everything - as does BSD. Get some computers, network them together, and start rolling your own challenges. Here are some examples of what I've done in my own network in the past:
- Set up an Appleshare server.
- Set up an NFS server.
- Set up NIS and use it to authenticate Linux, UNIX, and Windows NT clients.
- Set up a web server caching proxy.
- Set up an Internet gateway.
- Configure a firewall using ipfw or using iptables (depending on host).
Also, install as many different kinds of operating systems and platforms over time. Put Yellow Dog Linux on that aging PowerPC Macintosh, or put OpenBSD on that old 68k Macintosh Quadra, or put OpenSolaris/x86 on that Intel-based system, or put FreeBSD on that Intel-based workstation. For extra challenge, put these operating systems on laptops: they are more unforgiving.
If you take to using old hardware, you'll also have plenty of practice in debugging problems (heh).
Another thing you might consider: use a virtual machine with snapshots available. Install a system into it, then take a snapshot. Once a snapshot is saved, then "destroy" your (virtual!) environment: delete all of the libraries, or delete all files, or overwrite the boot sector and reboot. How will you recover your virtual computer without resorting to the snapshot? Test yourself.