In questa pagina descriverà come installare un mini server web su un router (Asus RT-AC56U)
- useremo un'installazione Entware, pertanto
fate riferimento a questa pagina su come installare Entware su un router.
Useremo un mini server web denominato "minihttpd". Sfortunatamente
questo server non è incluso nei pacchetti Entware, era incluso al tempo
dei pacchetti Optware.
L'unica maniera per avere questo server è
scaricare il codice sorgente
e compilarlo usando gli strumenti di compilazione di Entware. Io l'ho già
fatto usando il router Asus RT-AC56U, ottenendo i file binari finali.
In ogni modo vi fornirò un file .zip contenente tutti i file richiesti per
eseguire questo server, pertanto
scaricatelo, estraete i
file inclusi nel file .zip
ed in seguito copiate tutti i file estratti nelle seguenti cartelle:
File | Cartella di destinazione |
---|---|
index.html | /opt/share/www/minihttp |
mini_httpd | /opt/sbin |
mini_httpd.conf | /opt/etc |
mini_httpd-htpasswd | /opt/sbin |
S80minihttpd | /opt/etc/init.d |
Tutte le suddette cartelle di destinazione già esistono
nell'installazione Entware, tranne "/opt/share/www/minihttp",
dobbiamo crearla ed in seguito copiarvi il file "index.html".
All'interno della cartella "/opt/share/www/minihttp" dobbiamo anche
creare una sottocartella denominata "cgi-bin", poiché questo mini server
web supporta anche gli script CGI-BIN.
Innanzitutto dobbiamo impostare il file di configurazione "mini_httpd.conf"
posto nella cartella "/opt/etc". Ciò che segue è il contenuto del file
di configurazione fornito:
# mini_httpd - small HTTP server config # a hostname to bind to, for multihoming (set this at bind 0.0.0.0 problem) #host=setthis # a directory to chdir() to at startup dir=/opt/share/www/minihttp # a directory to chdir() to after chrooting #data_dir=/opt/share/www port=8084 user=nobody nochroot charset=iso-8859-2 cgipat=**.php|**.cgi|**.sh logfile=/opt/var/log/mini_httpd.log pidfile=/opt/var/run/mini_httpd.pid # P3P server privacy header http://www.w3.org/P3P/ #p3p= #vhost
Questa è una breve descrizione delle più importanti variabili incluse nel suddetto file di configurazione:
Un altro passo è modificare il proprietario di tutta la
cartella "/opt/share/www/minihttp"
usando lo stesso valore "user" del file di configurazione, in questo
caso "nobody",
usando il comando "chown -R nobody:nobody /opt/share/www/minihttp".
Ogni qualvolta aggiungeremo un file all'interno della cartella radice "/opt/share/www/minihttp"
del server web,
dovremo anche modificare il proprietario del file aggiunto.
Dopo aver modificato il proprietario della suddetta cartella, possiamo avviare
il server web usando il comando "/opt/etc/init.d/S80minihttpd start".
Possiamo aprire il browser ed andare all'indirizzo "http://[indirizzo router]:[porta]"
dove "porta"
è uguale al valore "port" usato nel file di configurazione.
Il browser dovrebbe visualizzare il contenuto del file "index.html"
incluso nella cartella radice del server web.
Normalmente quando avviamo questo mini server web, noi possiamo navigare
all'interno di questo mini server web senza alcun tipo di autenticazione. Invece
vorremmo avere una procedura di autenticazione allo scopo di fornire l'accesso a
questo server web solo a pochi utenti e non a tutti gli utenti.
Questo può essere fatto usando il comando "mini_httpd-htpasswd"
incluso nel suddetto file .zip di installazione.
Ad esempio vogliamo usare un utente "admin" con la password "admin",
il comando da eseguire è "mini_httpd-htpasswd -c testpwd admin",
dove il parametro dopo "-c" è il file "testpwd" di output, mentre
l'ultimo parametro è il nome utente "admin", come da seguente esempio:
mini_httpd-htpasswd -c testpwd admin Adding password for admin. New password: Re-type new password: cat testpwd admin:Yqm96b92BYBMw
Il suddetto file "testpwd" contiene una linea "user:password"
che include un nome utente e la password cifrata; ovviamente possiamo usare più
di un utente all'interno del file di output, ci basta ricordare di evitare l'uso
del parametro "-c" nel comando "mini_httpd-htpasswd" se il file
di output esiste già.
Notare che la password cifrata viene creata casualmente, pertanto non sarà mai
la stessa.
In seguito possiamo aggiungere un altro utente denominato "administrator"
con password "admin":
mini_httpd-htpasswd testpwd administrator Adding user administrator New password: Re-type new password: cat testpwd admin:Yqm96b92BYBMw administrator:jloexXcjKyLcI
Il suddetto file "testpwd" deve essere rinominato in ".htpasswd" e deve essere copiato sulla cartella radice del server web (la cartella predefinita è "/opt/share/www/minihttp"). In questo modo ogni qualvolta apriremo il browser ed andremo all'indirizzo internet del server web, il browser chiederà l'autenticazione tramite nome utente e password.