I server Linux VPS offrono maggiore sicurezza rispetto ai sistemi Windows grazie al loro Linux Security Model integrato. Tuttavia, nessun sistema è infallibile. Gli attaccanti scansionano attivamente milioni di server ogni giorno, cercando vulnerabilità per rubare dati sensibili o usare i server per attacchi su larga scala.
Proteggere un server Linux richiede una configurazione consapevole. I nuovi server VPS vengono forniti con impostazioni predefinite che privilegiano l'accessibilità rispetto alla sicurezza. Comprendere come proteggere le implementazioni di server Linux ti difende dalle minacce in evoluzione mantenendo la funzionalità del sistema. Questa guida ti mostra 20 passaggi essenziali per proteggere l'infrastruttura di server Linux e trasformare il tuo sistema vulnerabile in una fortezza che respinge gli attacchi comuni.
Cos'è Linux VPS?

Un Linux VPS (Virtual Private Server) viene eseguito su piattaforme cloud con risorse dedicate separate dagli altri utenti. A differenza dell'hosting condiviso dove un account compromesso può interessare altri, l'hosting sicuro VPS isola il tuo ambiente. Tuttavia, gli attaccanti continuano a puntare i server VPS non protetti per rubare dati, installare malware o lanciare attacchi contro altri sistemi.
Quando ordini acquista Linux VPS hosting, il sistema operativo viene preinstallato con configurazioni basilari. Queste impostazioni predefinite privilegiano la facilità d'uso rispetto alla sicurezza, lasciando il server esposto ad attacchi automatizzati che cercano vulnerabilità comuni. Per proteggere i dati con server VPS è necessario implementare misure di sicurezza oltre l'installazione standard.
Perché Devi Proteggere i Tuoi Server Linux VPS
I server non protetti diventano bersagli entro poche ore dal lancio. Le organizzazioni affrontano ora un media di 1.876 attacchi informatici a settimana, che rappresenta un aumento del 75% rispetto all'anno precedente. Capire come proteggere l'infrastruttura dei server Linux ti difende da queste minacce costanti che possono compromettere il tuo sistema.
L'aspetto più pericoloso è che gli attacchi sofisticati spesso passano inosservati. Gli attaccanti potrebbero accedere ai tuoi dati, monitorare le comunicazioni o utilizzare le risorse del tuo server senza segni evidenti di intrusione. Proteggere l'hosting VPS richiede misure proattive perché gli attaccanti non annunciano la loro presenza: nel momento in cui noti attività insolita, i danni potrebbero essere già significativi.
Modello di Sicurezza Linux (LSM)

Linux include funzioni 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 utente. Questo crea più livelli di sicurezza che rendono lo sfruttamento più difficile rispetto ad altri sistemi operativi.
Tuttavia, gli LSM non possono prevenire attacchi causati da configurazioni errate, password deboli o software obsoleto. Forniscono la base per proteggere un server Linux, ma richiedono un'implementazione corretta per essere efficaci per hosting Ubuntu VPS e altre distribuzioni Linux.
20 Modi per Proteggere Linux VPS

