bolt Valebyte VPS from $4/mo — NVMe, 60s deploy.

Get a VPS arrow_forward
eco Beginner Tutorial/How-to

Dedicated Server Security: Your First 30 Minutes After Delivery

calendar_month Jun 12, 2026 schedule 10 min read visibility 14 views
Dedicated Server Security: Your First 30 Minutes After Delivery
info

Need a server for this guide? We offer dedicated servers and VPS in 50+ countries with instant setup.

Congratulations on receiving your new dedicated server from Valebyte! While the power and control of bare-metal hosting are immense, so is the responsibility of securing your infrastructure. The critical first 30 minutes after your server is provisioned are crucial for establishing a robust security posture, laying the foundation for a secure and reliable environment for your applications, databases, or game servers.

Need a server for this guide?

Deploy a VPS or dedicated server in minutes.

How to Secure Your Dedicated Server: The First 30 Minutes After Delivery

Your dedicated server from Valebyte offers unparalleled performance and isolation for your most demanding workloads, whether you're running high-traffic web applications, complex databases, powerful game servers, streaming services, or critical CI/CD pipelines. However, with great power comes great responsibility, especially regarding security. The initial moments after your server's delivery are paramount for implementing fundamental security measures that will protect your investment from potential threats.

Prerequisites and Server Requirements

Before you dive into securing your dedicated server, ensure you have the following:

  • SSH Client: A secure shell client (e.g., OpenSSH on Linux/macOS, PuTTY or Windows Terminal with OpenSSH on Windows) to connect to your server remotely.
  • Root Credentials: The initial root username and password, or SSH key provided by Valebyte for your server.
  • Basic Linux Command-Line Familiarity: Knowledge of fundamental Linux commands is essential.
  • Internet Connection: Your local machine needs an internet connection, and your dedicated server must have network connectivity to download updates and packages.
  • A Dedicated Server from Valebyte: Ready and awaiting your commands!

This tutorial assumes a fresh installation of a common Linux distribution like Debian, Ubuntu, or CentOS/RHEL. Commands will be provided for both where significant differences exist.

Step-by-Step Security Checklist (Within 30 Minutes)

Let's get started with immediate actions to fortify your server.

Step 1: Initial Access and System Verification (Approx. 3-5 minutes)

Your first step is to securely connect to your server and verify its basic configuration.

1.1 Connect via SSH

Open your SSH client and connect to your server using the IP address and root credentials provided by Valebyte.

ssh root@YOUR_SERVER_IP_ADDRESS

You may be prompted to accept the server's fingerprint. Type yes and press Enter. Then, enter your root password.

1.2 Verify System Details

Once logged in, it's good practice to quickly verify the operating system and hostname.

lsb_release -a # For Debian/Ubuntu
cat /etc/redhat-release # For CentOS/RHEL
hostnamectl # General system info
whoami # Confirm you are root
w # Check who else is logged in (should just be you)

This ensures you're on the correct server and there are no unexpected users.

Step 2: Create a New Sudo User (Approx. 5 minutes)

Operating as the root user continuously is a security risk. A best practice is to create a new, non-root user with administrative (sudo) privileges for your daily tasks.

2.1 Add a New User

Replace your_username with your desired username.

adduser your_username
passwd your_username # Set a strong password for this user

Follow the prompts to set a strong password and optionally fill in user information (you can usually skip these by pressing Enter).

2.2 Grant Sudo Privileges

Add your new user to the sudo group (or wheel group for CentOS/RHEL) so they can execute commands with root privileges when needed.

For Debian/Ubuntu:

usermod -aG sudo your_username

For CentOS/RHEL:

usermod -aG wheel your_username
2.3 Test the New User

Open a new SSH session (keep your root session open as a fallback) and try logging in with your new user. Then, test sudo access.

ssh your_username@YOUR_SERVER_IP_ADDRESS

Once logged in, try a sudo command:

sudo whoami

You should be prompted for your your_username password and then see root as the output, confirming sudo access.

Step 3: Secure SSH (Approx. 10 minutes)

SSH is your primary gateway to the server. Hardening it is critical.

3.1 Disable Root Login

Prevent direct root logins via SSH. This forces attackers to guess a username first.

sudo nano /etc/ssh/sshd_config # Or 'vi' if you prefer

Find the line PermitRootLogin and change its value to no. If it's commented out (starts with #), uncomment it.

PermitRootLogin no
3.2 Implement SSH Key-Based Authentication

Password authentication is vulnerable to brute-force attacks. SSH keys are far more secure.

On your local machine (not the server):

Generate an SSH key pair if you don't have one:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Follow the prompts. It's highly recommended to use a strong passphrase for your private key.

Copy your public key to the server:

The easiest way is using ssh-copy-id:

ssh-copy-id your_username@YOUR_SERVER_IP_ADDRESS

