Building a Small Form Factor Home Lab

For the past several years I've been using my MacBook Pro for all of my virtualization needs. It served me well for most tasks, however, I wanted to get more experience working with enterprise setups. I found that using my laptop allowed me to run no more than 2-3 Windows systems before I exhausted its resources.

Some of the areas I wanted to explore were learning about Active Directory, setting up and configuring a SIEM, and working in an environment with more than 5+ systems running concurrently.

I could have went the cloud route, but felt that having a physical system to troubleshoot and tinker would be more beneficial to my learning experience.

Hardware

The following is a list of the hardware that I purchased to build my home lab.

PART MODEL PRICE
CHASSIS ASRock DeskMini H110 ¥14,558
PROCESSOR Intel i5-7500 LGA1151 ¥17,780
RAM Crucial 32GB (16GB x2) DDR4 PC4-19200 ¥36,800
SSD Samsung 120GB V-NAND SSD 850 ¥5,980
CPU COOLER Noctua NH-L9i L-Type Low-Profile Cooler ¥5,280
TOTAL ¥80,398

I also had a spare 120GB M.2 SSD for IOPs intensive applications and a 2TB HDD for storing data that's rarely accessed, such as backups, snapshots, and operating system ISOs.

Software

I'm using Windows 10 Pro for my operating system with and Oracle VM VirtualBox to create my virtual networks and systems. I considered using VMWare vSphere, but decided to use something free and familiar.

I'll eventually remove Windows 10 Pro as the host operating system and use a baremetal hypervisor since Windows 10 Pro uses a significant amount of resources.

PART MODEL PRICE
HOST OS Windows 10 Pro $109
HYPERVISOR Oracle VM VirtualBox Free
GUEST OS Windows Server 2016 R2 Free (VM)
GUEST OS Windows 7 Home Free (VM)
GUEST OS Windows 10 Home Free (VM)
GUEST OS pfSense Free
GUEST OS Ubuntu 16.04.4 LTS (x5) Free
GUEST OS CentOS 7 (x5) Free
TOTAL $109

I use Windows Server 2016 R2 as Domain Controller, Active Directory, DHCP (I think), etc. I typically have a few Windows 7/10 systems connected to the domain I created on the Windows server. There's a lot to learn in Windows environments, so this is a good way to develop that knowledge.

I use Ubuntu 16.04.4 LTS and CentOS 7 to run different software such as Elasticsearch, Logstash, and Kibana as a SIEM for parsing logs and other telemetry from different workstation and server systems. Running a Elastic Stack setup typically requires 16GB+ of RAM and at least 2 CPUs, so this is one area that my laptop failed to deliver.

One of the Ubuntu 16.04.4 LTS virtual machines also serves as a hypervisor for Linux Container – you can use LXD to manage the networking, resource allocation, etc., of each LXC. I'll typically use a container as a web server, web proxy, or a database.

I use pfSense to provide WAN access for all the virtual machines. It also serves as a firewall, but I haven't touched the configuration yet. Most of my firewall needs are taking places on the guest operating system within the kernel itself – don't do this on a production network.

Networking

I use the Uniquiti EdgeRouter X for creating VLANS, SPAN (port mirroring), and for sending traffic between my laptop and home lab. This allows me to send traffic between my laptop and home lab.

I use the Netgear AC1900 (R7000) for all of my wireless routing and connecting to the WAN. Since the motherboard only comes with a single 1 Gbps NIC, I purchased an additional USB-C 1 Gbps NIC.

  • Router #1: Ubiquiti EdgeRouter X (link)
  • Router #2: Netgear AC1900 (R7000) (link)
  • Additional NIC: USB-C 1 Gbps NIC

Pictures

Here are some photos of my home lab.





Show Comments