2025-02-08 21:50:37 -06:00
|
|
|
# Project 1: Home Lab Setup
|
|
|
|
|
|
|
|
|
|
## Project Overview
|
|
|
|
|
This project documents the setup of a basic home lab environment using VirtualBox and Ubuntu Server 22.04 LTS.
|
|
|
|
|
|
|
|
|
|
## Environment Details
|
|
|
|
|
- **Host System**: Windows 11
|
|
|
|
|
- **Hypervisor**: Oracle VirtualBox
|
|
|
|
|
- **Guest OS**: Ubuntu Server 22.04 LTS
|
|
|
|
|
- **Resources Allocated**:
|
|
|
|
|
- CPU: 2 cores
|
|
|
|
|
- RAM: 2GB
|
|
|
|
|
- Storage: 20GB
|
|
|
|
|
- Network: NAT + Host-only adapter
|
|
|
|
|
|
|
|
|
|
## Setup Steps
|
|
|
|
|
|
|
|
|
|
### 1. VirtualBox Installation ✅
|
|
|
|
|
- Successfully installed VirtualBox
|
|
|
|
|
- Created project directory structure
|
|
|
|
|
|
|
|
|
|
### 2. Ubuntu Server VM Creation ✅
|
|
|
|
|
- [x] Download Ubuntu Server 22.04 LTS ISO
|
|
|
|
|
- [x] Create new VM in VirtualBox
|
|
|
|
|
- [x] Configure VM settings (CPU, RAM, Storage)
|
|
|
|
|
- [x] Configure network adapters
|
|
|
|
|
- [x] Install Ubuntu Server
|
|
|
|
|
- [x] Basic system configuration
|
|
|
|
|
- [x] Network setup
|
|
|
|
|
|
2025-02-08 23:27:46 -06:00
|
|
|
### 3. Network Configuration ✅
|
|
|
|
|
- [x] Configure NAT adapter for internet access
|
|
|
|
|
1. Verify IP address configuration ✅
|
|
|
|
|
2. Test internet connectivity ✅
|
2025-02-08 21:50:37 -06:00
|
|
|
```bash
|
2025-02-08 23:27:46 -06:00
|
|
|
ping 8.8.8.8 # Success
|
|
|
|
|
ping google.com # Success
|
2025-02-08 21:50:37 -06:00
|
|
|
```
|
|
|
|
|
|
2025-02-08 23:27:46 -06:00
|
|
|
- [x] Configure Host-only adapter for direct host communication
|
|
|
|
|
1. Verify second network interface ✅
|
2025-02-08 21:50:37 -06:00
|
|
|
```bash
|
2025-02-08 23:27:46 -06:00
|
|
|
ip addr show enp0s8
|
|
|
|
|
# Output shows:
|
|
|
|
|
# inet 169.254.0.2/16 brd 169.254.255.255 scope global enp0s8
|
2025-02-08 21:50:37 -06:00
|
|
|
```
|
2025-02-08 23:27:46 -06:00
|
|
|
2. Test host connectivity ✅
|
2025-02-08 21:50:37 -06:00
|
|
|
```bash
|
2025-02-08 23:27:46 -06:00
|
|
|
# Successfully pinged host (169.254.167.242)
|
|
|
|
|
# Round-trip time (RTT) avg: 2.846ms
|
2025-02-08 21:50:37 -06:00
|
|
|
```
|
|
|
|
|
|
2025-02-08 23:27:46 -06:00
|
|
|
- [x] Document network configuration:
|
|
|
|
|
- NAT adapter IP (enp0s3): 10.0.2.15/24
|
|
|
|
|
- Host-only adapter IP (enp0s8): 169.254.0.2/16
|
|
|
|
|
- Default gateway: 10.0.2.2
|
|
|
|
|
- Host IP: 169.254.167.242
|
2025-02-08 21:50:37 -06:00
|
|
|
|
2025-02-08 23:27:46 -06:00
|
|
|
### Current Status
|
|
|
|
|
- ✅ NAT adapter: Working (Internet access)
|
|
|
|
|
- ✅ Host-only adapter: Working (Host communication)
|
|
|
|
|
- ✅ Network connectivity: Verified
|
|
|
|
|
|
|
|
|
|
### Next Steps
|
|
|
|
|
Now that networking is configured, we can proceed to:
|
|
|
|
|
1. Basic Security Setup
|
|
|
|
|
- [ ] Create non-root user with sudo privileges
|
|
|
|
|
- [ ] Configure SSH access
|
|
|
|
|
- [ ] Set up UFW firewall
|
|
|
|
|
|
|
|
|
|
### 4. Basic Security Setup ✅
|
|
|
|
|
- [x] User Management ✅
|
|
|
|
|
- Created sysadmin user with sudo privileges
|
|
|
|
|
- Enhanced hugh user security
|
|
|
|
|
|
|
|
|
|
- [x] SSH Configuration ✅
|
|
|
|
|
- Installed and configured OpenSSH server
|
|
|
|
|
- Implemented key-based authentication
|
|
|
|
|
- Disabled password authentication
|
|
|
|
|
- Applied security hardening settings
|
|
|
|
|
|
|
|
|
|
- [x] UFW Firewall Setup ✅
|
|
|
|
|
- Installed and configured UFW
|
|
|
|
|
- Set default policies (deny incoming, allow outgoing)
|
|
|
|
|
- Allowed required services:
|
|
|
|
|
- SSH (port 22)
|
|
|
|
|
- HTTP (port 80)
|
|
|
|
|
- HTTPS (port 443)
|
|
|
|
|
- Host machine access (169.254.167.242)
|
|
|
|
|
- Verified connectivity
|
|
|
|
|
|
|
|
|
|
### 5. System Monitoring Setup (Next Phase)
|
|
|
|
|
- [ ] Monitoring Tools
|
|
|
|
|
- [ ] Install and configure htop
|
|
|
|
|
- [ ] Set up netdata for system metrics
|
|
|
|
|
- [ ] Configure log monitoring
|
|
|
|
|
|
|
|
|
|
- [ ] Maintenance Planning
|
|
|
|
|
- [ ] Create backup strategy
|
|
|
|
|
- [ ] Set up automated updates
|
|
|
|
|
- [ ] Implement log rotation
|
|
|
|
|
- [ ] Configure system alerts
|
|
|
|
|
|
|
|
|
|
### Current Status
|
|
|
|
|
- ✅ Basic VM Setup: Complete
|
|
|
|
|
- ✅ Network Configuration: Complete
|
|
|
|
|
- ✅ Security Measures: Complete
|
|
|
|
|
- ⏳ System Monitoring: Not Started
|
|
|
|
|
|
|
|
|
|
### Next Steps
|
|
|
|
|
1. System Monitoring Implementation
|
|
|
|
|
- Research and select monitoring tools
|
|
|
|
|
- Plan monitoring strategy
|
|
|
|
|
- Document monitoring requirements
|
|
|
|
|
|
|
|
|
|
2. Maintenance Procedures
|
|
|
|
|
- Design backup strategy
|
|
|
|
|
- Create maintenance schedule
|
|
|
|
|
- Document procedures
|
|
|
|
|
|
|
|
|
|
3. Future Enhancements
|
|
|
|
|
- Service deployment
|
|
|
|
|
- Automation implementation
|
|
|
|
|
- Advanced networking features
|
|
|
|
|
|
|
|
|
|
## Security Configuration Status
|
|
|
|
|
- [x] User Management
|
|
|
|
|
- [x] Admin user created
|
|
|
|
|
- [x] Sudo privileges configured
|
|
|
|
|
- [x] SSH Access
|
|
|
|
|
- [x] SSH server installed
|
|
|
|
|
- [x] Key-based authentication configured
|
|
|
|
|
- [x] Root login disabled
|
|
|
|
|
- [x] Firewall
|
|
|
|
|
- [x] UFW installed
|
|
|
|
|
- [x] Basic rules configured
|
|
|
|
|
- [x] SSH access allowed
|
2025-02-08 21:50:37 -06:00
|
|
|
|
|
|
|
|
## Commands and Configurations
|
|
|
|
|
|
|
|
|
|
### Network Configuration Commands
|
|
|
|
|
```
|
|
|
|
|
|
2025-02-08 23:27:46 -06:00
|
|
|
### SSH Configuration
|
|
|
|
|
```conf
|
|
|
|
|
# Key SSH configuration settings (/etc/ssh/sshd_config)
|
|
|
|
|
PermitRootLogin no
|
|
|
|
|
PasswordAuthentication no
|
|
|
|
|
AllowUsers admin
|
|
|
|
|
```
|
2025-02-08 21:50:37 -06:00
|
|
|
|
2025-02-08 23:27:46 -06:00
|
|
|
### UFW Rules
|
|
|
|
|
```bash
|
|
|
|
|
# View UFW status
|
|
|
|
|
sudo ufw status verbose
|
|
|
|
|
|
|
|
|
|
# Basic allowed services
|
|
|
|
|
sudo ufw status numbered
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Additional Documentation
|
|
|
|
|
- [Security Setup Details](security-setup.md)
|
|
|
|
|
- [Lessons Learned & Challenges](lessons-learned.md)
|