Top 5 Tips to Harden Your Linux VPS Against Attacks in 2025

In 2025, cyberattacks are more sophisticated than ever. Whether you’re hosting a personal project or critical business application, securing your Linux VPS is no longer optional—it’s essential. Thankfully, with just a few steps, you can drastically reduce your risk and keep your VPS locked down against the most common threats.

At Hosteons, we provide high-performance KVM VPS with root access, but security is a shared responsibility. Here’s how you can harden your VPS in minutes:


1. Use SSH Keys Instead of Passwords

Disable password login and use SSH key authentication for more secure, automated, and brute-force-resistant logins.

Steps:

  • Generate a key pair using ssh-keygen
  • Upload your public key to your VPS: ~/.ssh/authorized_keys
  • Disable password auth in /etc/ssh/sshd_config

👉 Read: Why You Should Use SSH Keys Instead of Passwords


2. Set Up a Firewall (UFW/iptables)

Block unnecessary ports to reduce your attack surface. Only open what’s required (e.g., 22 for SSH, 80/443 for web).

Example with UFW:

sudo ufw default deny incoming
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable

3. Install and Configure Fail2Ban

Prevent brute-force attacks by banning IPs with too many failed login attempts.

Install Fail2Ban:

sudo apt install fail2ban

Create a jail for SSH and monitor logs like /var/log/auth.log or /var/log/secure.

👉 Full Fail2Ban Guide


4. Keep the System and Software Updated

Always run the latest security patches. Use tools like unattended-upgrades for automated updates.

Commands:

sudo apt update && sudo apt upgrade
sudo yum update

Outdated software is one of the most exploited vulnerabilities.


5. Monitor Login Attempts and File Changes

Install tools to track unauthorized access and suspicious activity.

  • Use auditd to track system events
  • Use logwatch or logcheck to scan logs for anomalies
  • Monitor /var/log/auth.log for failed logins

👉 Read: How to Monitor Login Attempts and File Changes on Your VPS


Bonus: Disable Root Login

Prevent direct root access by using a non-root sudo user instead.

In /etc/ssh/sshd_config:

PermitRootLogin no

Final Thoughts

Hardened servers are happy servers! With these 5 simple steps, you’ll block the majority of attacks targeting Linux VPS.

At Hosteons, we give you the control, performance, and reliability — now it’s your turn to secure it.

🔐 Ready to deploy a secure VPS?

👉 Explore Our KVM VPS

👉 Premium Ryzen VPS

How to Set Up a Private Proxy Server on Your KVM VPS

Setting up a private proxy server on your KVM VPS is a great way to enhance privacy, control internet access, or bypass geo-restrictions. In this tutorial, we’ll guide you through the process of installing and configuring a private HTTP/HTTPS proxy server using Squid — a powerful, flexible, and widely-used caching proxy.


✅ 

Prerequisites

  • KVM VPS from Hosteons
  • Root access to your VPS
  • Ubuntu 20.04/22.04 or CentOS/AlmaLinux 8/9 installed

🔧 

Step-by-Step Setup Using Squid Proxy

Step 1: Update System Packages

# For Ubuntu/Debian
sudo apt update && sudo apt upgrade -y

# For CentOS/AlmaLinux
sudo dnf update -y

Step 2: Install Squid

# Ubuntu/Debian
sudo apt install squid -y

# CentOS/AlmaLinux
sudo dnf install squid -y

Step 3: Backup Default Config

sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.backup

Step 4: Configure Squid

Edit the config:

sudo nano /etc/squid/squid.conf

Look for and modify these lines:

http_port 3128

Add this at the top or near ACL section to allow only your IP:

acl allowed_ips src YOUR_IP_HERE
http_access allow allowed_ips
http_access deny all

Replace YOUR_IP_HERE with your real IP. You can get it from https://ipinfo.io


Step 5: Restart Squid

# Ubuntu/Debian
sudo systemctl restart squid

# CentOS/AlmaLinux
sudo systemctl restart squid

Step 6: Enable on Boot

sudo systemctl enable squid

🔍 

Step 7: Test Your Proxy

Configure your browser or tool to use your VPS IP and port 3128 as the HTTP/HTTPS proxy. You can use websites like https://whatismyipaddress.com to verify your outgoing IP.


🔐 

(Optional) Add Authentication to Your Proxy

To prevent misuse, you can add basic authentication.

  1. Install Apache utils:
sudo apt install apache2-utils -y  # Ubuntu/Debian
sudo dnf install httpd-tools -y   # CentOS/AlmaLinux
  1. Create password file and user:
sudo htpasswd -c /etc/squid/passwd proxyuser
  1. Edit squid.conf and add:
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic realm Proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
  1. Restart Squid again.

✅ 

Done!

