I server VPS Linux offrono una sicurezza migliore rispetto ai sistemi Windows grazie al modello di sicurezza Linux integrato. Tuttavia, nessun sistema è a prova di proiettile. Gli hacker scansionano attivamente milioni di server ogni giorno, alla ricerca di vulnerabilità per sfruttare dati sensibili o utilizzare i server per attacchi su larga scala.
Imparare a proteggere un server Linux richiede una configurazione deliberata. Le nuove installazioni VPS sono dotate di impostazioni predefinite che danno priorità all'accessibilità rispetto alla sicurezza. Comprendere come proteggere le implementazioni dei server Linux protegge dalle minacce in evoluzione mantenendo la funzionalità del sistema. Questa guida illustra 20 passaggi essenziali per proteggere l'infrastruttura del server Linux e trasformare il tuo sistema vulnerabile in una fortezza che respinge gli attacchi comuni.
Cos'è il VPS Linux?

Un VPS Linux (Virtual Private Server) funziona su piattaforme cloud con risorse dedicate separate dagli altri utenti. A differenza dell'hosting condiviso in cui un account compromesso può incidere su altri, l'hosting VPS sicuro isola il tuo ambiente. Tuttavia, gli aggressori continuano a prendere di mira i server VPS non protetti per rubare dati, installare malware o lanciare attacchi contro altri sistemi.
Quando ordini acquistare Linux VPS hosting, il sistema operativo viene fornito preinstallato con le impostazioni di base. Queste configurazioni predefinite danno priorità alla facilità d'uso rispetto alla sicurezza, lasciando il server esposto ad attacchi automatizzati che scansionano le vulnerabilità comuni. L'implementazione dei dati cloud di sicurezza con server VPS richiede misure proattive che vanno oltre l'installazione di base.
Perché dovresti proteggere il tuo VPS Linux
I server non protetti diventano obiettivi entro poche ore dall'accesso online. Le organizzazioni ora si trovano ad affrontare un media di 1.876 attacchi informatici a settimana, che rappresenta un aumento del 75% rispetto all'anno precedente. Comprendere come proteggere l'infrastruttura del server Linux protegge da queste minacce costanti che possono compromettere il tuo sistema.
L’aspetto più pericoloso è che gli attacchi sofisticati spesso non vengono rilevati. Gli aggressori possono accedere ai tuoi dati, monitorare le comunicazioni o utilizzare le risorse del tuo server senza evidenti segni di intrusione. L’hosting VPS sicuro richiede misure proattive perché gli aggressori non annunciano la loro presenza: nel momento in cui noti un’attività insolita, potrebbe già essere stato causato un danno significativo.
Modello di sicurezza Linux (LSM)

Linux include funzionalità di sicurezza integrate che negano l'accesso non autorizzato ai componenti critici del sistema. Il modello di sicurezza Linux con diagramma mostra come i controlli di accesso proteggono file, processi e interazioni degli utenti. Ciò crea più livelli di sicurezza che rendono lo sfruttamento più difficile rispetto ad altri sistemi operativi.
Tuttavia, gli LSM non possono prevenire gli attacchi causati da una configurazione inadeguata, da password deboli o da software obsoleto. Forniscono le basi per proteggere un server Linux, ma richiedono un'implementazione corretta per essere efficaci Hosting VPS Ubuntu e altre distribuzioni Linux.
20 modi per proteggere il VPS Linux

