Architecture Lab
Overview
As part of my ongoing effort to deepen my hands-on infrastructure and security skills beyond formal training, I deployed and hardened a self-managed Ubuntu Server 24.04 environment on a cloud VPS. The goal was not just to get services running, but to apply real security-first principles from the ground up, treating a home lab with the same rigor as a production environment.
Infrastructure Stack
- Operating System: Ubuntu Server 24.04 LTS, deployed on a cloud VPS
- Reverse Proxy: Nginx, handling TLS termination and routing traffic to multiple internally hosted services
- Certificate Management: Automated SSL/TLS via Let's Encrypt, with auto-renewal to ensure certificates never expire unnoticed
- Containerization: Docker-based service management for isolating and organizing multiple applications on a single host
- Monitoring: A dashboard-based monitoring stack to track system health and resource usage in real time
- PC Specs: Watercooled Be Quiet Silent Base 802, Ryzen 7 5800x3D, RTX 4070Ti 16Gb OC, 32GB DDR4 4000MTs, 2 x Crucial T710 4TB, MSI A1000GL PSU
Security & Hardening
Security was the primary focus of this project, not an afterthought. Key measures implemented:
- Minimal Firewall Policy: Using UFW, all inbound and outbound traffic is denied by default, with only explicitly required ports opened. No unnecessary services are exposed to the public internet.
- Brute-Force Protection: Fail2Ban actively monitors authentication logs and automatically bans IP addresses attempting repeated unauthorized access, mitigating both bot traffic and targeted brute-force attempts.
- Network Segmentation: Internal services communicate over private, internal IP ranges rather than being directly exposed, with only the reverse proxy acting as a controlled entry point to the outside world.
- Reverse Proxy as a Security Layer: Nginx not only handles routing but also acts as the single, hardened point of contact for external traffic, reducing the overall attack surface significantly.
Lessons Learned
This project reinforced a core principle I now apply to every system I build: security should be architected in layers, not bolted on afterward. Combining a minimal firewall policy, automated intrusion prevention, and strict network segmentation creates a defense-in-depth approach that mirrors enterprise-grade security concepts, just at a smaller, personal scale.
Going forward, I plan to expand this environment with identity-focused access controls and explore integrating Zero Trust principles more deeply, bridging the gap between home lab experimentation and enterprise cloud security architecture.