If ssh-copy-id isn't available or you prefer manual steps, you can do it like this:

cat ~/.ssh/id_rsa.pub # On your local machine, copy the output

# On the server, logged in as your_username:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
# Use nano/vi to open or create authorized_keys
nano ~/.ssh/authorized_keys
# Paste your public key into this file
chmod 600 ~/.ssh/authorized_keys

Test Key-Based Login:

Open a new SSH session from your local machine (keep the root session open!).

ssh your_username@YOUR_SERVER_IP_ADDRESS

You should now be logged in without a password (or only prompted for your key's passphrase).

3.3 Disable Password Authentication (After successful key login!)

Once you've confirmed key-based login works, disable password authentication entirely.

sudo nano /etc/ssh/sshd_config

Find the line PasswordAuthentication and set its value to no.

PasswordAuthentication no
3.4 Change Default SSH Port (Optional but Recommended)

Changing the default SSH port (22) to a non-standard port (e.g., 2222, 22022) reduces automated scanning attempts.

sudo nano /etc/ssh/sshd_config

Find the line Port 22, uncomment it if necessary, and change 22 to your desired port.

Port 2222 # Choose any port > 1024 that isn't in use
3.5 Apply SSH Changes

Restart the SSH service for changes to take effect.

For Debian/Ubuntu:

sudo systemctl restart ssh

For CentOS/RHEL:

sudo systemctl restart sshd
3.6 Test New SSH Configuration

Crucially, open a new SSH session from your local machine to test the new port and key-based login. Do NOT close your existing SSH sessions until you confirm you can log in successfully with the new configuration.

ssh -p 2222 your_username@YOUR_SERVER_IP_ADDRESS

If you can log in, your SSH hardening is successful. You can now close your old root session.

Step 4: Configure a Basic Firewall (Approx. 5 minutes)

A firewall is your server's first line of defense, controlling incoming and outgoing network traffic.

4.1 Install and Configure UFW (Ubuntu/Debian) or Firewalld (CentOS/RHEL)
For Ubuntu/Debian (using UFW - Uncomplicated Firewall):
sudo apt update
sudo apt install ufw -y

Allow necessary ports. Remember your new SSH port!

sudo ufw allow 2222/tcp # Your new SSH port
sudo ufw allow http # Port 80 for web servers
sudo ufw allow https # Port 443 for web servers
sudo ufw default deny incoming
sudo ufw default allow outgoing

Enable UFW (be careful!):

sudo ufw enable

You'll be warned about disrupting existing SSH connections. Type y and press Enter.

Check UFW status:

sudo ufw status verbose
For CentOS/RHEL (using Firewalld):
sudo yum update # Or 'dnf update'
sudo yum install firewalld -y # Or 'dnf install firewalld'
sudo systemctl start firewalld
sudo systemctl enable firewalld

Allow necessary services/ports:

sudo firewall-cmd --permanent --add-port=2222/tcp # Your new SSH port
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

Reload firewalld to apply changes:

sudo firewall-cmd --reload

Check Firewalld status:

sudo firewall-cmd --list-all

This basic firewall setup ensures only essential services are exposed to the internet. For specific use cases like game servers, mail servers, or databases, you'll need to open additional ports as required (e.g., MySQL on 3306, PostgreSQL on 5432, specific game server ports).

Service Common Port(s) Protocol
SSH 22 (default), e.g., 2222 (custom) TCP
HTTP (Web) 80 TCP
HTTPS (Secure Web) 443 TCP
SMTP (Mail Out) 25, 587 TCP
IMAP/IMAPS (Mail In) 143, 993 TCP
POP3/POP3S (Mail In) 110, 995 TCP
MySQL/MariaDB 3306 TCP
PostgreSQL 5432 TCP

Step 5: Update Your System (Approx. 2-3 minutes for initial command)

Keeping your operating system and all installed packages up-to-date is fundamental. Updates often include security patches for known vulnerabilities.

For Debian/Ubuntu:

sudo apt update && sudo apt upgrade -y

For CentOS/RHEL:

sudo yum update -y # Or 'dnf update -y'

While the full update process might take longer than 30 minutes, initiating it immediately ensures your server starts patching vulnerabilities without delay. You can let this run in the background or within your active session.

Step 6: Install Fail2Ban (Optional, but highly recommended for 30 mins)

Fail2Ban is an intrusion prevention framework that scans log files (e.g., /var/log/auth.log, /var/log/apache/error.log) for malicious activity like brute-force attempts and bans the offending IP addresses using firewall rules.

6.1 Install Fail2Ban

For Debian/Ubuntu:

sudo apt install fail2ban -y

For CentOS/RHEL:

sudo yum install epel-release -y # Install EPEL repository first
sudo yum install fail2ban fail2ban-systemd -y
6.2 Enable and Start Fail2Ban

Fail2Ban usually starts automatically after installation, but it's good to ensure it's enabled.

sudo systemctl enable fail2ban
sudo systemctl start fail2ban
6.3 Basic Configuration (Optional, for quick wins)

For immediate protection, the default configuration is often sufficient. However, you can quickly create a local configuration file to override defaults without modifying the main config:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

Inside jail.local, you can adjust parameters like bantime (how long an IP is banned), findtime (time window for attempts), and maxretry (number of attempts). For example, ensure [sshd] is enabled (enabled = true) and consider increasing bantime to a higher value like 1h (1 hour) or 1d (1 day).

[DEFAULT]
bantime = 1d
findtime = 10m
maxretry = 5

[sshd]
enabled = true
port = 2222 # Your custom SSH port

Restart Fail2Ban after any changes:

sudo systemctl restart fail2ban

Verify its status:

sudo systemctl status fail2ban

What's Next? (Beyond the First 30 Minutes)

While these steps provide a strong immediate security foundation, server security is an ongoing process. Consider these next steps for your Valebyte dedicated server:

  • Regular Updates: Automate security updates where appropriate, or schedule regular manual checks.
  • Monitoring and Logging: Implement robust logging and monitoring solutions. Tools like ELK stack (Elasticsearch, Logstash, Kibana) or Prometheus/Grafana can provide deep insights.
  • Backup Strategy: Develop and test a comprehensive backup and disaster recovery plan for your data.
  • Intrusion Detection Systems (IDS): Explore tools like OSSEC or Suricata for deeper intrusion detection.
  • Rootkit Scanners: Periodically run rootkit detection tools like rkhunter or chkrootkit.
  • Secure Services: If you're running web servers (Apache, Nginx), databases (MySQL, PostgreSQL), or mail servers, ensure they are configured securely with proper permissions, SSL/TLS, and strong passwords.
  • SELinux/AppArmor: Understand and configure these mandatory access control systems for enhanced security (especially SELinux on CentOS/RHEL).
  • Regular Security Audits: Periodically review your server's security configurations.

Troubleshooting Common Issues

Even with careful steps, issues can arise. Here are some common problems and their solutions:

SSH Connection Issues

  • Permission Denied (publickey):
    • Cause: Incorrect permissions on ~/.ssh/authorized_keys on the server (should be 600), or on your local private key (should be 600 or 400).
    • Solution: On server: chmod 600 ~/.ssh/authorized_keys; on local: chmod 600 ~/.ssh/id_rsa.
    • Cause: Incorrect public key copied to the server.
    • Solution: Verify the public key in ~/.ssh/authorized_keys matches your local id_rsa.pub.
  • Connection Refused / Timeout:
    • Cause: SSH service not running, incorrect port, or firewall blocking the connection.
    • Solution: Check SSH service status (sudo systemctl status sshd). Verify firewall rules (sudo ufw status or sudo firewall-cmd --list-all) and ensure your new SSH port is allowed. Try connecting with ssh -vvv your_username@YOUR_SERVER_IP_ADDRESS -p YOUR_SSH_PORT for verbose output.
  • Lost Access After Disabling Root Login / Password Auth:
    • Cause: You disabled these before confirming key-based login for your new user.
    • Solution: This is why you keep the root session open! If you closed it, you might need to use Valebyte's out-of-band management console (if available) or contact support for a rescue system or KVM access to revert changes in /etc/ssh/sshd_config.

Sudo Permissions Issues

  • "your_username is not in the sudoers file. This incident will be reported."
    • Cause: Your user was not correctly added to the sudo (Debian/Ubuntu) or wheel (CentOS/RHEL) group.
    • Solution: Log in as root (if possible) or use a user with sudo privileges and run usermod -aG sudo your_username (or wheel). Then, log out and back in with your_username.

Firewall Lockout

  • Lost SSH Connection After Enabling Firewall:
    • Cause: You enabled the firewall without allowing your SSH port first.
    • Solution: If you're locked out, you'll need to use Valebyte's out-of-band management console or KVM access to disable the firewall or add the correct SSH rule. For UFW: sudo ufw disable; For Firewalld: sudo systemctl stop firewalld. Then, reconfigure carefully.

check_circle Conclusion

Securing your Valebyte dedicated server within the first 30 minutes is a critical investment in the stability and integrity of your online presence. By taking these immediate, actionable steps—from SSH hardening and user management to firewall configuration and system updates—you significantly reduce your exposure to common threats. Remember, security is an ongoing journey, but by starting strong with Valebyte, you're setting your dedicated infrastructure up for long-term success. Explore Valebyte's range of dedicated server solutions to find the perfect foundation for your secure operations.

help Frequently Asked Questions

Was this guide helpful?

dedicated server security secure bare-metal server server hardening guide first 30 minutes server security valebyte dedicated server
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.