Queste misure di sicurezza passano dalle modifiche alla configurazione di base ai sistemi di monitoraggio avanzati. Padroneggiare come proteggere gli ambienti server Linux richiede l'implementazione sistematica di questi passaggi per creare un server Linux sicuro che resista ai comuni vettori di attacco.
Ciascuna tecnica affronta vulnerabilità specifiche comunemente sfruttate dagli aggressori. I metodi spaziano dalle configurazioni fondamentali di cui ogni server ha bisogno a sofisticati sistemi di monitoraggio per il rilevamento avanzato delle minacce. Alcune misure forniscono protezione immediata mentre altre creano resilienza della sicurezza a lungo termine. L’ordine di implementazione è importante: le fasi di rafforzamento di base dovrebbero precedere gli strumenti di monitoraggio avanzati. Insieme, queste 20 strategie creano livelli di sicurezza sovrapposti che riducono significativamente la superficie di attacco del tuo server.
1. Mantieni aggiornato il software
Il software obsoleto contiene vulnerabilità di sicurezza note sfruttate dagli aggressori. Gli sviluppatori di software rilasciano regolarmente patch che risolvono queste vulnerabilità, rendendo gli aggiornamenti la prima linea di difesa per proteggere i sistemi server Linux.
Configura gli aggiornamenti automatici per le patch di sicurezza critiche:
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
# CentOS/RHEL
sudo yum update -y
Configura notifiche e-mail per gli aggiornamenti disponibili per rimanere informato sulle patch di sicurezza che richiedono una revisione manuale.
2. Disabilitare l'accesso root
Ogni server Linux include un account utente "root" con accesso illimitato al sistema. Poiché gli hacker sanno che questo account esiste sempre, lo prendono di mira attacchi di forza bruta per indovinare le password e ottenere il controllo completo del server.
Crea un nuovo utente amministrativo prima di disabilitare l'accesso root:
# Create new user
sudo adduser adminuser
sudo usermod -aG sudo adminuser
# Disable root login in SSH configuration
sudo nano /etc/ssh/sshd_config
# Change: PermitRootLogin no
sudo systemctl restart sshd
Ciò costringe gli aggressori a indovinare sia il nome utente che la password, aumentando significativamente la sicurezza.
3. Genera una coppia di chiavi SSH
Gli accessi basati su password, soprattutto se le password sono deboli, possono rappresentare una vulnerabilità. L'autenticazione con chiave SSH offre un'alternativa più sicura. Utilizzando chiavi crittografiche anziché password, ti assicuri un metodo di autenticazione più robusto e difficile da decifrare.
Questa misura di sicurezza è particolarmente critica dato questo le credenziali rubate fungono da vettore di attacco iniziale nel 24% delle violazioni dei dati secondo la ricerca sulla sicurezza. Questi attacchi richiedono più tempo per essere rilevati e contenuti rispetto a qualsiasi altro metodo, rendendo essenziale la prevenzione tramite chiavi SSH.
Genera coppie di chiavi SSH per l'autenticazione sicura:
ssh-keygen -t rsa -b 4096
ssh-copy-id username@server-ip
Le chiavi SSH possono essere lunghe fino a 4096 bit, il che le rende esponenzialmente più sicure anche delle password complesse.
4. Abilita l'autenticazione a due fattori
L'autenticazione a due fattori aggiunge un secondo passaggio di verifica oltre alle password. Anche se gli aggressori ottengono la tua password, non possono accedere al tuo server senza il secondo fattore di autenticazione.
Installa e configura l'autenticazione a due fattori:
sudo apt install libpam-google-authenticator
google-authenticator
Configura la tua app di autenticazione mobile per generare codici basati sul tempo per l'accesso al server.
5. Modificare la porta SSH
La porta SSH predefinita (22) riceve costanti tentativi di attacco da strumenti di scansione automatizzati. Il passaggio a una porta personalizzata riduce l'esposizione a questi attacchi automatizzati. Dato che il il costo medio globale di una violazione dei dati ha raggiunto i 4,88 milioni di dollari nel 2024, anche semplici misure di sicurezza come la modifica delle porte forniscono una protezione preziosa contro le minacce automatizzate.
Per la maggior parte delle distribuzioni Linux:
sudo nano /etc/ssh/sshd_config
# Find: #Port 22
# Change to: Port 2222 (choose a port between 1024-65535)
sudo systemctl restart sshd
Per Ubuntu 23.04 e versioni successive:
sudo nano /lib/systemd/system/ssh.socket
# Update ListenStream=2222
sudo systemctl daemon-reload
sudo systemctl restart ssh.service
Importante: Testa la nuova porta prima di chiudere la sessione corrente:
# Test connection in a new terminal
ssh username@server-ip -p 2222
Aggiorna le regole del tuo firewall per consentire la nuova porta:
sudo ufw allow 2222
sudo ufw delete allow 22 # Remove old rule after testing
Ricordarsi di specificare la nuova porta al momento della connessione: ssh nomeutente@ip-server -p 2222
6. Disabilitare le porte di rete non utilizzate e IPv6
Le porte di rete aperte forniscono punti di ingresso per gli aggressori. Ogni servizio in esecuzione crea potenziali vulnerabilità, quindi disabilita i servizi non necessari e le relative porte associate.
Visualizza le porte attualmente aperte:
sudo netstat -tulpn
# Alternative command
sudo ss -tulpn
Utilizzo iptables per gestire le regole del firewall e chiudere le porte non necessarie.
Disabilita IPv6 se non necessario:
sudo nano /etc/sysctl.conf
# Add these lines:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
# Apply changes
sudo sysctl -p
# Verify IPv6 is disabled
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
# Should return 1
Aggiorna la configurazione di rete (trova il tuo file netplan attuale):
# Find netplan configuration files
ls /etc/netplan/
# Edit your specific configuration file
sudo nano /etc/netplan/[your-config-file].yaml
# Comment out IPv6 configuration lines
sudo netplan apply
7. Configura un firewall
I firewall controllano quale traffico di rete può raggiungere il tuo server. Bloccano le connessioni non autorizzate consentendo il traffico legittimo attraverso porte specificate.
Configurazione rapida dell'UFW:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw enable
Regole firewall essenziali:
| Scopo | Comando | Risultato |
| Consenti HTTP | sudo ufw consenti 80 | Traffico web consentito |
| Consenti HTTPS | sudo ufw consenti 443 | Traffico web sicuro |
| Consenti porta SSH personalizzata | sudo ufw consenti 2222 | SSH sulla porta personalizzata |
| Blocca IP specifico | sudo ufw nega da 192.168.1.100 | IP completamente bloccato |
Controlla lo stato del firewall:
sudo ufw status verbose
Questa configurazione blocca tutto il traffico in entrata tranne le connessioni SSH.
8. Installa applicazioni antimalware e antivirus
I sistemi Linux possono essere infettati da malware che rubano dati, estraggono criptovalute o forniscono accesso backdoor agli aggressori. Il software anti-malware rileva e rimuove queste minacce prima che compromettano il tuo sistema.
Installa ClamAV per una scansione antivirus completa:
sudo apt install clamav clamav-daemon clamav-freshclam
sudo freshclam
sudo systemctl enable clamav-freshclam
sudo systemctl start clamav-freshclam
Esegui scansioni manuali sulle directory critiche:
sudo clamscan -r /home --infected --remove --bell
sudo clamscan -r /var/www --infected --remove
Per una maggiore protezione, installa Maldet insieme a ClamAV:
# Verify URL availability before downloading
wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
tar -xzf maldetect-current.tar.gz
cd maldetect-*
sudo ./install.sh
# Note: Always verify download URLs from official sources before use
Pianifica scansioni automatiche giornaliere con cron:
# Add to crontab: Daily scan at 2 AM
0 2 * * * /usr/bin/clamscan -r /home --quiet --infected --remove
9. Installa uno scanner rootkit
I rootkit sono programmi dannosi che si nascondono nelle profondità del sistema operativo, spesso non rilevati dai software antivirus standard. Possono fornire agli aggressori un accesso permanente al tuo sistema rimanendo invisibili ai normali metodi di rilevamento.
Installa e configura Chkrootkit per il rilevamento dei rootkit:
sudo apt install chkrootkit
sudo chkrootkit | grep INFECTED
Installa RKHunter per una protezione aggiuntiva dal rootkit:
sudo apt install rkhunter
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check
Crea scansioni rootkit settimanali automatizzate:
# Add to crontab: Weekly rootkit scan every Sunday at 3 AM
0 3 * * 0 /usr/bin/rkhunter --cronjob --update --quiet
0 4 * * 0 /usr/bin/chkrootkit | grep INFECTED > /var/log/chkrootkit.log
Se vengono rilevati rootkit, isolare immediatamente il server e prendere in considerazione la reinstallazione completa del sistema operativo, poiché i rootkit possono essere estremamente difficili da rimuovere completamente preservando l'integrità del sistema.
10. Utilizzare Fail2Ban per la prevenzione delle intrusioni
Fail2Ban monitora i tentativi di accesso e blocca automaticamente gli indirizzi IP che mostrano comportamenti dannosi, come ripetuti tentativi di accesso falliti.
Installazione rapida:
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
Impostazioni di protezione SSH essenziali:
[sshd]
enabled = true
port = ssh
maxretry = 3
bantime = 3600
findtime = 600
Valori di configurazione chiave:
| Collocamento | Valore | Senso |
| maxretry | 3 | Tentativi falliti prima del ban |
| bantime | 3600 | Durata del divieto (1 ora) |
| findtime | 600 | Finestra temporale (10 minuti) |
Avvia e abilita:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
Controlla gli IP vietati:
sudo fail2ban-client status sshd
11. Attiva SELinux
Security-Enhanced Linux (SELinux) fornisce controlli di accesso obbligatori che limitano ciò che i programmi possono fare, anche se sono compromessi. Crea un livello di sicurezza aggiuntivo oltre alle autorizzazioni Linux standard.
Controlla e abilita SELinux:
sestatus
sudo setenforce enforcing
Le policy SELinux impediscono alle applicazioni compromesse di accedere a risorse di sistema non autorizzate. Segui questi brevi istruzioni per ottenere il massimo da SELinux per una configurazione ottimale.
12. Proteggi file, directory ed e-mail
Crittografa i file sensibili per proteggerli da accessi non autorizzati, anche se gli aggressori ottengono l'accesso al sistema. Ciò è essenziale per le configurazioni Linux sicure di file server che gestiscono dati sensibili.
Utilizza GPG per la crittografia dei file:
gpg --cipher-algo AES256 --compress-algo 1 --s2k-mode 3 --s2k-digest-algo SHA512 --s2k-count 65536 --symmetric filename
Imposta le autorizzazioni file appropriate per limitare l'accesso:
chmod 600 sensitive-file # Owner read/write only
chmod 700 private-directory # Owner access only
13. Effettua regolarmente i backup
I backup regolari garantiscono il ripristino da incidenti di sicurezza, guasti hardware o perdita accidentale di dati. I backup automatizzati riducono il rischio di errore umano e costituiscono una componente fondamentale delle strategie di hosting VPS sicure.
Crea script di backup automatizzati:
#!/bin/bash
tar -czf /backup/$(date +%Y%m%d)-system.tar.gz /home /etc /var/log
Archivia i backup in più posizioni, incluso l'archiviazione fuori sede, seguendo la regola di backup 3-2-1.
14. Creare il partizionamento del disco
Il partizionamento del disco separa i file di sistema dai dati dell'utente, limitando i danni nel caso in cui una partizione venga compromessa. Inoltre impedisce che l'esaurimento dello spazio su disco in un'area si ripercuota sull'intero sistema.
Schema di partizione consigliato:
/stivale – 500 MB (file di avvio)
/ – 20 GB (file di sistema)
/casa – 50GB (dati utente)
/var – 10 GB (registri e database)
/tmp – 2 GB (file temporanei)
scambio – 2 GB (memoria virtuale)
Montare partizioni temporanee con restrizioni di sicurezza:
# Add to /etc/fstab for permanent mounting
echo "tmpfs /tmp tmpfs defaults,noexec,nosuid,nodev,size=2G 0 0" >> /etc/fstab
echo "tmpfs /var/tmp tmpfs defaults,noexec,nosuid,nodev,size=1G 0 0" >> /etc/fstab
# Applicare immediatamente
sudo mount -a
Verificare la sicurezza della partizione:
mount | grep -E "(noexec|nosuid|nodev)"
df -h # Check disk usage by partition
IL noexec l'opzione impedisce l'esecuzione di eseguibili dannosi, nosuido disabilita i bit set-user-ID e nodov impedisce la creazione di file di dispositivo nelle directory temporanee.
15. Monitorare i registri del server
I registri del server registrano tutte le attività del sistema, fornendo segnali premonitori di incidenti di sicurezza. Il monitoraggio regolare dei log aiuta a identificare modelli insoliti prima che diventino minacce gravi.
Registri chiave da monitorare:
| File di registro | Scopo | Comando |
| /var/log/auth.log (Debian/Ubuntu)<br>/var/log/secure (CentOS/RHEL) | Tentativi di accesso | sudo tail -f /var/log/auth.log<br>sudo tail -f /var/log/secure |
| /var/log/syslog (Debian/Ubuntu)<br>/var/log/messaggi (CentOS/RHEL) | Messaggi di sistema | sudo tail -f /var/log/syslog<br>sudo tail -f /var/log/messages |
| /var/log/apache2/access.log (Debian/Ubuntu)<br>/var/log/httpd/access_log (CentOS/RHEL) | Traffico web | sudo tail -f /var/log/apache2/access.log<br>sudo tail -f /var/log/httpd/access_log |
| /var/log/fail2ban.log | IP bloccati | sudo tail -f /var/log/fail2ban.log |
Comandi di analisi rapida del registro:
# Failed login attempts (adjust path for your distribution)
sudo grep "Failed password" /var/log/auth.log | tail -10
# Successful logins
sudo grep "Accepted" /var/log/auth.log | tail -10
# Large file transfers (adjust path for your web server)
sudo awk '{print $10}' /var/log/apache2/access.log | sort -n | tail -10
Monitoraggio automatico dei registri:
# Install logwatch for daily summaries
sudo apt install logwatch
sudo logwatch --detail Med --mailto [email protected] --service All
Configura la rotazione dei registri per evitare che i file di registro consumino troppo spazio su disco.
16. Utilizza password complesse
Le password complesse resistono agli attacchi di forza bruta e agli attacchi del dizionario. Le password deboli possono essere violate in pochi minuti utilizzando la moderna potenza di calcolo.
Requisiti della password:
- Minimo 12 caratteri
- Mix di lettere maiuscole, minuscole, numeri e simboli
- Nessuna parola del dizionario o informazione personale
- Unico per ogni account
Utilizza i gestori di password per generare e archiviare password complesse in modo sicuro. In combinazione con altri modelli di sicurezza Linux con principi di diagramma, le password complesse formano più livelli difensivi che proteggono dall'accesso non autorizzato.
17. Preferisci SFTP a FTP
L'FTP standard trasmette dati e credenziali in testo semplice, rendendoli visibili agli intercettatori della rete. SFTP crittografa tutta la trasmissione dei dati, proteggendo le informazioni sensibili e supportando architetture Linux di file server sicure.
Configura l'accesso solo SFTP:
sudo nano /etc/ssh/sshd_config
# Add: Subsystem sftp internal-sftp
Disabilitare i servizi FTP standard per eliminare il rischio per la sicurezza:
sudo systemctl disable vsftpd
sudo systemctl stop vsftpd
18. Abilita gli aggiornamenti automatici CMS
I sistemi di gestione dei contenuti (WordPress, Drupal, Joomla) rilasciano spesso patch di sicurezza. L'abilitazione degli aggiornamenti automatici garantisce che le vulnerabilità critiche vengano risolte tempestivamente.
Per WordPress, aggiungi a wp-config.php:
define('WP_AUTO_UPDATE_CORE', true);
add_filter('auto_update_plugin', '__return_true');
add_filter('auto_update_theme', '__return_true');
Monitorare i registri degli aggiornamenti per garantire compatibilità e funzionalità.
19. Disabilita caricamenti FTP anonimi
L'FTP anonimo consente a chiunque di caricare file sul tuo server senza autenticazione. Ciò può portare il tuo server a ospitare contenuti illegali, malware o a diventare un punto di distribuzione per attacchi.
Configura vsftpd per richiedere l'autenticazione:
sudo nano /etc/vsftpd.conf
# Disabilita l'accesso anonimo
anonymous_enable=NO
# Abilita l'autenticazione dell'utente locale
local_enable=YES
write_enable=YES
local_umask=022
# Limita gli utenti alle loro directory home
chroot_local_user=YES
allow_writeable_chroot=YES
# Impostazioni di sicurezza
ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
Riavviare il servizio FTP:
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
Crea account utente FTP con autorizzazioni limitate:
sudo adduser ftpuser
sudo usermod -d /var/ftp/uploads ftpuser
sudo chown ftpuser:ftpuser /var/ftp/uploads
sudo chmod 755 /var/ftp/uploads
Monitorare i registri di accesso FTP per attività sospette:
sudo tail -f /var/log/vsftpd.log
20. Configura la protezione dalla forza bruta
Implementa più livelli di protezione dalla forza bruta oltre Fail2Ban per difenderti da sofisticati attacchi automatizzati.
Configura protezioni aggiuntive:
# Limit SSH connection attempts
sudo nano /etc/ssh/sshd_config
# Add: MaxAuthTries 3
# Add: ClientAliveInterval 300
# Add: ClientAliveCountMax 2
Utilizza strumenti come DenyHosts insieme a Fail2Ban per una protezione completa.
Conclusione
Per proteggere un VPS Linux è necessario implementare più livelli di difesa, dalle modifiche alla configurazione di base ai sistemi di monitoraggio avanzati. Inizia con misure di sicurezza fondamentali (aggiornamenti software, configurazione firewall, rafforzamento SSH) prima di aggiungere strumenti sofisticati come il rilevamento delle intrusioni e il monitoraggio automatizzato.
Un server Linux sicuro richiede una manutenzione continua, non una configurazione una tantum. Esamina regolarmente i registri, aggiorna il software e adatta le misure di sicurezza man mano che le minacce evolvono. L'investimento in una corretta configurazione della sicurezza previene costose violazioni dei dati e mantiene l'affidabilità del sistema.
Ricorda che queste misure di sicurezza lavorano insieme: nessuna tecnica singola fornisce una protezione completa. L’implementazione di tutte e 20 le strategie crea livelli di sicurezza sovrapposti che riducono significativamente la vulnerabilità del tuo server agli attacchi comuni. Che tu abbia bisogno di configurazioni Linux sicure di file server o di protezione generale dell'hosting VPS sicuro, questi passaggi fondamentali forniscono una sicurezza essenziale.