Messa in sicurezza del sito
Moderator: magallo
Messa in sicurezza del sito
Questo è un miniHowto per avere un minimo di sicurezza.
E' aperto ai contributi
1. Non utilizzate come username admin. Utilizzate semmai il vostro nomecognome o un vostro pseudonimo (ma non il vostro nome nel forum!)
2. Cambiare il nome della directory di admin. Questa directory non è fissa, rinominate la directory con un nome coerente ma non banale e possibilmente in italiano tipo (sceglietene un altro!!): amministra_cms, pannello_cmsms, controllodelsito, modificaeconfigura ......
Ricordarsi di modificare il config.php con il nuovo nome: $config['admin_dir'] = 'XXXXXXXX';
3. Proteggete la directory con una ulteriore password. In genere tutti gli hosting hanno una utility per costruire directory private, potete inserire uno user e password più blandi (deve andare bene per tutti quelli che accedono nell'area admin) ma è sempre un ulteriore step in termini di sicurezza
4. Permessi di config.php. Per l'installazione e gli Upgrade il file deve avere permessi 777 (read-write-execute per tutti), appena completata l'operazione portare i permessi a 444 (sola lettura per tutti) o, se funziona, addirittura a 440. Come cambiarli? Utilizzate un client FTP o il FileManager del vostro Pannello di hosting che supporti il cambio permessi (al giorno d'oggi non credo che ve ne siano che non possano fare questo!)
5. Permessi cartella tmp. Teoricamente la cartella tmp (con le sottocartelle) dovrebbe essere 777, inserite prima questi permessi, testate il sito (navigate un pò) e poi abbassate prima a 775 e testate di nuovo il sito, se va bene abbassate ancora a 755 e ritestate ancora, rimane (se funziona) 750 (sotto di questo è praticamente impossibile che funzioni!). Come cambiarli? Vedere il punto 4
6. Permessi cartella uploads. Esattamente come il caso precedente ma testatelo con un upload di una immagine e controllando che si veda "direttamente" dal browser chiamando http://www.miosito.it/uploads/images/[i]images.jpg[/i]. Come cambiarli? Vedere il punto 4
Inserite poi in Global settings (Configurazioni globali) un umask di 002 per avere meno problemi nella creazione dei thumb (miniature)
7. Contributi? (in verità ci sono altri punti ma sono per utenti molto avanzati perchè si arriva a cambiare anche il codice php e quindi bisogna poi ricordarsi ad ogni aggiornamneto di cambiare il codice)
Alby
E' aperto ai contributi
1. Non utilizzate come username admin. Utilizzate semmai il vostro nomecognome o un vostro pseudonimo (ma non il vostro nome nel forum!)
2. Cambiare il nome della directory di admin. Questa directory non è fissa, rinominate la directory con un nome coerente ma non banale e possibilmente in italiano tipo (sceglietene un altro!!): amministra_cms, pannello_cmsms, controllodelsito, modificaeconfigura ......
Ricordarsi di modificare il config.php con il nuovo nome: $config['admin_dir'] = 'XXXXXXXX';
3. Proteggete la directory con una ulteriore password. In genere tutti gli hosting hanno una utility per costruire directory private, potete inserire uno user e password più blandi (deve andare bene per tutti quelli che accedono nell'area admin) ma è sempre un ulteriore step in termini di sicurezza
4. Permessi di config.php. Per l'installazione e gli Upgrade il file deve avere permessi 777 (read-write-execute per tutti), appena completata l'operazione portare i permessi a 444 (sola lettura per tutti) o, se funziona, addirittura a 440. Come cambiarli? Utilizzate un client FTP o il FileManager del vostro Pannello di hosting che supporti il cambio permessi (al giorno d'oggi non credo che ve ne siano che non possano fare questo!)
5. Permessi cartella tmp. Teoricamente la cartella tmp (con le sottocartelle) dovrebbe essere 777, inserite prima questi permessi, testate il sito (navigate un pò) e poi abbassate prima a 775 e testate di nuovo il sito, se va bene abbassate ancora a 755 e ritestate ancora, rimane (se funziona) 750 (sotto di questo è praticamente impossibile che funzioni!). Come cambiarli? Vedere il punto 4
6. Permessi cartella uploads. Esattamente come il caso precedente ma testatelo con un upload di una immagine e controllando che si veda "direttamente" dal browser chiamando http://www.miosito.it/uploads/images/[i]images.jpg[/i]. Come cambiarli? Vedere il punto 4
Inserite poi in Global settings (Configurazioni globali) un umask di 002 per avere meno problemi nella creazione dei thumb (miniature)
7. Contributi? (in verità ci sono altri punti ma sono per utenti molto avanzati perchè si arriva a cambiare anche il codice php e quindi bisogna poi ricordarsi ad ogni aggiornamneto di cambiare il codice)
Alby
Re: Messa in sicurezza del sito
Ottimo.
Grazie per gli accorgimenti.
Grazie per gli accorgimenti.
Re: Messa in sicurezza del sito
Ciao Alby,
buona giornata.
In aggiunta alla tua guida, molto ben fatta, si potrebbe integrare qualche suggerimento relativo a PHP e Apache
Il mio piccolo contributo è questo:
Per PHP settare in php.ini almeno queste impostazioni minime
e poi forse ma non confermato...
Per Apache:
dentro .htaccess aggiungere
per fornire un errore 403 al "malizioso"
Correggimi eventuali inesattezze.
Ciao
blast
buona giornata.
In aggiunta alla tua guida, molto ben fatta, si potrebbe integrare qualche suggerimento relativo a PHP e Apache
Il mio piccolo contributo è questo:
Per PHP settare in php.ini almeno queste impostazioni minime
Code: Select all
disable_functions = exec, show_source, shell_exec, system, popen, proc_open, proc_nice, ini_restore, passthru,dl
expose_php = Off
display_errors = Off
log_errors = On
register_globals = Off
allow_url_fopen = Off
allow_url_include = Off
Code: Select all
magic_quotes_gpc Off
dentro .htaccess aggiungere
Code: Select all
RewriteEngine On
#Filtra 'URI contenenti"http:"
RewriteCond % {QUERY_STRING} http\: [OR]
#Filtra 'URI contenenti una "["
RewriteCond % {QUERY_STRING} \[ [OR]
#Filtra l'URI contenenti una "]"
RewriteCond % {QUERY_STRING} \] [OR]
#Filtra l'URI contenenti "<__script__>"
RewriteCond % {QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
#Filtra script che cercano di settare una variabile PHP GLOBALS via URL
RewriteCond % {QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
#Filtra script che cercano di modificare una variabile _REQUEST via URL
RewriteCond % {QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^.*$ - [F,L]
Correggimi eventuali inesattezze.
Ciao
blast
Last edited by blast2007 on Tue Jan 22, 2008 3:35 pm, edited 1 time in total.
Re: Messa in sicurezza del sito
Dopo aver letto questo post, si potrebbero aggiungere anche queste due istruzioni dentro al file .htaccess per evitare query UNION e quindi eventuali SQL injection future.
Modificare la sezione di .htaccess
in questo modo
P.S. pare che sulla 1.2.3 il bug sià comunque già stato corretto, ma prevenire...
Ciao di nuovo
blast
Modificare la sezione di .htaccess
Code: Select all
...
#Filtra script che cercano di modificare una variabile _REQUEST via URL
RewriteCond % {QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^.*$ - [F,L]
Code: Select all
#Filtra script che cercano di modificare una variabile _REQUEST via URL
RewriteCond % {QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) [OR]
#IF the URI contains UNION
RewriteCond %{QUERY_STRING} UNION [OR]
#OR if the URI contains a *
RewriteCond %{QUERY_STRING} \*
#then deny the request (403)
RewriteRule ^.*$ - [F,L]
Ciao di nuovo
blast
Last edited by blast2007 on Wed Feb 13, 2008 3:45 pm, edited 1 time in total.
Re: Messa in sicurezza del sito
Ho pubblicato la guida completa (in inglese) relativa alla messa in sicurezza del sito su CMSMS wiki howto
Grazie Alby per i preziosi contributi
Ciao
blast
Grazie Alby per i preziosi contributi
Ciao
blast
Re: Messa in sicurezza del sito
Ciao a tutti.
Sto facendo il sito della mia associazione e per l'installazione sto seguendo anche questa guida.
L'hosting dove ho il sito però non mi dà la possibilità di modificare nulla, se non quello previsto nelle mie cartelle, quindi solo quanto proposto nel primo post, cioè niente php.ini o htaccess.
Quindi devo ritenere il mio sito poco sicuro, oppure ci sono alternative?
Grazie
Ciao.
Sto facendo il sito della mia associazione e per l'installazione sto seguendo anche questa guida.
L'hosting dove ho il sito però non mi dà la possibilità di modificare nulla, se non quello previsto nelle mie cartelle, quindi solo quanto proposto nel primo post, cioè niente php.ini o htaccess.
Quindi devo ritenere il mio sito poco sicuro, oppure ci sono alternative?
Grazie
Ciao.
Re: Messa in sicurezza del sito
Beh solitamente chi fornisce l'hosting si dovrebbe occupare di questi problemi per la parte sistemistica. Tu dalla tua parte occupati solo di tenere aggiornato tempestivamente CMSMS con l'ultima versione e possibilmente non installare applicazioni di terze parti che possano essere usate per "bucare" il tuo sito.Eugenio wrote: Ciao a tutti.
Sto facendo il sito della mia associazione e per l'installazione sto seguendo anche questa guida.
L'hosting dove ho il sito però non mi dà la possibilità di modificare nulla, se non quello previsto nelle mie cartelle, quindi solo quanto proposto nel primo post, cioè niente php.ini o htaccess.
Quindi devo ritenere il mio sito poco sicuro, oppure ci sono alternative?
Grazie
Ciao.
Ultimo consiglio, ma forse il primo in ordine di importanza crea dei backup regolarmente (se poi automatizzali)
Ciao
blast
Re: Messa in sicurezza del sito
Potresti fare un elenco di queste modifiche?alby wrote:
7. (in verità ci sono altri punti ma sono per utenti molto avanzati perchè si arriva a cambiare anche il codice php e quindi bisogna poi ricordarsi ad ogni aggiornamneto di cambiare il codice)
Alby
grazie
Re: Messa in sicurezza del sito
Be l'elenco è più o meno lungo a secondo di quanto accesso possiede l'utente: dalle modifiche al php.ini, alla costruzione di un ambiente jail, al patch del php, all'encoding del file php ...nervino wrote:Potresti fare un elenco di queste modifiche?alby wrote: 7. (in verità ci sono altri punti ma sono per utenti molto avanzati perchè si arriva a cambiare anche il codice php e quindi bisogna poi ricordarsi ad ogni aggiornamneto di cambiare il codice)
Alby