Linux Server

Project 1: Hosting Portfolio on Ubuntu Server

Project Description: In my home lab, I set up an Ubuntu server to explore system administration and network management. As part of this project, I decided to host my portfolio using WordPress on this server. This involved the full cycle of installing, configuring, and optimizing the web server, managing SSL certificates, utilizing Cloudflare for enhanced security, and setting up WordPress.

Key Elements of the Project:

  1. Installation and Configuration of Ubuntu Server:

    • Installed the latest version of Ubuntu Server.

    • Configured the network (set up a static IP address).

    • Secured the server by configuring the firewall (UFW).

  2. Web Server Setup:

    • Installed and configured Apache as the web server.

    • Set up virtual hosts to manage multiple websites on the same server.

    • Configured SSL/TLS using Cloudflare for secure connections.

  3. WordPress Deployment:

    • Installed and configured MySQL as the database server.

    • Set up a new MySQL database and user for WordPress.

    • Installed PHP and necessary extensions for running WordPress.

    • Downloaded and installed WordPress.

    • Configured WordPress settings, themes, and plugins.

  4. Cloudflare Integration:

    • Configured Cloudflare to create a secure tunnel to my private network.

    • Used Cloudflare’s DNS and security features to protect against DDoS attacks and other threats.

    • Managed SSL/TLS certificates through Cloudflare for simplified management and increased security.

    • Implemented Cloudflare Access for secure and authenticated access to my web server.

  5. Security Measures:

    • Configured SSH with key-based authentication and disabled password login.

    • Implemented fail2ban to protect against brute-force attacks.

    • Regularly updated the server and software to patch security vulnerabilities.

Tools and Technologies Used:

  • Operating System: Ubuntu Server

  • Web Server: Apache

  • SSL/TLS: Cloudflare

  • Database: MySQL

  • Content Management System: WordPress

  • Security: UFW, SSH, fail2ban, Cloudflare

Challenges and Solutions:

  • Challenge: Ensuring the server was secure from unauthorized access.

    • Solution: Implemented multiple layers of security, including firewall rules, SSH key-based authentication, and intrusion prevention with fail2ban.

  • Challenge: Managing SSL certificates for secure connections.

    • Solution: Used Cloudflare to manage SSL/TLS certificates, simplifying the process and enhancing security.

  • Challenge: Protecting the server from external threats and ensuring secure access.

    • Solution: Integrated Cloudflare to create a secure tunnel, protect against DDoS attacks, and manage access controls.

Outcome: This project successfully demonstrated my ability to set up and manage a web server environment, deploy web applications using WordPress, integrate advanced security measures, and ensure reliability. Hosting my portfolio on this server allowed me to showcase my skills in system administration, web hosting, and network security.