Mini Infrastructure Project
beginnerinfravmwebserversecurity
Deploy and configure a production-ready web server environment manually
← Back to BeginnerLearning Objectives
- Understand server provisioning and configuration
- Learn web server installation and configuration best practices
- Develop skills in network security and firewall management
- Implement basic system hardening techniques
- Document infrastructure deployment for repeatability
Requirements
You are required to set up a complete web server environment manually, documenting every step:
- Server Provisioning
- Provision a virtual machine (local VM with VirtualBox/VMware, or cloud free tier: AWS EC2, Azure VM, GCP CE)
- Install Ubuntu Server 22.04 LTS
- Configure network settings (static IP if local, public/private IP if cloud)
- Update all system packages
- Web Server Installation
- Choose and install a web server:
- Option A: Apache - configure
apache2.confand create a virtual host - Option B: Nginx - configure
nginx.confand create a server block
- Option A: Apache - configure
- Verify the web server is running (
systemctl status)
- Choose and install a web server:
- Network Security Configuration
- Configure a firewall using UFW or iptables:
- Allow HTTP (80), HTTPS (443), SSH (22)
- Deny all other incoming traffic
- Verify firewall status
- Test connectivity from an external system
- Configure a firewall using UFW or iptables:
- Content Deployment
- Create a simple
index.htmlwith a "Hello, World!" heading, a description of your setup, and basic CSS - Deploy to the web server's document root
- Verify the page is accessible via browser
- Create a simple
- Documentation
- Create a setup guide documenting all steps and commands
- Document any issues encountered and their solutions
- Include screenshots of the working web server
Stretch Goals
- Configure HTTPS with Let's Encrypt or a self-signed certificate
- Implement SSH hardening: disable root login, key-based auth only,
fail2ban - Set up log rotation
- Configure automatic security updates
Deliverables
- Working web server accessible via HTTP
- Complete documentation of the setup process
index.htmlwith required content- Screenshots of the deployed website
References
- How To Install Nginx on Ubuntu - DigitalOcean
- UFW Firewall Guide - DigitalOcean
- Ubuntu Server Documentation
- Let's Encrypt Getting Started
- VirtualBox Documentation
- AWS EC2 Getting Started
Once you complete this task you will have manually provisioned and secured a real server - the hands-on foundation that makes everything from containers to Kubernetes actually make sense.
Submit Your Solution
Completed this project? Share your solution with the community!
- Push your code to a GitHub repository
- Open an issue on our GitHub repo with your solution link
- Share on X with the hashtag #DevOpsDiary
