This project is about securely configuring a Linux server and deploying a Flask web application.

It is the final project in the Udacity Full Stack Web Developer Nanodegree programme. To see my other projects, go to portfolio.stevenwooding.com.

The deliverable of this project was a Markdown readme file that fully documents the steps taken in order to successfully configure the server. This document can be found on my GitHub account here: https://github.com/SteveWooding/fullstack-nanodegree-linux-server-config.

That document covers the following topics:

  • adding a user
  • allowing a user to run commands as root (sudo)
  • updating system software
  • setting up SSH keys for user login
  • disable root login
  • setting time zone and automatic time setting via NTP
  • changing SSH port to non standard port
  • configuring the Uncomplicated Firewall (UFW)
  • install and configure Apache to server Python WSGI web applications
  • install and configure PostgreSQL database
  • automatic security updates
  • banning IPs if they are the source of repeated failed login attempts

Photo by Thomas Kvistholt / Unsplash