Moodle

SSH e SFTP per Gestione Server Moodle

| 6 min di lettura
SSH e SFTP per Gestione Server Moodle
Questo articolo fa parte della guida: Engagement e Motivazione nell'Apprendimento Online

SSH Moodle è il binomio fondamentale per qualsiasi amministratore che gestisca una piattaforma e-learning in produzione. L'accesso remoto via SSH (Secure Shell) e il trasferimento file via SFTP (SSH File Transfer Protocol) sono le operazioni quotidiane che permettono di mantenere, aggiornare e risolvere problemi su server Moodle senza accesso fisico alla macchina. In un contesto in cui il 78% delle installazioni Moodle gira su server Linux remoti (dati Moodle HQ 2024), padroneggiare la gestione remota è una competenza non negoziabile.

Configurazione SSH per server Moodle: setup sicuro

La sicurezza accesso al server inizia dalla corretta configurazione del servizio SSH. Una configurazione di base per un server Moodle in produzione prevede interventi specifici sul file /etc/ssh/sshd_config:

  • Disabilitare l'accesso root: impostare PermitRootLogin no. Creare un utente dedicato (es. moodleadmin) con privilegi sudo per le operazioni che richiedono root.
  • Usare solo autenticazione a chiave: impostare PasswordAuthentication no e PubkeyAuthentication yes. Le chiavi SSH eliminano il rischio di attacchi brute-force sulle password.
  • Cambiare la porta predefinita: spostare SSH dalla porta 22 a una porta non standard (es. 2222 o 49152). Non è sicurezza reale, ma riduce del 99% i tentativi automatizzati di accesso.
  • Limitare gli utenti: AllowUsers moodleadmin deployer restringe l'accesso SSH a specifici account.
  • Timeout di inattività: ClientAliveInterval 300 e ClientAliveCountMax 2 disconnettono le sessioni inattive dopo 10 minuti.

Generazione e gestione delle chiavi SSH

La generazione di chiavi robuste per l'SSH Moodle segue questa procedura:

  • Generare una coppia di chiavi Ed25519 (più sicura e veloce di RSA): ssh-keygen -t ed25519 -C "moodleadmin@server-prod"
  • Proteggere la chiave privata con una passphrase forte.
  • Copiare la chiave pubblica sul server: ssh-copy-id -p 2222 moodleadmin@server-ip
  • Verificare i permessi: la directory ~/.ssh deve avere permessi 700, il file authorized_keys permessi 600.
  • Per team con più amministratori, ogni persona deve avere la propria coppia di chiavi. Mai condividere chiavi private.

SFTP server: trasferimento file sicuro per Moodle

L'SFTP server è il metodo raccomandato per trasferire file da e verso il server Moodle. A differenza di FTP tradizionale, SFTP crittografa l'intera comunicazione (credenziali e dati) attraverso il tunnel SSH esistente.

Le operazioni SFTP più comuni nell'amministrazione server Moodle includono:

  • Upload di plugin: caricare la directory del plugin in /var/www/html/moodle/mod/ o /var/www/html/moodle/local/ a seconda del tipo.
  • Upload di temi: trasferire il tema personalizzato in /var/www/html/moodle/theme/.
  • Backup e download di moodledata: scaricare i file caricati dagli utenti per backup locale o migrazione.
  • Aggiornamento file di configurazione: modificare config.php per cambiare parametri del database, URL o impostazioni di cache.

Client SFTP raccomandati

  • FileZilla: gratuito, cross-platform, supporta SFTP nativo. Configurare la connessione con protocollo "SFTP - SSH File Transfer Protocol" e il file della chiave privata.
  • WinSCP: solo Windows, interfaccia a due pannelli, supporta script automatizzati per trasferimenti programmati.
  • Cyberduck: macOS e Windows, integrazione con servizi cloud, bookmark per connessioni frequenti.
  • Linea di comando: sftp -P 2222 moodleadmin@server-ip per operazioni rapide. Comandi chiave: put (upload), get (download), ls, cd, mkdir.

Operazioni di gestione remota Moodle via SSH

La gestione remota quotidiana di Moodle via SSH comprende operazioni critiche che ogni amministratore deve conoscere:

Aggiornamento di Moodle

La procedura sicura di aggiornamento via SSH prevede:

  • Backup del database: mysqldump -u root -p moodle > /backup/moodle_$(date +%Y%m%d).sql
  • Backup del codice: cp -r /var/www/html/moodle /backup/moodle_code_$(date +%Y%m%d)
  • Attivare la modalità manutenzione: php /var/www/html/moodle/admin/cli/maintenance.php --enable
  • Scaricare la nuova versione e sostituire i file (mantenendo config.php e i plugin personalizzati)
  • Eseguire l'upgrade: php /var/www/html/moodle/admin/cli/upgrade.php
  • Disattivare la manutenzione: php /var/www/html/moodle/admin/cli/maintenance.php --disable

