Category: Server Management

Learn how to manage your VPS or dedicated server like a pro. From Linux commands to configuring NGINX, firewalls, and SSH, this category is for developers, sysadmins, and serious users who want full control.

  • The Green Server Revolution: How Vicservers is Lowering Your Website’s Carbon Footprint

    The Green Server Revolution: How Vicservers is Lowering Your Website’s Carbon Footprint

    The Green Server Revolution: How Vicservers is Lowering Your Website’s Carbon Footprint

    By 2026, the digital world faces a paradox: AI and high-performance computing are driving unprecedented growth, but they are also consuming record amounts of energy. Data centers now account for nearly 3% of global electricity consumption, a figure that continues to rise as businesses rush to implement AI-ready strategies.

    At Vicservers Technologies Limited, we believe that digital progress shouldn’t come at the cost of the environment. We are leading a “Green Server Revolution” in Nigeria, proving that you can have world-class performance without a massive carbon footprint. Here is how we are building a sustainable digital future for your business.

    1. AI-Driven Energy Orchestration

    In a traditional data center, servers and cooling systems often run at 100% capacity regardless of the actual demand. This “idle energy” is the single biggest source of waste in the industry.

    Vicservers uses Predictive AI to manage our infrastructure’s “breath.”

    • Dynamic Workload Balancing: Our AI analyzes real-time traffic patterns. During low-usage hours (like 3:00 AM in Lagos), the AI automatically migrates workloads onto fewer machines and powers down idle servers.

    • Intelligent Thermal Management: Instead of running industrial AC units 24/7, our AI monitors server heat output and external weather conditions to adjust cooling zones dynamically. This reduces cooling energy waste by up to 30%.

    2. The Move to Liquid Cooling for AI Workloads

    As we integrate more GPUs to support your AI-ready needs, traditional air cooling is no longer enough. Air is an inefficient heat conductor; liquid is 3,500 times more effective.

    At Vicservers, we are transitioning our high-density racks to Liquid-to-Chip cooling systems.

    • Direct Efficiency: By pumping non-conductive coolant directly to the hottest components, we eliminate the need for massive, power-hungry fans.

    • Lower PUE: Our goal for 2026 is a Power Usage Effectiveness (PUE) of 1.2 or lower, significantly better than the industry average of 1.6. This means more of the power you pay for goes into computing, not cooling.

    3. Sustainable Hardware Lifecycle (The Circular Economy)

    E-waste is a growing global crisis. At Vicservers, we’ve moved away from the “disposable hardware” model.

    • NVMe Efficiency: By upgrading to the latest Gen5 NVMe storage, we complete data tasks faster. Because the “work” finishes sooner, the drive spends more time in low-power standby mode, consuming 40% less energy over its lifespan than traditional SATA SSDs.

    • Component Re-purposing: When we upgrade our primary servers, the retired hardware isn’t thrown away. We repurpose these components for internal testing environments or low-priority backup nodes, extending the functional life of our hardware by an average of 2 years.

    4. Why “Green Hosting” is a Marketing Superpower

    In 2026, your customers care about ESG (Environmental, Social, and Governance) goals. They want to know that the brands they support are responsible.

    When you host with Vicservers, you can tell your audience:

    “Our website is powered by a high-efficiency, AI-optimized green data center.”

    • The Branding Advantage: Transparent sustainability reporting is now a major trust signal. It can improve customer loyalty (LTV) and reduce your bounce rate, as eco-conscious Gen Z and Alpha consumers increasingly vote with their clicks.

    • Future-Proofing: Global regulations are tightening. By moving to a green host now, you are already compliant with the carbon-reporting standards that will become mandatory for all businesses by 2030.

    The Vicservers Pledge: A Cleaner Nigeria, A Faster Web

    Digital sovereignty isn’t just about where your data lives; it’s about the legacy that data leaves behind. Vicservers Technologies Limited is committed to being the most energy-efficient hosting provider in West Africa.

    We are proving that you don’t have to choose between blazing speed and environmental responsibility. You can have both.

  • Creating a Backup Strategy for Your Hosting Business

    Creating a Backup Strategy for Your Hosting Business

    Creating a Backup Strategy for Your Hosting Business

    In today’s digital-first world, data is the backbone of every business. For hosting providers, ensuring data availability and security is not just a best practice, it’s a necessity. A well-structured backup strategy can protect your clients from costly downtime, cyberattacks, or accidental data loss.

    Why Backups Matter

    Imagine a client’s website going down or losing critical files due to hardware failure or ransomware. Without a backup, recovery could take days—or worse, may never happen. With a solid backup system in place, you can guarantee business continuity and maintain customer trust.

    Key Steps in Building a Reliable Backup Strategy

    1. Define Your Backup Goals

    • RPO (Recovery Point Objective): How much data can you afford to lose?
    • RTO (Recovery Time Objective): How quickly must data be restored?

    These objectives help align your backup plan with client expectations.

    2. Choose the Right Backup Types

    • Full Backups: Complete data copies (reliable but resource-heavy).
    • Incremental Backups: Save only new/changed data since the last backup (faster, lighter).
    • Differential Backups: Store changes since the last full backup (balanced approach).

    A hybrid strategy often works best.

    3. Implement the 3-2-1 Rule

    Keep:

    • 3 copies of data
    • 2 different storage types (e.g., local + cloud)
    • 1 offsite backup (for disaster recovery)

    This ensures resilience against localized failures.

    4. Automate the Process

    Manual backups are prone to human error. Automating backup schedules guarantees consistency and reduces risks.

    5. Test Your Backups

    A backup is only as good as its restore capability. Regularly test recovery processes to confirm data integrity and speed.

    6. Secure Your Backups

    Encrypt stored backups and restrict access. This prevents backups from becoming another security vulnerability.

    Conclusion

    At Vicservers, we understand that uptime and data protection are the lifelines of your hosting business. By implementing a comprehensive backup strategy, you not only safeguard your infrastructure but also strengthen your reputation as a reliable hosting partner.

    Ready to future-proof your hosting business? Learn how Vicservers can help you with robust backup solutions at vicservers.com.

     

  • Automating Backups on Linux Using rsync

    Automating Backups on Linux Using rsync

    Automating Backups on Linux Using rsync

    When managing servers or personal systems on Linux, automated backups are essential. Data loss can strike due to hardware failure, human error, or malicious attacks. That’s why one of the most efficient and reliable methods is using the rsync command.

    In this blog post, we’ll walk you through how to automate backups on a Linux system using rsync, with practical examples, cron job scheduling, and tips for best practices. Let’s help you protect your data — the Vicservers way.

    What is rsync?

    rsync (short for “remote sync”) is a command-line utility for efficiently syncing files and directories between two locations. It’s built into most Linux distributions and is widely used for both local and remote backups.

    ✅ Key Features:

    • Delta-transfer algorithm – Only copies changed parts of files.
    • Preserves metadata – Permissions, ownerships, timestamps, and symbolic links.
    • Works locally and over SSH.
    • Highly customizable with inclusion/exclusion rules.

    Basic rsync Syntax

    rsync [OPTIONS] SOURCE DESTINATION
    

    Example:

    rsync -avz /home/user/ /mnt/backup/user/
    
    • -a – Archive mode
    • -v – Verbose
    • -z – Compress file data during the transfer

    Why Automate Backups?

    Manual backups are prone to human error and inconsistency. Automating ensures:

    • Regular, on-time backups
    • Reduced downtime
    • Easier disaster recovery
    • Peace of mind!

    Automating rsync with Cron

    You can use the cron scheduler to automate your backup script. Here’s how:

    Step 1: Create a Backup Script

    Create a file, e.g., /usr/local/bin/backup.sh:

    #!/bin/bash
    
    rsync -avz --delete /home/user/ /mnt/backup/user/ >> /var/log/backup.log 2>&1
    

    Make it executable:

    chmod +x /usr/local/bin/backup.sh
    

    Step 2: Add a Cron Job

    Edit your crontab:

    crontab -e
    

    Add this line to run the backup daily at 2 AM:

    0 2 * * * /usr/local/bin/backup.sh
    

    Remote Backups Using SSH

    You can easily back up files to a remote server with rsync over SSH:

    rsync -avz -e ssh /var/www/ user@backupserver:/backups/website/
    

    Set up SSH key authentication to avoid password prompts:

    ssh-keygen -t rsa
    ssh-copy-id user@backupserver
    

    Common rsync Options

    Option Description
    --delete Deletes files in the destination not in source
    --exclude Skip specified files or directories
    --progress Shows real-time file transfer progress
    --dry-run Simulates the command without making changes
    --bwlimit=KBPS Limit bandwidth usage

    Example:

    rsync -avz --delete --exclude "*.tmp" /home/user/ /mnt/backup/
    

    Backup Best Practices (Vicservers Recommended)

    1. Use External Drives or Remote Servers – Never back up to the same disk.
    2. Encrypt Remote Backups – Use SSH or GPG encryption.
    3. Set Notifications – Alert on success/failure using mailx or a monitoring tool.
    4. Verify Restorations Regularly – A backup is only good if you can restore it.
    5. Store Backups Offsite or in the Cloud – Adds resilience against disasters.

    Conclusion

    Using rsync for automated backups on Linux is a simple yet powerful strategy. Combined with cron jobs, it becomes a “set it and forget it” solution. Whether you’re managing a personal server or business infrastructure, Vicservers recommends rsync as part of any solid disaster recovery plan.

    Need Help?

    Vicservers offers managed Linux hosting and automated backup services tailored to your business. Let our engineers set it all up for you — the secure, professional way.

    📞 Contact Us: www.vicservers.com
    📧 Email: [email protected]

    By VicServers | Secure. Scalable. Reliable.

  • How to Monitor Server Performance Using htop and top

    How to Monitor Server Performance Using htop and top

    How to Monitor Server Performance Using htop and top on Linux

    When managing servers — whether on-premise or in the cloud — monitoring performance is crucial. Knowing how your CPU, RAM, and processes behave in real-time helps you prevent crashes, detect intrusions, and optimize resource usage. Two of the most reliable command-line tools for Linux performance monitoring are top and htop.

    In this guide, Vicservers walks you through using both tools to stay in control of your Linux server’s health.

    What Are top and htop?

    • top: A built-in Linux utility that shows real-time process activity and system resource usage.
    • htop: An enhanced, interactive version of top, with a colorful, user-friendly interface. Not pre-installed on all systems, but easy to set up.

    Installing htop (If Needed)

    Ubuntu/Debian:

    sudo apt update && sudo apt install htop
    

    CentOS/RHEL:

    sudo yum install epel-release
    sudo yum install htop
    

    📈 Using top

    Just run:

    top
    

    You’ll see:

    • CPU usage per core
    • Memory and swap usage
    • A list of running processes
    • Load average (system load over 1, 5, and 15 minutes)

    Common top Keyboard Commands:

    • q: Quit
    • P: Sort by CPU usage
    • M: Sort by memory usage
    • k: Kill a process (enter PID)
    • 1: View CPU usage per core

    Use top when you want a lightweight, fast overview — especially on remote servers.

     Using htop

    Launch with:

    htop
    

    htop advantages:

    • Color-coded performance bars
    • Horizontal CPU/memory graphs
    • Scrollable list of processes
    • Easier to navigate

    Key Features:

    • Interactive UI: Use arrow keys to navigate.
    • Search: Press / to search for a process by name.
    • Kill processes: Select with arrows, press F9.
    • Sort: Use F6 to change sorting criteria.

    Real-World Use Cases at Vicservers

    • 🔄 Detecting runaway processes: Use htop to identify apps using 100% CPU.
    • 🚦 Diagnosing slowdowns: Spot memory leaks in long-running services.
    • 🧪 Testing performance: Monitor impact of new deployments on CPU and RAM.
    • 🔐 Checking for suspicious activity: Unusual processes could signal intrusion.

    Comparing top vs htop

    Feature top htop
    Pre-installed ❌ (install needed)
    UI Basic text Colorful, interactive
    Mouse Support
    Scrolling
    Easy Sorting Manual With hotkeys

    Pro Tips from Vicservers

    • 🔒 Use with sudo to see all system processes:
      sudo htop
      
    • 📸 Log system usage:
      top -b -n 1 > server_snapshot.txt
      
    • 🔁 Combine with cron jobs to automate snapshots for later analysis.

    Conclusion

    Whether you prefer the simplicity of top or the visual clarity of htop, both tools are essential for any Linux system administrator or DevOps engineer. At Vicservers, we help clients across Nigeria deploy, monitor, and secure their servers efficiently.

    Need help managing server performance at scale?
    Contact our team for tailored support and automated server monitoring solutions.

    📧 [email protected]
    🌐 www.vicservers.com

    By Vicservers – Nigeria’s Trusted Server & Infrastructure Partner

  • Setting Up Crontab for Automated Server Tasks

    Setting Up Crontab for Automated Server Tasks

    Setting Up Crontab for Automated Server Tasks: A Practical Guide by Vicservers

    At Vicservers, we help Nigerian businesses and tech teams streamline their server operations — and one of the most powerful tools in any system admin’s toolkit is Crontab. Whether you’re running a cloud server, managing backups, or automating scripts, cron jobs are the key to hands-free task scheduling in Linux.

    In this guide, we’ll walk you through how to set up Crontab for automated tasks, best practices, and real-life use cases you can implement today.

    What is Crontab?

    Crontab (short for “cron table”) is a configuration file used to schedule tasks at specified times or intervals. These tasks — known as cron jobs — can be anything from running a script to sending emails, backing up files, or restarting services.

    Cron is built into most Linux distributions, including Ubuntu, CentOS, and Debian.

    Step 1: Accessing Crontab

    To edit your user’s crontab file:

    crontab -e
    

    If it’s your first time, you’ll be asked to choose an editor (like nano or vim).


    Step 2: Understanding Crontab Syntax

    Crontab entries follow this format:

    * * * * * command_to_run
    - - - - -
    | | | | |
    | | | | +----- Day of week (0–7, Sunday=0 or 7)
    | | | +------- Month (1–12)
    | | +--------- Day of month (1–31)
    | +----------- Hour (0–23)
    +------------- Minute (0–59)
    

    Example: Run a script every day at 2 AM

    0 2 * * * /home/user/backup.sh
    

    Step 3: Common Cron Use Cases

    Here are some everyday automation examples for Nigerian developers, SMEs, and sysadmins:

    🔄 1. Automated Server Backups

    0 1 * * * /usr/local/bin/db_backup.sh
    

    Backs up the database daily at 1 AM.

    💡 2. Restart a Service Weekly

    0 3 * * 0 systemctl restart apache2
    

    Restarts Apache every Sunday at 3 AM.

    📧 3. Email System Logs Every Day

    30 5 * * * cat /var/log/syslog | mail -s "Daily Logs" [email protected]
    

    👨‍🔧 Step 4: List and Remove Cron Jobs

    • View current user’s cron jobs:
    crontab -l
    
    • Remove all cron jobs:
    crontab -r
    
    • Remove specific jobs: Edit with crontab -e and delete the line.

    Best Practices by Vicservers

    • ✏️ Use full paths to scripts and binaries (/usr/bin/php, /bin/bash, etc.).
    • 📂 Redirect output for debugging:
      0 4 * * * /home/user/script.sh >> /home/user/logs/script.log 2>&1
      
    • 🔒 Use a dedicated user for sensitive jobs.
    • 🔄 Test scripts manually before scheduling them.
    • 📡 Set up email notifications by configuring the MAILTO variable in crontab:
      MAILTO="[email protected]"
      

    Bonus: Check Cron Logs

    On most Linux servers, cron logs are stored here:

    /var/log/cron     # CentOS/RHEL
    /var/log/syslog   # Ubuntu/Debian
    

    Use this to troubleshoot failed jobs.

    Conclusion

    Crontab simplifies routine server management by automating repetitive tasks. Whether you’re a growing tech startup in Lagos or a DevOps team scaling cloud infrastructure, automation is key — and cron makes it happen.

    Need help setting up or securing cron jobs on your Linux server? Vicservers offers expert support, server automation, and managed infrastructure solutions.

    📞 Reach out to us today:
    🌐 www.vicservers.com
    📧 [email protected]

    Vicservers – Hosting That Empowers You to Take Full Control.

  • How to Add and Manage Users on a Linux Server

    How to Add and Manage Users on a Linux Server

    How to Add and Manage Users on a Linux Server: A Guide by Vicservers

    In today’s digital economy, managing user access on Linux servers is critical for ensuring security, efficiency, and scalability — especially for Nigerian businesses embracing digital transformation. At Vicservers, we specialize in providing secure, scalable, and reliable server solutions. In this blog, we walk you through the essential steps to add and manage users on a Linux server — whether you’re a system admin, DevOps engineer, or tech entrepreneur managing your own infrastructure.

    Why User Management Matters

    User management allows system administrators to:

    • Control who can access what on the server.
    • Assign proper permissions for operational safety.
    • Track usage and monitor activities.
    • Prevent unauthorized access and security breaches.

    Let’s dive into the practical steps.

    Step 1: Adding a New User

    To add a new user to your Linux server, you can use either of the following:

    🟩 Using adduser (Recommended for Simplicity)

    sudo adduser john
    

    This command will:

    • Create a new user.
    • Set up a home directory (/home/john).
    • Prompt you to set a password.

    🟨 Using useradd (For Advanced Users)

    sudo useradd -m -s /bin/bash john
    sudo passwd john
    
    • -m creates a home directory.
    • -s defines the shell.

    Step 2: Granting Admin (Sudo) Privileges

    On Ubuntu/Debian-based systems:

    sudo usermod -aG sudo john
    

    On CentOS/RHEL systems:

    sudo usermod -aG wheel john
    

    This allows the user to run admin-level commands using sudo.

    Step 3: Modifying User Information

    You may need to rename a user, change their home directory, or update their group membership:

    sudo usermod -l newname oldname       # Rename user
    sudo usermod -d /new/home username    # Change home directory
    sudo usermod -aG devops username      # Add to group
    

    Step 4: Deleting Users

    To remove a user:

    sudo deluser username         # Ubuntu/Debian
    sudo userdel username         # CentOS/Red Hat
    

    To delete the user and their home directory:

    sudo deluser --remove-home username
    sudo userdel -r username
    

    Step 5: Creating and Managing Groups

    Linux groups help organize users and define access levels.

    Create a group:

    sudo groupadd developers
    

    Add a user to a group:

    sudo usermod -aG developers john
    

    Remove a user from a group:

    sudo gpasswd -d john developers
    

    Step 6: Monitoring Users

    Track who is logged in:

    who
    

    View activity:

    w
    

    Check login history:

    last
    

    This is especially useful for auditing and compliance — important for enterprise clients and cloud infrastructure teams.

    Step 7: Locking or Disabling Accounts

    Lock a user:

    sudo passwd -l username
    

    Unlock:

    sudo passwd -u username
    

    Disable login:

    sudo usermod -s /usr/sbin/nologin username
    

    Use this for suspending access without deleting user data.

    Best Practices by Vicservers

    At Vicservers, we recommend the following for all clients managing their Linux environments:

    • 🔐 Use SSH keys instead of passwords.
    • 📅 Set account expiration for contractors:
      sudo chage -E 2025-12-31 username
      
    • 🕵️ Regularly audit users and access logs.
    • 🔄 Automate user provisioning with Ansible or bash scripts.

     Final Thoughts

    Linux user management is more than just creating accounts — it’s about maintaining a secure and organized environment. Whether you’re running cloud servers in Lagos, hosting websites for clients, or building fintech platforms, Vicservers has your back with managed services, security best practices, and professional support.

    Need help managing your Linux infrastructure or migrating to a better server platform? Contact Vicservers or visit www.vicservers.com to learn more.

     

  • Essential Linux Commands Every Server Admin Should Know

    Essential Linux Commands Every Server Admin Should Know

    Essential Linux Commands Every Server Admin Should Know

    Introduction

    Linux is the backbone of modern web servers. Whether you’re running a personal blog or managing a fleet of cloud instances, mastering Linux commands is essential for secure and efficient server administration.

    In this guide, Vicservers introduces you to the must-know Linux commands that every server administrator should have in their toolkit. From basic navigation to system monitoring, this tutorial is perfect for beginners and intermediates alike.

    1. File and Directory Navigation

    Understanding the Linux filesystem is the foundation of all server tasks.

    pwd

    Print Working Directory

    pwd
    

    Shows your current directory.

    ls

    List Contents

    ls        # List files  
    ls -l     # Long format  
    ls -a     # Include hidden files  
    

    cd

    Change Directory

    cd /etc          # Absolute path  
    cd ..            # Go up one level  
    cd ~             # Go to home directory  
    

    mkdir & rmdir

    Create and Remove Directories

    mkdir new_folder  
    rmdir old_folder  
    

     2. File Management

    Manipulating files is an everyday task for sysadmins.

    touch

    Create Empty File

    touch test.txt
    

    cp, mv, rm

    Copy, Move, and Remove Files

    cp file.txt /backup/  
    mv file.txt newname.txt  
    rm file.txt             # Use with caution!
    

    cat, less, head, tail

    View File Contents

    cat file.txt  
    less file.txt  
    head -n 10 file.txt     # First 10 lines  
    tail -f /var/log/syslog # Live log view  
    

    3. User and Permission Management

    Controlling access is critical for server security.

    adduser / useradd

    Create New User

    adduser johndoe
    

    passwd

    Change Password

    passwd johndoe
    

    usermod

    Modify User Account

    usermod -aG sudo johndoe  # Add to sudoers  
    

    chmod / chown

    Change Permissions and Ownership

    chmod 755 script.sh  
    chown user:group file.txt
    

    4. System Monitoring

    These commands help you track performance and spot issues.

    top / htop

    Live Process Monitor

    top
    

    For a friendlier interface, install htop:

    sudo apt install htop
    htop
    

    df -h

    Disk Space Usage

    df -h
    

    du -sh

    Directory Size Summary

    du -sh /var/log
    

    free -h

    Memory Usage

    free -h
    

    uptime

    System Load and Running Time

    uptime
    

     5. Network Management

    Server connectivity is everything—monitor it with these tools.

    ip a or ifconfig

    View Network Interfaces

    ip a
    

    ping

    Test Connectivity

    ping google.com
    

    netstat or ss

    List Network Connections

    ss -tuln
    

    traceroute

    Trace Packet Path

    traceroute google.com
    

    curl & wget

    Download Files or Check Web Status

    curl -I https://example.com  
    wget https://example.com/file.zip
    

    6. Package Management

    Installing and updating software is common in server maintenance.

    For Debian/Ubuntu (APT):

    sudo apt update  
    sudo apt upgrade  
    sudo apt install nginx  
    sudo apt remove apache2
    

    For CentOS/RHEL (YUM or DNF):

    sudo yum update  
    sudo yum install httpd  
    sudo dnf install nginx
    

    7. Searching and Filtering

    Find files or filter logs with precision.

    find

    Search for Files

    find / -name "config.php"
    

    grep

    Text Pattern Search

    grep "error" /var/log/syslog
    

    Use with pipes:

    cat log.txt | grep "404"
    

    locate

    Fast File Lookup

    sudo updatedb  
    locate php.ini
    

    8. Log File Management

    Monitoring logs helps you detect errors and intrusions.

    journalctl

    Systemd Log Viewer

    journalctl -xe
    

    Common Log Files:

    • /var/log/syslog – system messages
    • /var/log/auth.log – SSH and user activity
    • /var/log/apache2/ – Apache logs
    • /var/log/nginx/ – NGINX logs

    tail -f

    Watch Logs in Real Time

    tail -f /var/log/nginx/error.log
    

    9. Process and Service Management

    Start, stop, and inspect services.

    systemctl

    Manage Services on Systemd Systems

    sudo systemctl start nginx  
    sudo systemctl stop apache2  
    sudo systemctl restart mysql  
    sudo systemctl status ssh
    

    ps & kill

    List and Terminate Processes

    ps aux | grep nginx  
    kill 1234               # Kill process by PID  
    kill -9 1234            # Force kill
    

    10. SSH & Remote Management

    Connect and control servers remotely.

    ssh

    Connect to Remote Server

    ssh [email protected]
    

    scp

    Secure File Copy

    scp file.txt user@host:/path/
    

    Bonus: Time-Saving Shortcuts

    Shortcut Description
    !! Run last command again
    !n Run command number n from history
    Ctrl + R Reverse search through command history
    history Show command history
    alias Create command shortcut
    alias ll='ls -lah'
    

    Safety Tips for Admins

    • Never run random commands with sudo unless you understand them.
    • Use --dry-run options if available (e.g., rsync --dry-run)
    • Regularly back up config files before editing them.
    • Use a non-root user with sudo privileges for daily tasks.
    • Set up a firewall (ufw or firewalld) and fail2ban for security.

    Sample Workflow: Updating Your Server Securely

    # Step 1: Connect
    ssh [email protected]
    
    # Step 2: Update system
    sudo apt update && sudo apt upgrade
    
    # Step 3: Check disk space
    df -h
    
    # Step 4: Monitor live logs
    tail -f /var/log/syslog
    
    # Step 5: Reboot if needed
    sudo reboot
    

    Final Thoughts

    Mastering essential Linux commands is key to becoming a confident and competent server administrator. While graphical tools like cPanel and WHM simplify hosting, the command line offers unmatched flexibility and power.

    Whether you’re running a single VPS or managing multiple client accounts on a reseller server, these Linux commands will serve you well.

    Want to Go Deeper?

    Vicservers provides fully managed VPS, dedicated servers, and reseller hosting with root access—perfect for learning and applying Linux skills in real time.

    ✅ 24/7 support
    ✅ Free migration
    ✅ Root access + WHM
    ✅ Secure, SSD-powered infrastructure

    🔗 Explore Hosting Plans

    Vicservers – Hosting That Empowers You to Take Full Control.

     

  • How to Set Up SSH Access for Secure Server Management

    How to Set Up SSH Access for Secure Server Management

    How to Set Up SSH Access for Secure Server Management

    Introduction

    When it comes to managing your server remotely, SSH (Secure Shell) is the gold standard. It provides an encrypted, secure way to access and control Linux servers—allowing you to perform everything from software installation to file transfers and firewall configuration.

    But SSH isn’t just about convenience—it’s about security. With cyber threats on the rise, properly configuring SSH access is critical for protecting your server and data.

    In this post, you’ll learn:

    • What SSH is and how it works
    • How to connect to your server via SSH
    • How to set up SSH key authentication
    • How to harden your SSH security
    • Best practices to keep your server safe

    Whether you’re using a Vicservers VPS or a dedicated machine, this step-by-step guide will get you running securely in no time.


    What Is SSH?

    SSH (Secure Shell) is a cryptographic network protocol that allows secure remote login and command execution on a server over an unsecured network. It replaces older, insecure protocols like Telnet and FTP.

    SSH uses port 22 by default and encrypts the communication between your local machine and your remote server.

    With SSH, you can:

    • Access your server’s command line
    • Transfer files securely using SCP or SFTP
    • Automate server management tasks
    • Configure firewalls, install packages, restart services

    Prerequisites

    To follow this guide, you’ll need:

    ✅ A Linux server (Ubuntu/Debian/CentOS) — e.g. from VicServers
    ✅ A local computer with SSH installed (macOS/Linux: built-in, Windows: use PowerShell or PuTTY)
    ✅ Server login credentials (IP address, username, and password or SSH key)

     Step 1: Connecting to Your Server Using SSH

    The most basic way to connect to your server:

    ssh username@your-server-ip
    

    Example:

    ssh [email protected]
    

    The server will ask for the user’s password. Once entered, you’re inside!

    Step 2: Setting Up SSH Key Authentication (Recommended)

    SSH key authentication is far more secure than using passwords. Here’s how to set it up:

    1. Generate SSH Key Pair (on your local machine)

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

    Press Enter to accept the default file location (~/.ssh/id_rsa) and optionally set a passphrase.

    This generates:

    • id_rsa — your private key (keep safe!)
    • id_rsa.pub — your public key

    2. Copy the Public Key to the Server

    ssh-copy-id username@your-server-ip
    

    Or manually:

    cat ~/.ssh/id_rsa.pub | ssh username@your-server-ip 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'
    

    3. Connect Using the SSH Key

    Now you can log in without a password:

    ssh username@your-server-ip
    

     Step 3: Hardening SSH Security

    Once SSH key access is working, tighten security to reduce risk.

    1. Disable Password Authentication

    Edit your SSH configuration file:

    sudo nano /etc/ssh/sshd_config
    

    Find these lines and update:

    PasswordAuthentication no
    PermitRootLogin no
    

    This:

    • Disables password-based login (use keys only)
    • Prevents root login (use sudo instead)

    Then restart SSH:

    sudo systemctl restart ssh
    

    2. Change Default SSH Port

    Using a non-default port adds a layer of protection against bots.

    In /etc/ssh/sshd_config, change:

    Port 2222
    

    Restart SSH:

    sudo systemctl restart ssh
    

    And allow the new port through the firewall:

    sudo ufw allow 2222/tcp
    

    Step 4: Using SSH Config for Easier Management

    If you manage multiple servers, create a config file at ~/.ssh/config:

    Host vicserver
        HostName 192.168.1.100
        User youruser
        Port 2222
        IdentityFile ~/.ssh/id_rsa
    

    Now you can connect with:

    ssh vicserver
    

     Step 5: File Transfers Using SCP or SFTP

    SSH also lets you transfer files safely.

    Using SCP:

    Upload a file:

    scp file.txt user@your-server-ip:/home/user/
    

    Download a file:

    scp user@your-server-ip:/home/user/file.txt .
    

    Using SFTP:

    sftp user@your-server-ip
    

    This opens a secure FTP-like session over SSH.


    Step 6: Managing SSH Access for Multiple Users

    To add a new user:

    sudo adduser newuser
    

    Give them SSH access:

    sudo mkdir /home/newuser/.ssh
    sudo cp ~/.ssh/authorized_keys /home/newuser/.ssh/
    sudo chown -R newuser:newuser /home/newuser/.ssh
    

    Restrict sudo access if necessary with:

    sudo usermod -aG sudo newuser
    

     Step 7: Enable Two-Factor Authentication (Optional)

    For added security, enable 2FA on SSH.

    1. Install Google Authenticator:
    sudo apt install libpam-google-authenticator
    
    1. Run setup:
    google-authenticator
    
    1. Edit PAM:
    sudo nano /etc/pam.d/sshd
    

    Add this line at the top:

    auth required pam_google_authenticator.so
    
    1. Update SSH config:
    sudo nano /etc/ssh/sshd_config
    

    Set:

    ChallengeResponseAuthentication yes
    

    Restart SSH.

    Now users need their SSH key and 2FA code.


    Step 8: Enforcing Security Best Practices

    Use Strong Keys

    • Use RSA 4096-bit or better
    • Or switch to ed25519 for faster, modern encryption:
    ssh-keygen -t ed25519
    

     Rotate Keys Regularly

    Change or revoke keys for users who no longer need access.

     Limit Login Attempts

    Use tools like Fail2Ban to block repeated login failures:

    sudo apt install fail2ban
    

    Configure /etc/fail2ban/jail.local to protect SSH.

     Monitor SSH Logs

    Check login attempts:

    sudo journalctl -u ssh
    sudo cat /var/log/auth.log | grep sshd
    

    Troubleshooting SSH Issues

    • Connection refused?
      → Make sure the SSH service is running:
      sudo systemctl status ssh
    • Permission denied (publickey)?
      → Check file permissions:
      ~/.ssh/authorized_keys must be 600
      ~/.ssh/ directory must be 700
    • Lost your private key?
      → You’ll need console access or another user account to restore access.

     Using Vicservers? You’re Already Ahead

    Vicservers makes SSH setup fast and secure by default. With full root access and instant provisioning, every VPS or dedicated server includes:

    ✅ Preinstalled OpenSSH
    ✅ Full SSH key support
    ✅ Firewall controls for SSH ports
    ✅ 24/7 assistance for key setup or security hardening

    Need help setting up your first SSH session? Our support team can walk you through it.


     Final Thoughts

    SSH is a fundamental tool for server management—but only when used securely. By setting up SSH keys, disabling password login, and limiting access, you protect your server from the most common attacks.

    When paired with best practices like rotating keys and monitoring logs, SSH becomes your secure gateway to full server control.


    Ready to Deploy Secure Servers?

    Start your secure VPS with Vicservers
    SSH, firewalls, backups, and more — all included
    Need help? Our engineers are on call 24/7

     

    Vicservers — Secure. Scalable. Ready for anything.

     

  • Setting Up a Firewall for Your Linux Server (UFW Tutorial)

    Setting Up a Firewall for Your Linux Server (UFW Tutorial)

    Setting Up a Firewall for Your Linux Server (UFW Tutorial)

    Introduction

    When it comes to server security, a firewall is your first line of defense. Whether you’re running a personal blog or managing multiple cloud servers, an unprotected server is an open invitation to cyber threats.

    In this tutorial, we’ll walk you through everything you need to know about setting up and configuring a firewall on Linux using UFW (Uncomplicated Firewall). UFW is one of the easiest tools to use for managing firewall rules on Ubuntu and other Debian-based distributions.

    By the end of this guide, you’ll be able to:

    • Understand how UFW works
    • Configure basic and advanced firewall rules
    • Secure SSH access
    • Open/close specific ports
    • Create reusable profiles
    • Set up logging and monitoring

    Let’s get started.

    What Is a Firewall?

    A firewall is a system that filters incoming and outgoing traffic to or from your server based on a defined set of rules. It allows trusted traffic (like your website or SSH access) and blocks potentially malicious or unauthorized connections.

    In Linux, tools like iptables and nftables offer powerful control, but they can be complex. That’s why UFW exists—to make managing firewall rules more accessible and human-readable.

     Why Use UFW?

    UFW stands for Uncomplicated Firewall, and it’s designed to simplify firewall management. Here’s why it’s a great choice:

    • Pre-installed on Ubuntu and many Debian-based systems
    • Simple syntax for adding/removing rules
    • IPv4 and IPv6 support
    • Integrates with app profiles (like OpenSSH, NGINX, Apache)
    • Works well on VPS and cloud servers from Vicservers

     Prerequisites

    Before proceeding, ensure:

    ✅ You’re running a Linux server (Ubuntu/Debian)
    ✅ You have sudo/root access
    ✅ You’re connected via SSH

    If you’re using a Vicservers VPS, you’re already equipped with these essentials.

    Step 1:  Check if UFW Is Installed

    Most Ubuntu systems come with UFW pre-installed. To check:

    sudo ufw status
    

    If it’s not installed:

    sudo apt install ufw
    

    Step 2:  Enable UFW (Safely)

     Warning: If you’re connected via SSH, you must allow SSH before enabling UFW, or you’ll lock yourself out.

    Allow SSH:

    sudo ufw allow ssh
    

    This automatically allows traffic on port 22.

    Then enable the firewall:

    sudo ufw enable
    

    You’ll see:

    Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
    Firewall is active and enabled on system startup
    

    Congratulations—your firewall is now active!

    Step 3:  Understanding UFW Rules

    View current rules:

    sudo ufw status numbered
    

    Allow traffic on a specific port:

    sudo ufw allow 80
    

    (For HTTP traffic)

    Allow a service by name:

    sudo ufw allow "Nginx Full"
    

    This opens both ports 80 (HTTP) and 443 (HTTPS).

    Deny traffic on a port:

    sudo ufw deny 23
    

    (This blocks Telnet)

    Step 4:  Basic Configuration Examples

    Common Services

    Service Command
    SSH sudo ufw allow ssh
    HTTP sudo ufw allow http
    HTTPS sudo ufw allow https
    NGINX sudo ufw allow 'Nginx Full'
    Apache sudo ufw allow 'Apache Full'
    MySQL sudo ufw allow 3306

    Step 5:  Restricting SSH Access (Optional)

    By default, SSH runs on port 22 and is open to all IPs. For tighter security:

    Option 1: Allow from a specific IP only

    sudo ufw allow from 203.0.113.4 to any port 22
    

    Option 2: Use a custom SSH port

    If you’ve changed your SSH port (e.g., to 2222), allow that instead:

    sudo ufw allow 2222/tcp
    

    And disable port 22 if no longer used:

    sudo ufw delete allow 22
    

    Step 6:  Resetting and Reconfiguring UFW

    To reset all firewall rules:

    sudo ufw reset
    

    Then re-allow essential services (like SSH) before re-enabling:

    sudo ufw allow ssh
    sudo ufw enable
    

    Step 7:  Logging and Monitoring

    UFW offers basic logging to help you track connections.

    Enable logging:

    sudo ufw logging on
    

    To check logs:

    sudo less /var/log/ufw.log
    

    Look for dropped or denied packets to identify suspicious activity.

    Step 8:  Checking Application Profiles

    UFW supports predefined app profiles, which simplify rule management.

    List available profiles:

    sudo ufw app list
    

    Example output:

    Available applications:
      OpenSSH
      Apache
      Nginx Full
    

    Show details of a profile:

    sudo ufw app info "Nginx Full"
    

    This reveals which ports the profile includes.

    Step 9:  Advanced Rules

    Allow specific IP on a specific port:

    sudo ufw allow from 192.168.1.10 to any port 22
    

    Allow subnet range:

    sudo ufw allow from 192.168.0.0/24
    

    Rate-limit SSH to prevent brute-force attacks:

    sudo ufw limit ssh
    

    This rate-limits connections to port 22 (SSH) after a threshold of attempts.

    Step 10:  Protecting Common Web Services

    For NGINX:

    sudo ufw allow 'Nginx Full'
    

    For Apache:

    sudo ufw allow 'Apache Full'
    

    For HTTPS only (API servers):

    sudo ufw allow 443
    

    Add rules only for the ports/services your application actually needs.

    Step 11:  Disabling or Deleting Rules

    Disable UFW completely (not recommended):

    sudo ufw disable
    

    Delete a specific rule:

    Find the rule number:

    sudo ufw status numbered
    

    Then delete:

    sudo ufw delete [number]
    

    Test Your Configuration

    After setting everything up, test open ports from another server:

    nc -zv your_server_ip 80
    

    Or use an external tool like https://www.yougetsignal.com/tools/open-ports/

    ✅ Best Practices for UFW on Production Servers

    • Always allow SSH first before enabling UFW
    • Limit access to non-essential ports
    • Enable rate limiting for login services
    • Use logging to monitor unusual access patterns
    • Combine UFW with Fail2Ban for added brute-force protection
    • Backup your firewall rules regularly

    Final Thoughts

    A properly configured firewall is one of the most important steps you can take to protect your Linux server from unauthorized access, brute-force attacks, and vulnerabilities. Thankfully, UFW makes this process simple, powerful, and flexible.

    With Vicservers, you get full root access and the ability to customize firewall rules from day one—whether you’re deploying a simple website or managing a fleet of VPS instances.

     Ready to Get Started?

    Launch your secure VPS at VicServers.com
    Fully customizable firewall settings
    Free SSL, DDoS protection, and more included
    Need help setting up UFW? Contact our 24/7 support

    By Vicservers – Your Partner in Secure, High-Performance Hosting

  • How to Install NGINX on Your Server

    How to Install NGINX on Your Server

    How to Install NGINX on Your Server: A Complete Step-by-Step Guide

    When it comes to building a fast, scalable, and efficient web infrastructure, NGINX is a top choice among developers and system administrators. Known for its lightweight architecture and high concurrency support, NGINX can serve thousands of connections with minimal resources.

    In this tutorial, we’ll guide you through installing and configuring NGINX on a Linux-based server (such as Ubuntu or CentOS), whether you’re using a VPS from Vicservers or a cloud server. We’ll also cover the basics of how NGINX works, how to serve your first web page, and how to secure it with SSL.


     What is NGINX?

    NGINX (pronounced “Engine-X”) is an open-source web server that can also be used as a reverse proxy, load balancer, and HTTP cache. It was originally created to handle the C10k problem—serving 10,000 simultaneous client connections on one server—and it does that extremely well.

    Why choose NGINX?

    • High performance under load
    • Low memory consumption
    • Built-in reverse proxy and load balancing
    • Excellent with static content
    • Perfect for modern web apps and APIs

     Prerequisites

    Before we begin, make sure you have:

    ✅ A server running Ubuntu 20.04+, Debian, or CentOS
    ✅ A user account with sudo privileges
    ✅ A stable internet connection
    ✅ SSH access to your server

    If you’re using Vicservers, your server is ready to go with root access and full control.


    1.  Connect to Your Server

    Open a terminal and connect via SSH:

    ssh youruser@your_server_ip
    

    Replace youruser and your_server_ip with your actual SSH user and IP address.


    2.  Update Your System

    It’s always a good practice to update your system before installing any new software:

    For Ubuntu/Debian:

    sudo apt update && sudo apt upgrade -y
    

    For CentOS/RHEL:

    sudo yum update -y
    

    3.  Installing NGINX

     On Ubuntu/Debian

    NGINX is available via the default package repositories.

    sudo apt install nginx -y
    

    On CentOS/RHEL

    Install the EPEL repository first:

    sudo yum install epel-release -y
    sudo yum install nginx -y
    

    Start and enable NGINX:

    sudo systemctl start nginx
    sudo systemctl enable nginx
    

    4. Verify NGINX is Running

    Check the status:

    sudo systemctl status nginx
    

    You should see active (running).

    You can also verify by entering your server’s IP in a browser:

    http://your_server_ip
    

    You’ll see the default NGINX welcome page—you’re live!


    5. Configure the Firewall

    If UFW is running (Ubuntu), allow HTTP and HTTPS:

    sudo ufw allow 'Nginx Full'
    sudo ufw reload
    

    For firewalld (CentOS):

    sudo firewall-cmd --permanent --zone=public --add-service=http
    sudo firewall-cmd --permanent --zone=public --add-service=https
    sudo firewall-cmd --reload
    

    6. Understanding NGINX File Structure

    NGINX configuration lives in /etc/nginx/. Here’s what matters:

    • /etc/nginx/nginx.conf: Main config file
    • /etc/nginx/sites-available/: Available site configurations (Ubuntu)
    • /etc/nginx/sites-enabled/: Symlinks to enabled sites
    • /var/www/html/: Default web root directory
    • /etc/nginx/conf.d/: Custom configs (CentOS)

    Let’s host a simple site next.


    7. Hosting a Basic HTML Website with NGINX

    Step 1: Create Your Web Directory

    sudo mkdir -p /var/www/example.com/html
    sudo chown -R $USER:$USER /var/www/example.com/html
    

    Step 2: Add an HTML File

    nano /var/www/example.com/html/index.html
    

    Paste:

    <!DOCTYPE html>
    <html>
    <head><title>Welcome to Example.com</title></head>
    <body><h1>Success! NGINX is serving your website.</h1></body>
    </html>
    

    Step 3: Create a Server Block (Ubuntu)

    sudo nano /etc/nginx/sites-available/example.com
    

    Paste:

    server {
        listen 80;
        server_name example.com www.example.com;
    
        root /var/www/example.com/html;
        index index.html;
    
        location / {
            try_files $uri $uri/ =404;
        }
    }
    

    Enable the site and reload:

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

    If you’re using CentOS, place your config in /etc/nginx/conf.d/example.com.conf.


    8. Testing DNS and Hosts File (Optional)

    If your domain hasn’t propagated yet, map it locally for testing:

    sudo nano /etc/hosts
    

    Add:

    your_server_ip    example.com www.example.com
    

    Then visit http://example.com in your browser—you should see your test page.


    9. Setting Up SSL with Let’s Encrypt (HTTPS)

    Let’s Encrypt provides free SSL certificates. Use Certbot to install and manage them.

    Step 1: Install Certbot

    Ubuntu:

    sudo apt install certbot python3-certbot-nginx -y
    

    CentOS:

    sudo yum install certbot python3-certbot-nginx -y
    

    Step 2: Obtain a Certificate

    sudo certbot --nginx
    

    Follow the prompts to select your domain and enable redirect from HTTP to HTTPS.

    Step 3: Test Renewal

    sudo certbot renew --dry-run
    

    Your site is now secured with HTTPS!


    10. Tweaking Performance

    For high-traffic sites, tweak these in /etc/nginx/nginx.conf:

    worker_processes auto;
    worker_connections 1024;
    keepalive_timeout 65;
    gzip on;
    

    Use sudo nginx -t to test and sudo systemctl reload nginx to apply.


    11. Logging and Debugging

    • Access logs: /var/log/nginx/access.log
    • Error logs: /var/log/nginx/error.log

    To tail logs:

    sudo tail -f /var/log/nginx/access.log
    

    Check your server block if your site isn’t displaying.


    12.  Uninstalling NGINX (If Needed)

    Ubuntu:

    sudo apt remove nginx nginx-common -y
    

    CentOS:

    sudo yum remove nginx -y
    

    Final Thoughts

    Installing NGINX on your server is one of the most important steps toward building a scalable, secure, and high-performance web infrastructure. Whether you’re running a simple portfolio or a complex application backend, NGINX gives you the flexibility and speed that modern websites demand.


     Why Choose Vicservers for NGINX Hosting?

    Vicservers provides VPS and cloud hosting optimized for NGINX-based stacks. With fast SSD storage, root access, easy OS selection (Ubuntu, Debian, CentOS), and 24/7 support, we help developers and businesses deploy confidently.

    Benefits:

    • Pre-configured NGINX VPS options
    • Free SSL with Let’s Encrypt
    • One-click snapshots and backups
    • Expert Linux support
    • Affordable plans for every need

     Get Started Today

    Launch your NGINX VPS at Vicservers.com
    Need help? Our support team is just a click away.
    Want more guides? Browse our blog for tutorials, tips, and best practices.

    Vicservers — Empowering developers and businesses with dependable hosting infrastructure.

    By Vicservers — Powering Your Web Presence with Reliable Hosting Solutions