Queste misure di sicurezza vanno da semplici modifiche di configurazione a sistemi di monitoraggio avanzati. Padroneggiare come proteggere ambienti server Linux richiede implementare questi passaggi sistematicamente per costruire un server Linux protetto che resista ai vettori di attacco comuni.
Ogni tecnica affronta vulnerabilità specifiche che gli attaccanti sfruttano comunemente. I metodi vanno da 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 di sicurezza a lungo termine. L'ordine di implementazione è importante: i passaggi di hardening basilare dovrebbero precedere gli strumenti di monitoraggio avanzato. Insieme, queste 20 strategie creano livelli di sicurezza sovrapposti che riducono significativamente la superficie di attacco del tuo server.
1. Mantieni il Software Aggiornato
Il software obsoleto contiene vulnerabilità di sicurezza note che gli attaccanti sfruttano. Gli sviluppatori di software rilasciano regolarmente patch che correggono queste vulnerabilità, rendendo gli aggiornamenti la tua 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
Attiva notifiche email per gli aggiornamenti disponibili in modo da restare informato sulle patch di sicurezza che richiedono una revisione manuale.
2. Disabilita 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 colpiscono con attacchi a 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
Questo costringe gli attaccanti 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 deboli, possono rappresentare una vulnerabilità. L'autenticazione con chiave SSH offre un'alternativa più sicura. Utilizzando chiavi crittografiche al posto delle password, garantisci un metodo di autenticazione più solido e difficile da compromettere.
Questa misura di sicurezza è particolarmente critica considerando che le credenziali rubate rappresentano il vettore di attacco iniziale nel 24% delle violazioni di dati secondo la ricerca sulla sicurezza. Questi attacchi richiedono più tempo per essere rilevati e contenuti rispetto a qualsiasi altro metodo, rendendo la prevenzione tramite chiavi SSH essenziale.
Genera coppie di chiavi SSH per un'autenticazione sicura:
ssh-keygen -t rsa -b 4096
ssh-copy-id username@server-ip
Le chiavi SSH possono essere lunghe fino a 4096 bit, rendendole 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 attaccanti 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 autenticatore mobile per generare codici basati su tempo per l'accesso al server.
5. Cambia la porta SSH
La porta SSH predefinita (22) riceve costanti tentativi di attacco da strumenti di scansione automatizzati. Cambiare una porta personalizzata riduce l'esposizione a questi attacchi automatizzati. Considerato che il costo medio globale di una violazione di dati ha raggiunto 4,88 milioni di dollari nel 2024, anche semplici misure di sicurezza come i cambi di porta offrono 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 versioni 23.04 e 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 attuale:
# Test connection in a new terminal
ssh username@server-ip -p 2222
Aggiorna le tue regole firewall per consentire la nuova porta:
sudo ufw allow 2222
sudo ufw delete allow 22 # Remove old rule after testing
Ricorda di specificare la nuova porta quando ti connetti: ssh nomeutente@server-ip -p 2222
6. Disabilita le porte di rete inutilizzate e IPv6
Le porte di rete aperte forniscono punti di ingresso per gli attaccanti. Ogni servizio in esecuzione crea vulnerabilità potenziali, quindi disabilita i servizi non necessari e le loro porte associate.
Visualizza le porte attualmente aperte:
sudo netstat -tulpn
# Alternative command
sudo ss -tulpn
Usa iptables per gestire le regole 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 effettivo):
# 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. Configurare un firewall
I firewall controllano quale traffico di rete può raggiungere il tuo server. Bloccano le connessioni non autorizzate permettendo il traffico legittimo attraverso porte specifiche.
Configurazione rapida 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 allow 80 | Traffico web consentito |
| Consenti HTTPS | sudo ufw allow 443 | Traffico web sicuro |
| Consenti porta personalizzata SSH | sudo ufw allow 2222 | SSH su porta personalizzata |
| Blocca IP specifico | sudo ufw deny from 192.168.1.100 | IP completamente bloccato |
Controlla lo stato del firewall:
sudo ufw status verbose
Questa configurazione blocca tutto il traffico in ingresso tranne le connessioni SSH.
8. Installa applicazioni anti-malware e antivirus
I sistemi Linux possono essere infettati da malware che ruba dati, estrae criptovalute o fornisce accesso tramite backdoor agli attaccanti. Il software anti-malware rileva e rimuove queste minacce prima che compromettano il tuo sistema.
Installa ClamAV per una scansione completa dei virus:
sudo apt install clamav clamav-daemon clamav-freshclam
sudo freshclam
sudo systemctl enable clamav-freshclam
sudo systemctl start clamav-freshclam
Esegui scansioni manuali su directory critiche:
sudo clamscan -r /home --infected --remove --bell
sudo clamscan -r /var/www --infected --remove
Per una protezione maggiore, 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 maligni che si annidano profondamente nel sistema operativo, spesso sfuggendo al rilevamento del software antivirus standard. Possono fornire agli attaccanti accesso persistente al tuo sistema rimanendo invisibili ai normali metodi di rilevamento.
Installa e configura Chkrootkit per il rilevamento di rootkit:
sudo apt install chkrootkit
sudo chkrootkit | grep INFECTED
Installa RKHunter per una protezione aggiuntiva contro i rootkit:
sudo apt install rkhunter
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check
Crea scansioni automatiche settimanali dei rootkit:
# 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 i rootkit vengono rilevati, isola immediatamente il server e considera una reinstallazione completa del sistema operativo, poiché i rootkit possono essere estremamente difficili da rimuovere completamente preservando l'integrità del sistema.
10. Usa Fail2Ban per la Prevenzione delle Intrusioni
Fail2Ban monitora i tentativi di accesso e blocca automaticamente gli indirizzi IP che mostrano comportamenti malevoli, come ripetuti tentativi di accesso non riusciti.
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:
| Impostazione | Valore | Significato |
| maxretry | 3 | Tentativi falliti prima del blocco |
| durata del ban | 3600 | Durata del blocco (1 ora) |
| trova orario | 600 | Finestra temporale (10 minuti) |
Avvia e Attiva:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
Verifica gli IP Bloccati:
sudo fail2ban-client status sshd
11. Attivare SELinux
Security-Enhanced Linux (SELinux) fornisce controlli di accesso obbligatori che limitano ciò che i programmi possono fare, anche se compromessi. Crea un livello di sicurezza aggiuntivo oltre i permessi Linux standard.
Verifica e attiva SELinux:
sestatus
sudo setenforce enforcing
Le politiche SELinux impediscono alle applicazioni compromesse di accedere a risorse di sistema non autorizzate. Segui queste istruzioni rapide per sfruttare al meglio SELinux per una configurazione ottimale.
12. Proteggi File, Directory e Email
Crittografa i file sensibili per proteggerli dall'accesso non autorizzato, anche se gli attaccanti ottengono l'accesso al sistema. Questo è essenziale per configurazioni sicure di file server Linux che gestiscono dati sensibili.
Usa 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 i permessi dei file corretti per limitare l'accesso:
chmod 600 sensitive-file # Owner read/write only
chmod 700 private-directory # Owner access only
13. Esegui Backup Regolari
I backup regolari garantiscono il recupero da incidenti di sicurezza, guasti hardware o perdita accidentale di dati. I backup automatizzati riducono il rischio di errore umano e costituiscono un componente critico delle strategie di hosting VPS sicuro.
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 lo storage off-site, seguendo la regola del backup 3-2-1.
14. Creazione delle partizioni disco
La partizione del disco separa i file di sistema dai dati utente, limitando i danni se una partizione viene compromessa. Impedisce inoltre che l'esaurimento dello spazio disco in un'area influisca sull'intero sistema.
Schema di partizione consigliato:
/boot – 500MB (file di avvio)
/ – 20GB (file di sistema)
/home – 50GB (dati utente)
/var – 10GB (log e database)
/tmp – 2GB (file temporanei)
swap – 2GB (memoria virtuale)
Monta le 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
# Candidati subito
sudo mount -a
Verifica la sicurezza delle partizioni:
mount | grep -E "(noexec|nosuid|nodev)"
df -h # Check disk usage by partition
Il noexec l'opzione impedisce l'esecuzione di eseguibili dannosi, nosuid disabilita i bit set-user-ID, e nodev impedisce la creazione di file di dispositivo nelle directory temporanee.
15. Monitoraggio dei log del server
I log del server registrano tutte le attività di sistema, fornendo segnali di avvertimento anticipati per i problemi di sicurezza. Il monitoraggio regolare dei log aiuta a identificare modelli insoliti prima che diventino minacce serie.
Log principali 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/messages (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 | Indirizzi IP bloccati | sudo tail -f /var/log/fail2ban.log |
Comandi rapidi per l'analisi dei log:
# 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 log:
# Install logwatch for daily summaries
sudo apt install logwatch
sudo logwatch --detail Med --mailto [email protected] --service All
Configura la rotazione dei log per evitare che i file di log consumino troppo spazio su disco.
16. Usa password forti
Le password forti resistono agli attacchi brute force e ai dizionari. Le password deboli possono essere craccate in pochi minuti con la potenza di calcolo moderna.
Requisiti della password:
- Minimo 12 caratteri
- Combinazione di maiuscole, minuscole, numeri e simboli
- Nessuna parola da dizionario o informazione personale
- Unica per ogni account
Usa i password manager per generare e archiviare in sicurezza password complesse. Combinate con altri principi del modello di sicurezza Linux con diagramma, le password forti creano più livelli di difesa che proteggono dall'accesso non autorizzato.
17. Preferisci SFTP a FTP
Lo standard FTP trasmette dati e credenziali in testo semplice, rendendoli visibili agli intercettatori di rete. SFTP crittografa tutte le trasmissioni di dati, proteggendo le informazioni sensibili e supportando architetture sicure del file server Linux.
Configura l'accesso solo SFTP:
sudo nano /etc/ssh/sshd_config
# Add: Subsystem sftp internal-sftp
Disabilita i servizi standard FTP per eliminare il rischio di sicurezza:
sudo systemctl disable vsftpd
sudo systemctl stop vsftpd
18. Abilita gli aggiornamenti automatici del CMS
I sistemi di gestione dei contenuti (WordPress, Drupal, Joomla) rilasciano frequentemente patch di sicurezza. Abilitare gli aggiornamenti automatici garantisce che le vulnerabilità critiche vengono corrette 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');
Monitora i log degli aggiornamenti per garantire compatibilità e funzionalità.
19. Disabilita i caricamenti anonimi FTP
FTP anonimo consente a chiunque di caricare file sul tuo server senza autenticazione. Questo può portare il tuo server a ospitare contenuti illegali, malware o 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
Riavvia il servizio FTP:
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
Crea account utente FTP con permessi limitati:
sudo adduser ftpuser
sudo usermod -d /var/ftp/uploads ftpuser
sudo chown ftpuser:ftpuser /var/ftp/uploads
sudo chmod 755 /var/ftp/uploads
Monitora i registri di accesso di FTP per attività sospette:
sudo tail -f /var/log/vsftpd.log
20. Configura la protezione contro attacchi brute force
Implementa più livelli di protezione contro attacchi brute force oltre Fail2Ban per difenderti da attacchi automatizzati sofisticati.
Configura protezioni aggiuntive:
# Limit SSH connection attempts
sudo nano /etc/ssh/sshd_config
# Add: MaxAuthTries 3
# Add: ClientAliveInterval 300
# Add: ClientAliveCountMax 2
Usa strumenti come DenyHosts insieme a Fail2Ban per una protezione completa.
Conclusione
Proteggere un server Linux VPS richiede l'implementazione di più livelli di difesa, dalle modifiche di configurazione di base ai sistemi di monitoraggio avanzati. Inizia con le misure di sicurezza fondamentali (aggiornamenti software, configurazione firewall, hardening di SSH) prima di aggiungere strumenti sofisticati come il rilevamento delle intrusioni e il monitoraggio automatizzato.
Un server Linux sicuro richiede manutenzione continua, non solo una configurazione iniziale. Controlla regolarmente i registri, aggiorna il software e adatta le misure di sicurezza mentre le minacce evolvono. Investire 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 da sola garantisce protezione completa. Implementare 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 sicure di server file Linux o di protezione generale dell'hosting VPS, questi passi fondamentali forniscono la sicurezza essenziale.