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.
The following is a list of the hardware that I purchased to build my home lab.
|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|
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.
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.
|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||Ubuntu 16.04.4 LTS (x5)||Free|
|GUEST OS||CentOS 7 (x5)||Free|
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.
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
Here are some photos of my home lab.