You now have a fully working private proxy server running on your Hosteons KVM VPS! This setup is lightweight, secure (with IP whitelisting or optional authentication), and suitable for personal or development use.


🔗 Need a KVM VPS to try this?

Explore our plans at:

👉 Budget KVM VPS (US & EU)

👉 Ryzen KVM VPS (10 Gbps)

💳 Multiple payment options including Crypto, Alipay, PayPal, UPI, and more.

🌍 VPS available in the US and EU locations.

📡 10Gbps Port Speed included!

🔐 Automatically Install Fail2Ban with Smart Jail Detection on Your VPS (Script by Hosteons)

Here’s a complete WordPress blog post draft to promote your Fail2Ban Auto-Installer script from GitHub:


🔐 Automatically Install Fail2Ban with Smart Jail Detection on Your VPS (Script by Hosteons)

At Hosteons, we’re committed to making server security easier for everyone. Whether you’re running a small VPS or managing a fleet of Linux servers, protecting against brute-force attacks is critical.

That’s why we’ve created a Fail2Ban Auto-Installer Script that not only installs Fail2Ban but also auto-detects and enables jails for common services like SSHApache, and Nginx — all in one click.

👉 GitHub Repository:

https://github.com/hosteons/Fail2Ban-Auto-Installer-With-Jail


✅ Key Features

  • Installs Fail2Ban on UbuntuDebianAlmaLinux, and CentOS
  • Detects installed services (e.g., sshd, nginx, apache) and enables jails accordingly
  • Skips jails for services not found on the system
  • Handles log file paths intelligently based on distro
  • Verifies and restarts Fail2Ban only if configuration is valid
  • Smart checks if Fail2Ban is already installed
  • Minimal and safe — logs errors clearly

🧠 How It Works

When you run the script:

  1. It detects your Linux OS flavor.
  2. Installs Fail2Ban (if not already installed).
  3. Checks if apache, nginx, or sshd is active.
  4. Adds only the appropriate jails with correct log paths.
  5. Restarts Fail2Ban and confirms its status.
  6. Provides clear output so you know it’s working.

This ensures Fail2Ban doesn’t fail due to missing log files or services — a common issue in manual configurations.


📥 How to Use

  1. Download the script:
wget https://raw.githubusercontent.com/hosteons/Fail2Ban-Auto-Installer-With-Jail/main/fail2ban_auto_installer.sh
chmod +x fail2ban_auto_installer.sh
./fail2ban_auto_installer.sh
  1. That’s it. The script handles the rest!

🚀 Need a Secure VPS?

This script runs perfectly on our KVM VPS and Ryzen VPS plans. Visit hosteons.com to explore secure hosting powered by NVMe SSD and DDoS protection — with native support for IPv6, WireGuard VPN, and more.


🔗 Related Resources

How to Change Your SSH Port Safely on Any Linux Server (Ubuntu, Debian, CentOS, AlmaLinux)

Changing your SSH port is a simple yet powerful way to reduce brute-force login attempts and improve server security. To make this process easier, Hosteons offers a free Bash script that automatically handles the switch across all major Linux distributions — including firewalls and SELinux!


✅ Supported Operating Systems

  • Ubuntu 20.04 / 22.04
  • Debian 11 and above
  • CentOS 7 / 8
  • AlmaLinux 8 / 9

⚠️ Important Disclaimer

Changing your SSH port can lock you out if anything goes wrong.

Make sure you have console access such as VNC, IPMI, or KVM before using this script.


🔧 What the Script Does

  • Prompts until a valid SSH port is provided
  • Edits /etc/ssh/sshd_config to set the new port
  • Adds firewall rules for:
    • UFW (Ubuntu/Debian)
    • firewalld or iptables (CentOS/AlmaLinux)
  • Handles SELinux with semanage if needed
  • Restarts SSH service safely without reboot

🧰 How to Use the Script

  1. SSH into your VPS or server as root
  2. Run the following commands:
wget https://raw.githubusercontent.com/hosteons/SSH-Port-Changer-Script/main/ssh_port_changer.sh
chmod +x ssh_port_changer.sh
./ssh_port_changer.sh
  1. Enter your desired new SSH port when prompted

📦 Download from GitHub

Access the script and full documentation here:

👉 https://github.com/hosteons/SSH-Port-Changer-Script

🛡️ Set Up a VPN on Your VPS in Minutes with Our One-Click Script (OpenVPN + WireGuard)

Looking to set up your own secure VPN server without spending hours reading tutorials or configuring files manually?

Hosteons now offers a free, open-source VPN One-Click Installer that helps you launch either OpenVPN or WireGuard on your VPS within minutes. Whether you’re using UbuntuDebianCentOS, or AlmaLinux, this script has you covered.


