Se gestisci un server Linux, conoscere e risolvere gli errori di accesso SSH è fondamentale. Uno dei problemi più comuni è il messaggio di errore ‘Permission Denied’, che può derivare da una cattiva configurazione dei permessi dei file o da un attacco brutale. In questo articolo, esploreremo come affrontare questo problema specifico e implementare misure di sicurezza per migliorare la resilienza del tuo server.
Prerequisiti
- Un server Linux con l’accesso SSH abilitato.
- Privilegi di root o di sudo per apportare modifiche ai permessi.
- Fail2Ban installato per la protezione contro gli accessi non autorizzati.
Step 1: Verifica dei Permessi delle Chiavi SSH
Il primo passo per risolvere il problema di accesso negato è controllare i permessi della chiave privata SSH sul client che stai utilizzando per accedere al server.
chmod 600 ~/.ssh/id_rsa
# Output: Nessun output, il comando verrà eseguito correttamente senza messaggi. Perché funziona: Questo comando limita i permessi della chiave privata a sola lettura per l'utente, requisito necessario per SSH.
Step 2: Controllo dei Permessi della Directory .ssh
La directory .ssh deve avere permessi corretti al fine di garantire un accesso sicuro.
chmod 700 ~/.ssh
# Output: Nessun output, comando eseguito correttamente.
Perché funziona: Questo comando assicura che solo l'utente possa accedere alla directory .ssh.
Step 3: Verifica e Correzione dei Permessi sul Server
Accedi direttamente al server e verifica i permessi dei file di configurazione di SSH.
ls -ld /etc/ssh
chmod 755 /etc/ssh
# Output: Nessun output, output normale per il comando ls è la lista dei permessi.
Perché funziona: Assicurarsi che la directory SSH abbia i permessi corretti è essenziale per il funzionamento della configurazione di SSH.
Step 4: Configurazione di Fail2Ban
Fail2Ban è uno strumento che protegge il server da tentativi di accesso non autorizzati. Configureremo Fail2Ban per monitorare gli accessi SSH e bannare gli IP sospetti.
sudo nano /etc/fail2ban/jail.local
All'interno del file, aggiungi la seguente configurazione:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 600
# Output: Nessun output, il comando nano si aprirà per l'editing.
Perché funziona: Configurando Fail2Ban, il server sarà in grado di bannare gli IP dopo un numero configurabile di tentativi di accesso falliti.
Verifica Finale
Per assicurarti che tutto funzioni come previsto, prova ad accedere nuovamente al tuo server via SSH. Se i permessi e la configurazione sono corretti, non dovresti più ricevere l'errore ‘Permission Denied’.
Troubleshooting
Se continuassi a riscontrare l'errore, ecco alcune soluzioni a problemi comuni:
-
Errore: Permission denied (publickey)
Cause: Chiave privata non riconosciuta o permessi errati.
Fix: Esegui
chmod 600 ~/.ssh/id_rsaechmod 700 ~/.ssh. -
Errore: Connection refused
Cause: SSH non in esecuzione o porta sbagliata.
Fix: Verifica che il servizio SSH sia attivo con
sudo systemctl status ssh. -
Errore: Too many authentication failures
Cause: Troppi tentativi di autenticazione.
Fix: Utilizza l'opzione
-o IdentitiesOnly=yesdurante la connessione.
Conclusione
Risolvendoti l'errore 'Permission Denied' su SSH e implementando Fail2Ban, stai migliorando significativamente la sicurezza del tuo server. Come prossimo passo, considera di eseguire regolarmente audit di sicurezza per mantenere il tuo ambiente protetto.
Commenti (0)
Nessun commento ancora.
Segnala contenuto
Elimina commento
Eliminare definitivamente questo commento?
L'azione non si può annullare.