Webserver su Raspberry Pi
Come configurare un Raspberry Pi affinché possa essere utilizzato come server per ospitare un sito web domestico (versione PDF)
Sicurezza e spam
Una volta reso il sito pubblicamente accessibile all'interno della vasta rete Internet, sarà indispensabile prendere delle precauzioni aggiuntive per evitare che qualche malintenzionato possa accedervi abusivamente. Le precauzioni di seguito elencate sono solo alcune delle più comuni: del resto, non possiamo certamente descrivervi dettagliatamente come è protetto il nostro server e come si buca! Avvertenza: questa sezione dà solamente alcune indicazioni generali su come proteggere il proprio server. GLG Programs non è da ritenersi responsabile per nessun motivo nel caso in cui il proprio server venga violato, anche dopo aver seguito accuratamente tutti i consigli qui elencati.Sicurezza di SSH
Come abbiamo visto nella Sezione 7.1 (nel PDF),
SSH è uno strumento
molto potente per la gestione da remoto del nostro server; tuttavia,
è anche alquanto pericoloso lasciare che qualcuno possa trovare la vostra
password e accedere al server.
Per limitare i tentativi di accesso al server, è utile cambiare la porta
sulla quale SSH accetta le connessioni, semplicemente modificando
il file /etc/ssh/sshd_config
alla linea che riporta:
Port 22
Sicurezza di Apache con .htaccess
Per negare o permettere l'accesso a determinati utenti oppure a determinati cartelle o files del sito, è possibile inserire delle direttive all'interno dei file.htaccess
(per maggiori informazioni, consultare un
motore di ricerca).
Abilitare gli .htaccess
Per permettere l'utilizzo di questi file, è indispensabile abilitarli nella configurazione dell'host virtuale per il quale si desidera renderli attivi, aggiungendo le seguenti righe:<Directory "/var/www/glgprograms.it/"> Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all <Directory>dove /var/www/glgprograms.it è la cartella entro la quale si desidera abilitare l'utilizzo dei files
.htaccess
.
Esempio di .htaccess
Ad esempio, per negare a chiunque l'accesso ad una determinata cartella del sito, si può creare un file.htaccess
all'interno di tale cartella con
contenuto:
deny from all
Sicurezza di phpMyAdmin
Prevenire attacchi dizionario e forza bruta
Per prevenire attacchi al proprio database, è consigliabile cambiare la pagina di accesso a phpMyAdmin, modificando il file/etc/phpmyadmin/apache.conf
alla riga:
Alias /phpSecureAdmin /usr/share/phpmyadmindove /phpSecureAdmin è l'indirizzo al quale deve rispondere
phpMyAdmin
.
Prevenire l'accesso come amministratore
Nella sfortunata ipotesi in cui qualche malintenzionato riuscisse a trovare l'indirizzo a cui rispondephpMyAdmin
, e riuscisse a trovare una delle nostre password,
possiamo comunque negargli l'accesso come amministratore, semplicemente aggiungendo
al file di configurazione /etc/phpmyadmin/config.inc.php
la linea:
$cfg['Servers'][$i]['AllowRoot'] = FALSE;
Prevenire attacchi man-in-the-middle
Abilitando SSL (come descritto nella Sezione 8.4), è possibile configurare phpMyAdmin affinché richieda sempre una connessione HTTPS per avviarsi, semplicemente aggiungendo al file/etc/phpmyadmin/config.inc.php
la linea:
$cfg['ForceSSL'] = TRUE;
robots.txt
Nella gestione di un sito può essere utile
rendere raggiungibili alcune pagine per effettuare dei test,
ma senza che queste vengano indicizzate dai motori di ricerca. Per
evitare che Google, Bing o altri rendano visibili contenuti che debbono
restare nascosti, è possibile comunicare loro quali pagine (o cartelle)
non devono indicizzare.
Per fare questo, bisogna creare un file, denominato robots.txt
,
che deve essere collocato nella cartella radice del nostro webserver,
in modo che sia raggiungibile, ad esempio, attraverso un indirizzo
del tipo http://www.glgprograms.it/robots.txt
.
Volendo evitare che la cartella amministrazione
venga
indicizzata da un qualsiasi motore di ricerca, il file robots.txt
deve contenere:
User-agent: * Disallow: /amministrazione/
dove User-agent: * indica i bot dei motori di ricerca che devono
seguire le regole, identificati per user agent (nel caso specifico,
tutti), mentre i Disallow:, che possono essere ripetuti, indicano
i file/cartelle che devono essere esclusi dall'indicizzazione.
Attenzione: in questo modo le pagine vengono nascoste agli occhi
dei motori di ricerca, ma sono comunque accessibili se si conosce il loro
indirizzo — per renderle inaccessibili, usare un file .htaccess
.
Attenzione: non è garantito che i motori di ricerca che
visitano il nostro sito rispettino queste regole.