For some time now I’ve wanted to build a homelab for various testing and development tasks. Primarily I wanted to be able to build a small pen test lab and run a few honeypots at home. Somewhere along the way the build was modified in my head to include a secondary task of upgrading my home network such that I could place my children into a controlled, monitored VLAN.
Over the course of June 2016 I found myself with rare extra time on my hands, so I took the opportunity to begin planning the project in earnest. While discussing it with a friend, they requested that I document the project for their benefit and it occurred to me that documenting the project may be beneficial to others as well. So, here we are.
Let’s start with the requirements I developed for the project:
- Any hardware used must be compact and quiet. The home in which our family currently resides has no obvious location to place a rack for lab equipment, nor would anyone who lives here want to hear the roar of fans in rackmount servers.
- I’d like to dent the power bill as little as possible. Self explanatory. I value efficiency and dollars already earned.
- It needs to be able replicate and improve existing services in our home network. This should be fairly simple. Currently I have an old Dell Optiplex 780 running pfSense for routing, DNS, DHCP and VPN duties. That router is connected to a 5th generation Apple Airport Extreme which serves both as a 1Gb switch and a Wireless Access Point. All other services on the network are fed from a MacBook Pro which hosts a Plex Server, Sonarr, Couch Potato and has 2TB of connected storage. Around 1TB of that storage is dedicated to media files for Plex. The other 1TB is used for our critical data. That data set is mirrored in a cloud storage service to give off-site synchronization. It is off-site synchronization and not backup, which is another problem that needs to be solved over the course of this project.
- Networking should be improved to provide VLANs, multiple SSIDs and 802.11ac WiFi coverage.
With those requirements in mind, it seems to me that virtualization is the obvious path forward. I like to keep things simple in general, and I think requirement 1 steers us toward using as little hardware as possible. When it comes to virtualization, all of my experience has been with VMware products. I use Fusion almost daily, and am pretty familiar with vSphere/ESXi.
If I’m going down the VMware path, I think I’d prefer to run it on supported hardware rather than to do a whitebox build. I know there’s no reason it can’t be done but, again, I prefer to keep things simple. That means the next step is to find a compact, quiet and efficient piece of hardware that’s listed in the VMware Compatibility Guide. I’ll talk about the solution I’ve settled on in my next post.