I tried EZblue linux and really liked it. It costs 125 bucks. i was looking for something similar to it that is free.
http://www.ezbluesoftware.com/ is EZBlue.
It is a linux server that has a lot of features like filesharing, printersharing, mail server, access control, and it was easy to set up. Right now I am trying to set up an Ubuntu server with Samba but it isnt working right and I was looking for another option.
Free Linux OSes like Ubuntu, OpenSuSe, fedora core, etc all have these features built in
Filesharing support - Samba for windows clients, NFS for Linux clients built in
Printersharing - its called CUPS, check out gimpprint.org for tons of open source drivers
Mail server - well there is a lot of them you can download and run, I messed around with
Evolution a bit, but it was buggy and didn't support IMAP at the time, or I couldn't get it work. That was like over a year and a half ago.
Access control - not sure what you exactly trying to accomplish but all Linux OSes support what is called ACLs, or access control lists. These are lists which give certain users/groups specified rights to resources on the a specified share. Each share, or even file can have its own ACL. However, be forewarned that they don't hold totally true on a windows system. If you set ACLs on a folder and a windows client shares to it over SMB (samba) those ACLs may not be honored. If you are looking for authentication you can set up a OD (open directory) master server, which uses kerberos for authentication. You can then build a LDAP user database and start adding in network user accounts. I already do this at work almost every day, but its on the Macintosh platform, which is Unix based, so very similar in many aspects to Linux.
What exactly are you trying to accomplish? Just learning how everything works? Because the real art in designing a network is not setting up the servers, switches, routers, etc. The real art is making everything work smooth, load balanced, and not to overload your bandwidth, your server, or your network hardware. For example, I am a very big fan of 1 server per function on networks. You dedicate one server to email, one to calendar, one to OD/AD/ED authentication, one for print server, etc. Or, you can cluster them and load balance several jobs. There are always at least 10 different ways to accomplish the same goal with computers, so my advice could be great or it could be totally wrong depending on what you want to accomplish.