This documentation outlines the steps for deploying and securing a multi-service web server environment on a Linux system. The project's primary goal is to build a fully functional, secure Linux hosting server by applying core skills in system administration, web server configuration, database management, security hardening, and automation. This guide covers the setup of web servers (Apache2), a MySQL database, and the implementation of crucial security measures like firewall configuration, SSH hardening, and SSL/TLS encryption. Additionally, it details the automation of daily backups to ensure data integrity and disaster recovery, and wordpress installation and configuration.
Operating System: Ubuntu Server 22.04
Hardware: 2 GB RAM and 25 GB disk space
Networking: A configured static IP address
Domain: A domain name, which can be configured for local DNS resolution via the /etc/hosts
file
Privileges: Root or sudo access is required to execute the necessary commands.
**Architecture Diagram**
This phase focuses on the initial configuration of the server.
System Update: I ensured the system is up-to-date by running the appropriate commands for a distribution. This synchronizes package lists and upgrades all installed packages to their latest versions, which is a crucial first step for stability and security.
sudo apt update && sudo apt upgrade -y
2 Set Static IP: A static IP address ensures the server's network location remains constant, which is essential for consistent web and database services.
sudo nano /etc/netplan/01-netcfg.yaml
sudo hostnamectl set-hostname uju-linux-project.local