A group of us CompSci students are trying to get our first server up and running. We're gonna try and install FreeBSD on this box. Would be great if you can suggest utilities/packages we should include on the server so that it's a great learning experience for us. What webserver system? Mail server system? Development environments? Any other tips or things to try?

We just want some solid system administration experience.



If you're comp sci, why not go to your school's IT department and find out what they're doing in a production environment and go from there? You can't get a full experience by just setting up a mail server or DNS server or development server on a single box (and you're going to be learning bad practices to set up three or four or five things on one system and think it's necessarily how things should be done in a "real world" environment). Interviewing people in the field would give you a good place to start with deciding what to do.

My advice is to set up VMWare ESXi on a white box...you can google for information, basically a system that's inexpensive but compatible with the OS...and set up many sub-servers to test things on a virtual network within the ESXi box, including setting up one VM as a virtual router/firewall. If that doesn't give you some fun puzzling out how things work with network servers, I don't know what will.

  • I would even suggest skipping ESXi and starting with everybody using VirtualBox or VMWare Player on their own PCs. The benefit here is that you have access to teh google on the host while setting up the VM. But I'm biased; desktop hypervisors are just plain fun. – Joe Internet Mar 10 '10 at 18:34
  • I'd just suggest ESXi because it is a dedicated hypervisor and is better suited for created multiple interacting servers in a virtual network. VMWare Player/Virtualbox tends to be better suited to creating a workstation on a workstation rather than an always-on server for testing...they tend to be for interactive sessions. If you are experimenting with web servers/databases/routers, ESXi, if you're running Linux and need to use Visual Studio or Outlook, Virtualbox. My advice, anyway. – Bart Silverstrim Mar 10 '10 at 22:50
  • This is excellent advice. You guys want to play with an entire network of servers, not just a single server, and these days you can fit an entire network into a single PC very easily. Your RAM and CPU requirements per server will be very low because everything will be lightly loaded, so you can get away with using low-spec hardware; something like a dual-core machine with 4GB of RAM would treat you fine. As an added bonus, when you are using a hypervisor, you don't need to worry about whether your guest operating systems are compatible with your hardware. (Just make sure the hypervisor is!) – Skyhawk Oct 18 '10 at 20:01

For a web server, you can set up Apache. Maybe Tomcat?

For networking, configure a DHCP server and DNS server. Also, set up a firewall. Also, get some sharing set up between clients and the server. Configure samba so that windows clients can also access the server.

You can also setup LDAP.

I would recommend taking it one at a time. Install one, configure it. Then, change the configuration and play around to see how different settings affect the service. Also, with something like a firewall, see how different settings affect the other services that rely on network access.

Make sure this server is on an isolated network. You wouldn't want services you are running on the server to interfere with a larger network (such as that of your school).

These are just some ideas. I would go for the networking stuff and the web server first. Don't bother with LDAP or anything like that right away. Also, don't bother with the development environments as servers shouldn't really be running those anyway. When you get to that point, try and develop a test application on a workstation and deploy it to the web server.


One approach would be to use virtual machines to set up comparative systems.

  • Sendmail on one vs. Postfix on another vs. Exim on another.

  • Apache vs. Lighttpd vs. nginx.

  • Svn vs. git vs. Mercurial.


I'd say I think what you're doing is a great idea. This is exactly how I started off with servers, I setup a FreeBSD server and screwed around with it. I also think FreeBSD is a good place to start since it is not as point and click as linux. I would recommend doing as much of it by compiling from source, this will give you invaluable experience. Here is some software I would recommend:

  • qmail - Great email server, will give you a good understanding of the inner workings of an email server
  • BIND - The standard DNS server. Personally I prefer djbdns but I think working with the BIND config files offers a lot to learn
  • Samba - As NYSystemsAnalyst pointed out, samba is great tool for connecting Windows computers to *nix machines.
  • Apache - Apache is a must, it is the standard *nix web server on the internet, also work on compiling it with PHP and Perl.

I think there is nothing wrong with doing this on one machine since it is just a test environment. I would also recommend recompiling the kernel, this is another great learning experience.

Lastly, I agree with NYSystemsAnalyst that you should keep this off any production networks, you wouldn't want anything interfering.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.