Monitoraggio e diagnostica

  • Stato del servizio web: systemctl status apache2 o systemctl status nginx
  • Log errori PHP: tail -f /var/log/apache2/error.log per identificare errori in tempo reale
  • Spazio disco: df -h per verificare che moodledata non stia saturando il disco (causa frequente di crash)
  • Processi PHP: ps aux | grep php per identificare processi bloccati o che consumano troppa memoria
  • Cron Moodle: crontab -l -u www-data per verificare che il cron job sia configurato e attivo

CLI di Moodle: comandi essenziali

Moodle include decine di script CLI in admin/cli/ utilizzabili via SSH Moodle:

  • php admin/cli/purge_caches.php - svuota tutte le cache (primo intervento per problemi post-aggiornamento)
  • php admin/cli/install_database.php - installazione iniziale da riga di comando
  • php admin/cli/reset_password.php - reset password di un utente
  • php admin/cli/kill_all_sessions.php - disconnette tutti gli utenti (utile prima di interventi critici)

Sicurezza accesso avanzata: hardening del server

Oltre alla configurazione base, la sicurezza accesso al server Moodle richiede misure aggiuntive:

  • Fail2ban: installare e configurare fail2ban per bannare automaticamente gli IP che tentano accessi SSH falliti. Configurazione consigliata: ban dopo 3 tentativi falliti in 10 minuti, durata ban 1 ora.
  • Firewall (UFW o iptables): aprire solo le porte necessarie: SSH (porta custom), HTTP (80), HTTPS (443). Bloccare tutto il resto.
  • Two-factor authentication: per server critici, aggiungere Google Authenticator come secondo fattore per SSH tramite il modulo PAM libpam-google-authenticator.
  • VPN: per ambienti enterprise, rendere SSH accessibile solo tramite VPN aziendale, eliminando completamente l'esposizione su internet.
  • Audit log: configurare auditd per registrare tutti i comandi eseguiti via SSH. Essenziale per compliance e per tracciare le modifiche in team multi-admin.

La padronanza di SSH e SFTP è la base dell'amministrazione server Moodle professionale. Un accesso sicuro, operazioni CLI efficienti e monitoraggio proattivo sono ciò che distingue una piattaforma stabile da una che subisce downtime evitabili.

HIE Learning gestisce l'infrastruttura server di piattaforme Moodle per aziende e enti di formazione, garantendo sicurezza, performance e assistenza H24. Dalla configurazione iniziale del server all'hardening SSH, dal monitoraggio proattivo agli aggiornamenti programmati, il team HIE Learning si occupa dell'amministrazione server perché tu possa concentrarti sui contenuti formativi. Richiedi una consulenza sulla sicurezza del tuo server Moodle.

Domande frequenti

Cos'è SSH e perché è essenziale per gestire un server Moodle?

SSH (Secure Shell) è un protocollo di rete che permette un accesso remoto sicuro e criptato a un server. Per Moodle, è essenziale perché consente agli amministratori di eseguire comandi, gestire il sistema, applicare aggiornamenti e risolvere problemi direttamente dalla riga di comando del server, senza necessità di accesso fisico alla macchina.

Quali sono le configurazioni SSH fondamentali per la sicurezza di un server Moodle?

Le configurazioni fondamentali includono la disabilitazione dell'accesso diretto come root, l'uso esclusivo dell'autenticazione a chiave pubblica/privata invece delle password, e la modifica della porta di ascolto predefinita (22). Queste misure, da applicare nel file `sshd_config`, riducono drasticamente il rischio di accessi non autorizzati e attacchi brute-force.

Qual è la differenza tra SSH e SFTP nella gestione di Moodle?

SSH viene utilizzato principalmente per l'esecuzione di comandi e l'amministrazione del server via terminale. SFTP (SSH File Transfer Protocol), invece, è il protocollo utilizzato per trasferire file in modo sicuro attraverso una connessione cifrata SSH, ed è essenziale per caricare plugin, temi, backup o modificare file di configurazione di Moodle.

È necessario un utente speciale per gestire Moodle via SSH?

Sì, è una pratica di sicurezza consigliata creare un utente dedicato (ad esempio `moodleadmin`) per le operazioni di amministrazione. A questo utente vanno assegnati i privilegi `sudo` necessari, mentre l'accesso diretto come utente `root` via SSH deve essere disabilitato per proteggere il sistema.

Condividi questo articolo:

Hai bisogno di supporto per il tuo progetto e-learning?

Contattaci per una consulenza gratuita.

Richiedi informazioni