✅ Why Use This Script?

  • Supports both OpenVPN and WireGuard
  • Works on most major Linux distros
  • Secure and production-ready defaults
  • Fully automated — minimal input required
  • Outputs ready-to-use config files for clients
  • Ideal for privacy, remote access, and secure browsing

🧰 Supported Operating Systems

  • Ubuntu 20.04 / 22.04
  • Debian 11 and above
  • AlmaLinux 8 / 9
  • CentOS 7 / 8

🚀 How to Use

SSH into your VPS and run:

wget https://raw.githubusercontent.com/hosteons/vpn-oneclick-installer/main/vpn_installer.sh
chmod +x vpn_installer.sh
sudo ./vpn_installer.sh

You’ll be prompted to choose:

1) WireGuard
2) OpenVPN

Based on your choice, the script installs and configures the selected VPN protocol, generates certificates or keys, configures firewall rules, and finally saves your client configuration file in:

  • /root/client.ovpn for OpenVPN
  • /root/client.conf for WireGuard

You can then download these and import into your VPN app.


🔒 What’s Under the Hood?

For OpenVPN, the script uses Easy-RSA to:

  • Generate CA, server, and client certs
  • Create Diffie-Hellman parameters
  • Build a secure server.conf
  • Auto-start the VPN service when supported

For WireGuard, it:

  • Generates private/public key pairs
  • Sets up a basic peer-to-peer configuration
  • Enables wg-quick@wg0

📂 GitHub Repository

Explore, star, or fork the repo:

👉 https://github.com/hosteons/vpn-oneclick-installer

🚀 One-Click LAMP/LEMP Stack Installer for Your VPS (Ubuntu/Debian) – Free & Open Source

Looking to quickly launch a LAMP or LEMP stack on your VPS without spending 30+ minutes manually installing packages?

We’ve built a simple, open-source Bash script that lets you auto-install LAMP (Apache + MariaDB + PHP) or LEMP (Nginx + MariaDB + PHP-FPM) on Ubuntu or Debian — all in just a couple of minutes.


🔧 What This Script Does

Once executed, the script:

  • Prompts you to choose between LAMP and LEMP
  • Detects PHP version and system OS
  • Installs:
    • Apache or Nginx
    • MariaDB (MySQL-compatible)
    • PHP with popular extensions
    • UFW (Uncomplicated Firewall)
  • Sets up:
    • System services (auto-start on reboot)
    • info.php test file to validate PHP install
    • Basic firewall rules (SSH, HTTP, HTTPS)

✅ Supported Systems

This script works out-of-the-box on:

  • Ubuntu 20.04, 22.04
  • Debian 11 and above

Whether you’re a developer, sysadmin, student, or just want a fast web stack for testing — this script is for you.


📥 How to Use

SSH into your VPS and run:

wget https://raw.githubusercontent.com/hosteons/lamp-lemp-oneclick-installer/main/lamp_lemp_installer.sh
chmod +x lamp_lemp_installer.sh
sudo ./lamp_lemp_installer.sh

Then visit http://YOUR_SERVER_IP/info.php to verify that PHP is working.


💻 View Script on GitHub

📂 GitHub Repo:

👉 https://github.com/hosteons/lamp-lemp-oneclick-installer

The script is licensed under the MIT License, meaning you can use, share, or modify it freely. Attribution is appreciated.


🌐 Why We Built This

At Hosteons.com, we serve thousands of VPS customers who often need quick server setups. This script was originally developed for internal use but is now open to the community.

Whether you’re using a Hosteons KVM VPS or any Linux-based VPS, this script works universally.


🙌 Like It? Star It!

If you found the script useful, please consider ⭐ starring the repo or sharing it on social media. Your support helps us build and release more free tools.


🔗 Related Links


📢 Share With Others!

Help others save time and effort by sharing this post with your developer friends, startup teams, or clients.

#HappyHosting

– Team Hosteons

🔐 Secure Your VPS Like a Pro: 6 Simple Firewall Rules That Block 90% of Attacks

Running a VPS gives you full control — but it also comes with responsibility. Whether you’re hosting with a budget VPS or a high-performance Ryzen VDS from Hosteons, security should always be a top priority.

Automated bots and malicious actors are constantly scanning servers looking for open doors. The good news? With just a few simple firewall rules, you can block 90% or more of common attacks — no advanced security knowledge needed.


🚧 Step 1: Deny All by Default

Your firewall should start from a “zero trust” position. Block all incoming traffic unless explicitly allowed.

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

This is the safest starting point for VPS security.


✅ Step 2: Open Only the Ports You Need

For most users, these are the essential services:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT   # SSH
iptables -A INPUT -p tcp --dport 80 -j ACCEPT   # HTTP
iptables -A INPUT -p tcp --dport 443 -j ACCEPT  # HTTPS

If you’re using a custom SSH port, be sure to update that here.


