# What is a Home Lab? In a Cyber Security or I.T. sense, a [home lab](https://linuxhandbook.com/homelab/) is a personal server which allows someone to experiment with different Operating Systems (OS)'s, software, and more. In many cases, a home lab can be used to host your own data backups, reduce your reliance on online services like cloud storage/computing, and even increase your online privacy by filtering out advertisements or tracking when accessing the internet. # Design Process Before we get into the acronyms and technical jargon, lets go over a few goals for my home lab, and give room to experiment with new ideas. ## Home lab goals: Lets start with some loose goals in this project: - Increase my online privacy and [cybersecurity posture](https://www.crowdstrike.com/en-us/cybersecurity-101/exposure-management/security-posture/) - Provide services that allow my friends and family to access sites online without compromising their privacy/security - Backup to friend's NAS for redundancy - Reduce my reliance on online services such as cloud storage/backups - Run a home media server - Host photos similar to Apple Photos or Google Photos - `Windows Active Directory Lab` - I want to leave spare room to run experimental OS's or make Labs to test and learn more - Be able to access my network remotely over a VPN like [Tailscale](https://tailscale.com/) - Ideally funnel traffic traffic from my laptop and phone through a [Tailscale Exit Node](https://tailscale.com/kb/1103/exit-nodes) ### Lets break it down: #### Privacy vs. Security Increasing online privacy and security is a pretty broad goal, especially since they are separate goals that happen to overlap quite a bit. Breaking them apart and [defining](https://dataprivacymanager.net/security-vs-privacy/) them separately can be difficult, so its a good thing to do before we embark on such a project. Privacy generally refers to an individuals right to freedom from prying eyes. In data privacy, this would mean that an individual has a say to what their data is used for and who gets access to it. Security is much easier to define, it revolves around protecting information from unauthorized access. In a data sense, we are usually talking about the [CIA Triad](https://www.nccoe.nist.gov/publication/1800-26/VolA/index.html) : - **Confidentiality** - Securing data against unauthorized access. This means that only authorized individuals can see the data you are protecting. - **Integrity** - Ensuring that data cannot be altered by unauthorized users. This can also encompass file corruption. If a file becomes corrupted due to a bug, **file integrity** would mean that there is a way to check for file corruption and fix it. - **Availability** - Information should be readily available for authorized users. This can include using a [UPS](https://www.apc.com/us/en/product-range/61883-backups/) (Uninterruptible Power Supply), ensuring that we are using reliable hardware, and having a reliable internet connection. #### Reduce Reliance on online services This is one of the cornerstones of home lab projects. Many people including myself wish to reduce reliance on online services for many reasons including data privacy and security. Companies who host data get hacked all the time, and cloud storage or streaming is an continual cost. Storing my computer and phone backups on my own server give me complete control over my data, and isn't a recurring cost. Hosting my photos in a service that feels like Apple Photos or Google Photos, but runs out of my home server is another goal. As well as running a media server where I can "stream" my movies and TV shows I've purchased. Lastly, my friend and I will configure our NAS's to backup to each other for redundancy. This helps us adhere to the `3-2-1 Backup Strategy`. This strategy requires `3` copies of any important data, stored using `2` different storage mediums (think SSD vs HDD, each can fail in their own ways), and `1` copy stored in a separate physical location. #### Windows Active Directory Lab I learned the concepts of Pen-Testing AD environments, but to learn how to setup and manage them, I will have to build my own. My current model is one Domain Controller and multiple Clients connected to it. Eventually I will expand to running services in my AD Lab, and provisioning access controls, testing automatic provisioning of services to new Clients, and more. This is the real reason to have a home lab, to run experiments! As cybersecurity and I.T. professionals we love to tinker and test new things. We love to build and explore. For this reason, I am making sure that there is room to expand. This means having extra [RAM](https://www.crucial.com/articles/about-memory/support-what-does-computer-memory-do), extra drive storage, a powerful enough [CPU](https://www.ibm.com/think/topics/central-processing-unit) to run multiple processes simultaneously, and hardware compatibility on my server build. #### Tailscale There are two main goals to using Tailscale as a VPN in my home network. The first goal is to remotely manage my network and perform system updates or maintenance. The second goal is to funnel traffic through an [exit node](https://tailscale.com/kb/1103/exit-nodes). An exit node would allow me to still be `on my network` even when I am elsewhere. This give me the same access to my service as if I'm home, including: - [[Home Lab-Technical Details#NAS|NAS]] - [[Home Lab-Technical Details#Local AI|Local AI]] - [[Home Lab-Technical Details#Recursive DNS Server|Recursive DNS Server]] for privacy when browsing - [[Home Lab-Technical Details#Router/Firewall|Technical Details]] for security while browsing