1. Allow Firewall Safety
Use UFW (Ubuntu) or Firewalld (CentOS/AlmaLinux) to manage entry.
Instance Login server (Ubuntu)
Sudo ufw standing
sudo ufw allow
sudo ufw enable 22/tcp # Permit SSH
sudo ufw enable 80/tcp # Permit HTTP
sudo ufw deny 3306 # Block MySQL from public entry
sudo ufw reload
sudo ufw standing
Instance (CentOS/AlmaLinux):
sudo systemctl begin firewalld
sudo firewall-cmd –everlasting –add-service=ssh
sudo firewall-cmd –everlasting –add-port=8080/tcp # Permit HTTPS
sudo firewall-cmd –reload
2. Use Non-public Networking (Keep away from Public Publicity)
If VMs don’t want web entry, use personal/inner networks in VirtualBox, VMware, or Proxmox.
Instance:
1 . In VirtualBox, set the community to “Inner Community” as a substitute of “Bridged Adapter”.
2 . In AWS/Azure/GCP, assign personal IPs and keep away from direct web publicity.
3. Safe SSH Entry
Disable root login
sudo nano /and so on/ssh/sshd_config
Set : PermitRootLogin no
Restart SSH: sudo systemctl restart ssh
Use SSH keys as a substitute of passwords:
ssh-keygen -t rsa -b 4096
ssh-copy-id person@your-vm-ip
How ssh-copy-id Works
- It copies your SSH public key (~/.ssh/id_rsa.pub) to the distant server.
- It provides the important thing to the distant server’s ~/.ssh/authorized_keys file.
- As soon as arrange, you’ll be able to SSH into the distant server with out coming into a password.
4. Use Intrusion Detection System (IDS)
Set up Fail2Ban to dam repeated unauthorized login makes an attempt
sudo apt set up fail2ban -y # Ubuntu
sudo yum set up fail2ban -y # CentOS/AlmaLinux
sudo systemctl allow fail2ban –now
5. Limit Community Entry with iptables
Permit solely particular IPs to entry SSH:
sudo iptables -A INPUT -p tcp –dport 22 -s YOUR_IP -j ACCEPT
sudo iptables -A INPUT -p tcp –dport 22 -j DROP
6. Maintain Software program and OS Up to date
Repeatedly replace your system to repair vulnerabilities:
sudo apt replace && sudo apt improve -y # Ubuntu
sudo yum replace -y # CentOS/AlmaLinux
7. Allow Logging and Monitoring
Test logs for suspicious exercise:
sudo cat /var/log/auth.log # Ubuntu
sudo cat /var/log/safe # CentOS
How do I connect to my Linux VPS using SSH? A detailed guide: Do Digital Machine Require Community Safety?