Skip to main content

Linux Server Security Tutorial

Introduction

Can Linux servers be hacked? Absolutely! Anything can be hacked, especially if you haven’t taken steps to protect and harden your Linux server. In this video, we’ll cover five essential steps to secure your Linux server against hackers and attacks.

Getting Started

If you don’t have a Linux server to secure, you can get one for free with Linode. They offer a $100 credit to create a Linux virtual machine lab. Follow along to set up your server and secure it.

Steps to Secure Your Linux Server

Step 1: Enable Automatic Updates

One of the most critical steps in securing your server is ensuring it stays up-to-date with the latest security patches. Most servers get hacked because they weren’t patched in time.

To update your server manually, use the following commands:

sudo apt update
sudo apt upgrade -y

To automate updates, install unattended-upgrades:

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

Enable automatic downloads and installation of stable updates when prompted.

Step 2: Create a New User and Disable Root Login

Logging in as the root user is dangerous. Instead, create a new user and grant it sudo privileges.

Create a new user:

sudo adduser newuser

Add the new user to the sudo group:

sudo usermod -aG sudo newuser

Disable root login:

sudo passwd -l root

Step 3: Set Up SSH Key-Based Authentication

Passwords can be hacked. Using SSH keys is a more secure method for logging into your server.

1. Generate SSH Keys on your local machine:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

2. Copy the Public Key to your server:

ssh-copy-id newuser@your_server_ip

3. Disable Password Authentication:

Edit /etc/ssh/sshd_config and set PasswordAuthentication to no.

4. Restart SSH:

sudo systemctl restart ssh

Step 4: Harden SSH Configuration

Edit the SSH configuration file to further secure your server.

sudo nano /etc/ssh/sshd_config
  • Change the SSH Port: Change Port 22 to a higher, non-standard port.
  • Restrict Root Login: Set PermitRootLogin to no.
  • Disable Password Authentication: Set PasswordAuthentication to no.

Save and close the file, then restart SSH:

sudo systemctl restart ssh

Step 5: Install and Configure a Firewall

A firewall adds an extra layer of protection by controlling incoming and outgoing traffic.

  1. Install UFW (Uncomplicated Firewall):

    sudo apt install ufw -y
  2. Allow SSH on the new port:

    sudo ufw allow 717/tcp
  3. Enable UFW:

    sudo ufw enable
  4. Check UFW Status:

    sudo ufw status

Step 6: Disable Unnecessary Services

Reduce your attack surface by disabling services you don’t need.

  1. List Active Services:

    sudo systemctl list-units --type=service --state=active
  2. Disable Unnecessary Services:

    sudo systemctl disable --now service_name

Conclusion

By following these steps, you’ll significantly improve the security of your Linux server. Regular updates, user management, key-based authentication, and a properly configured firewall are essential components of a secure system. Remember, while nothing is completely unhackable, these best practices will help keep you safe.

Subscribe and Stay Updated

Make sure to subscribe to our channel for more tutorials and IT tips. Like, comment, and hit the notification bell to stay updated. Thank you for watching, and happy securing!