🛡️ Step 3: Rate-Limit SSH to Stop Brute-Force Attacks

SSH is the most frequently targeted service. Add a rate-limiting rule to block repeated login attempts:

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 -j DROP

This prevents bots from guessing passwords through brute force.


🧼 Step 4: Drop Invalid or Malicious Packets

Invalid packets are often used in scanning or attack attempts. Drop them:

iptables -A INPUT -m state --state INVALID -j DROP

This helps prevent certain types of kernel-level exploits and misbehavior.


🔁 Step 5: Allow Loopback and Established Connections

Let your server communicate with itself and continue existing sessions:

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Without these, things like internal services and return traffic might break.


👀 Step 6: (Optional) Block Ping (ICMP)

Ping isn’t harmful by itself, but attackers use it to detect live servers. You can hide yours:

iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

Note: avoid this if you use ping-based monitoring tools.


💡 Bonus: Use CSF for Easier Firewall Management

Not comfortable with command-line tools? Hosteons VPS plans fully support CSF (ConfigServer Security & Firewall)— a beginner-friendly, feature-rich firewall system with:

  • Easy interface via DirectAdmin
  • Built-in brute-force detection
  • Country-level blocking
  • Port scan detection
  • Daily logs and alerts

Perfect for users who want simplicity without sacrificing power.


🔄 Don’t Forget to Save Your Rules

After setting your rules, make sure they persist after a reboot.

On Ubuntu/Debian:

iptables-save > /etc/iptables/rules.v4

On CentOS/RHEL:

Use iptables-save along with persistent packages, or configure firewalld.


🔐 VPS Security Starts with You

Whether you’re running a personal blog, game server, or production site on a VPS from Hosteons, implementing basic firewall rules should be your first line of defense.

These 6 rules are easy to set up and highly effective. For extra protection, consider:

  • Enabling fail2ban
  • Using SSH keys instead of passwords
  • Running regular security updates

At Hosteons, we offer high-performance, SSD-powered KVM VPS and Ryzen VDS backed by robust network security and full root access — so you’re always in control.

🔒 Ready to launch your secure VPS?

👉 Explore our VPS plans now

🛠️ How to Install WordPress on a HostEONS VPS

🚀 Full Root Access | 🔐 Secure Setup | 🌍 Open-Source Power

If you’re ready to take full control of your WordPress website, installing it on a HostEONS VPS is the best way to go. Unlike shared hosting, a VPS gives you dedicated resourcesfull root access, and the ability to customize your server exactly the way you want.

This guide will walk you through how to install WordPress on a HostEONS VPS step-by-step.


✅ Prerequisites

Before you begin, make sure you have:

  • HostEONS VPS with a clean install of Ubuntu 20.04 or 22.04
  • Root SSH access
  • A registered domain (you can buy one from HostEONS Domains)
  • Pointed the domain’s A record to your VPS IP

🔧 Step 1: Update the Server

Log into your VPS using SSH:

ssh root@your-server-ip

Update your package list:

apt update && apt upgrade -y

☁️ Step 2: Install Required Software (LEMP Stack)

1. 

Install NGINX

apt install nginx -y

Start and enable NGINX:

systemctl start nginx
systemctl enable nginx

2. 

Install MySQL

apt install mysql-server -y

Secure your database setup:

mysql_secure_installation

Then log in and create a database for WordPress:

mysql -u root -p

CREATE DATABASE wordpress;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'strongpassword';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

3. 

Install PHP

apt install php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip -y

🌐 Step 3: Configure NGINX for WordPress

Create a new NGINX config:

nano /etc/nginx/sites-available/yourdomain.com

Paste the following:

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;

    root /var/www/html;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

Activate the config:

ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx

📥 Step 4: Download and Install WordPress

Navigate to web root:

cd /var/www/html
rm index.nginx-debian.html

Download WordPress:

wget https://wordpress.org/latest.tar.gz
tar -xvzf latest.tar.gz
mv wordpress/* .
rm -rf wordpress latest.tar.gz

Set the correct permissions:

chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html

✍️ Step 5: Configure wp-config.php

Copy the sample config:

cp wp-config-sample.php wp-config.php

Edit it:

nano wp-config.php

Update the database section with the credentials you created earlier:

define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wpuser' );
define( 'DB_PASSWORD', 'strongpassword' );
define( 'DB_HOST', 'localhost' );

Save and exit.


🔑 Step 6: Finish Installation via Browser

Now go to:

http://yourdomain.com

Follow the on-screen instructions to complete the setup:

  • Choose your language
  • Set your site title, username, password, and email
  • Log in to your new WordPress dashboard

🎉 Done! You’re Now Running WordPress on a HostEONS VPS

You’ve successfully installed WordPress on your VPS! You now have full control over your hosting environment, with speed and security unmatched by shared hosting platforms.