Servizi Informatici e Editoriali: il blog

Un blog in cui non si parlerà solo di tecnica ma di tante altre cose.

Joomla - Proteggiamo la directory di administrator

Inviato da il in Joomla
  • Dimensione carattere: Maggiore Minore
  • Visite: 18065
  • 0 Commenti
  • Stampa

Proteggere la directory di administrator di JoomlaSe Joomla è in esecuzione sotto un server Apache con il mod_write attivo, possiamo utilizzare il file .htaccess per gestire diverse funzioni, che vanno dalla gestione degli url, al redirect, all’impostazione della pagine di errore e alla definizione dei permessi di accesso alle directory.

In questo caso vedremo come utilizzare l’.htaccess per limitare l’accesso a delle particolari directory, in questo caso la directory di amministrazione di Joomla (administrator), tramite password. Questo metodo è possibile utilizzarlo con qualsiasi altra directory.

All’interno della cartella administrator creeremo il file .htaccess che conterrà le seguenti direttive:

AuthUserFile /percorsoRootSito/administrator/.htpasswd
AuthGroupFile /dev/null
AuthName "Password Protected Area"
AuthType Basic

<limit GET POST>
Require valid-user
</limit>

Le direttive hanno il seguente significato:

  • AuthUserFile specifica il percorso completo, dove si trova il file delle password degli utenti (.htpasswd). È preferibile, per ragioni di sicurezza, che la directory contente, il file, sia posta a un livello superiore della directory pubblica del sito. Ad esempio sotto XAMPP potremmo avere un path del genere: C:\xampp\htdocs\secret/.htpasswd
  • AuthGroupFile specifica il percorso completo, dove si trova il file dei gruppi di utenti (.htgroup). Server per separare gli utenti in gruppi, nel caso ci siano diverse aree alle quali devono accedere diversi gruppi di utenti.
  • AuthName contiene un messaggio che sarà visualizzato dal browser all'atto della richiesta di autenticazione.
  • AuthType indica quale metodo di autenticazione dovrà essere utilizzato da Apache quando stabilisce una connessione con un client. I metodi di autenticazione sono due: basic o digest. Basic è la forma di controllo più semplice e più insicura, poiché applica una codifica 64bit sulle credenziali, ma le invia in chiaro nell'header. Invece il metodo Digest non passa nessuna credenziale in chiaro rendendo quindi molto difficile il cracking di quest'ultime c'è però da specificare che non tutti i browser siano compatibili con questa tipologia di autenticazione.
  • Require è la direttiva che ci permette di indicare chi può avere accesso alla directory che si vuole proteggere. In pratica tramite questa direttiva possiamo specificare in vari modi quali sono gli utenti e i gruppi che potranno accedere alla directory:
    • valid-user: ogni utente (dopo l'autenticazione) contenuto nel file specificato nella direttiva AuthUserFile avrà accesso alla directory.
    • valid-group: ogni utente appartenente ai gruppi contenuti nel file specificato dalla direttiva AuthGroupFile avrà accesso, sempre se l'autenticazione è andata a buon fine.
    • user utente1 utente2: possiamo specificare quali utenti avranno l'accesso.
    • group gruppo1 gruppo2: in questo caso specifichiamo gli utenti dei gruppi che potranno accedere, dopo l'autenticazione alla directory.

A questo punto dobbiamo creare il file delle password.

Il file .htpasswd è un file che associa un utente con la sua password. Nell’esempio seguente l’utente pippo è associato alla password pluto codificata in MD5:

pippo:$apr1$KkfxjlaR$svG/QAZT8wboHvSEqLUfz0

Per la creazione del file .htpasswd possiamo avvalerci di due possibilità:

  • tramite telnet/SSH
  • tramite tool di encription on-line

 

Comandi via telnet/ssh

Avendo a disposizione un accesso via SSH al server, dopo aver fatto il logon, ci si deve spostare nella directory, dove sarà inserito il file .htpasswd (è preferibile sia a un livello superiore della directory).

# htpasswd –c /percorso-file-htpasswd/.htpasswd utente1
Password: ********
Retype Password: ********

Una volta creato il file e aggiunto l'utente utente1 è possibile aggiungere altri utenti semplicemente ripetendo il comando precedente, ma omettendo l'opzione -c (create).

# htpasswd /percorso-file-htpasswd/.htpasswd utente2
Password: ********
Retype Password: ********

Queste due operazioni fanno in modo che la directory che si vuole proteggere sia accessibile ai soli utente1 e utente2, se, l’autenticazione andrà a buon fine.

 

Tool di encription on-line

È il metodo più semplice generare le password criptate, specialmente se non si ha l’accesso via telnet/SSH al server. Dei tool molto interessanti li trovate sul sito http://www.htaccesstools.com:

Htpasswd Generator: http://www.htaccesstools.com/htpasswd-generator per generare il file .htpasswd con codifica della password in MD5.

Htaccess Authentication: http://www.htaccesstools.com/htaccess-authentication per generare il file .htaccess.

Questa soluzione rende necessaria una modifica manuale del file .htpasswd, nel casi si voglia autorizzare altri utenti.

Nel sito segnalato, nella pagina che permette la creazione del file .htaccess, c’è anche un link che visualizza una pagina dal titolo “How to find the full path to a file using PHP” utile per ricavare il path completo di dove avete intenzione di piazzare il file .htpasswd (http://www.htaccesstools.com/articles/full-path-to-file-using-php).

Per comodità riporto il codice:

<?php
$dir = dirname(__FILE__);
echo "<p>Full path to this dir: " . $dir . "</p>";
echo "<p>Full path to a .htpasswd file in this dir: " . $dir . "/.htpasswd" . "</p>";
?>

Commenti

  • Nessun commento ancora fatto. Sii il primo a inserire un commento

Lascia il tuo commento

Ospite Lunedì, 17 Dicembre 2018

Archivio