sabato 2 febbraio 2019

Condividere file con Windows da Raspberry e viceversa

Per condividere file tra windows e Linux (Raspbian) si usa un programma chiamato Samba (SMB/CIFS sono protocolli di comunicazione tra computer linux e windows all'interno di una LAN ed il nome è stato storpiato per renderlo più famigliare SMB -> Samba; SMB = Server Message Block, CIFS = Common Internet File Sistem).
Bisogna istallarli e configurarli; questi i comandi da shell:

sudo apt-get update
sudo apt-get upgrade

per aggiornare il software del nostro Raspberry; poi:

sudo apt-get install samba samba-common-bin smbclient cifs-utils

per istallare samba e cifs.

Condividere una cartella di Raspberry PI con MS Windows


Nel nostro Raspberry creare una cartella da condividere nella home dell'utente predefinito (pi)

mkdir ~/RPIShare

NB: la tilde (~) si fa con altGr + ì oppure con "pagina giù" oppure con Alt + 126.

Infine entrare nel file di configurazione di samba per modificare le impostazioni...

sudo nano /etc/samba/smb.conf

cercare questa stringa e modificarla o de-commentarla...

workgroup = WORKGROUP

Sempre nel file di configurazione arrivare fino in fondo al testo ed aggiungere queste righe:

[PiShare]
comment=Raspberry Pi Share
path=/home/pi/RPIShare
browseable=Yes
writeable=Yes
only guest=no

Nel computer Windows che farà da client sarà necessario attivare la specifica funzionalità:
Dal menù "Impostazioni" aprire la finestra "Funzionalità di Windows" e cercare la voce "Supporto per condivisione file SMB/CIFS" e spuntare la 'sottovoce' "client SMB/CIFS". Riavviare il PC.

Ora si potrà vedere Raspberry dalle risorse di rete di un PC MSWindows creando e modificando file all'interno delle cartelle (sia all'interno delle risorse di rete del PC Windows sia all'interno della cartella RPIShare che abbiamo creato in Raspberry.

Condividere una cartella MSindows con Raspberry PI

Un po' più macchinoso effettuare la condivisione opposta.
Prima di tutto creiamo una cartella, per esempio sul desktop del PC Windows, che conterrà i file da condividere (chiamiamola WinShare). Dalle "Proprietà" della cartella diamo ad "Everyone" le autorizzazioni di controllo completo sia nella scheda "Condivisione" sia in quella "Sicurezza".

Ora sul nostro Raspberry creiamo una cartella che diventerà la destinazione della cartella Windows condivisa (chiamiamola "WindowShare") ... da shell

mkdir ~/WindowShare

Ora, sempre da shell modifichiamo come root il file /etc/fstab:

sudo nano /etc/fstab

e aggiungiamo in fondo questa riga
 
//remote_ip_address/folder /srv/mount_destination cifs vers=3.0,username=<add_your_UN>,noauto,user 0 0

Poi modifichiamo le autorizzazioni per il file /usr/sbin/mount.cifs da -rwxr-xr-x a rwsr-xr-x
   
sudo chmod 4755 /usr/sbin/mount.cifs

Possiamo effettuare il reboot del nostro Raspberry. 
A questo punto per vedere i file di window nella cartella condivisa da windows sarà necessario effettuare il mount della stessa risorsa: sempre da shell:
   
USER=<add_your_UN> mount /srv/mount_destination

Ci verrà chiesta la password dell'utente windows che abbiamo indicato nel fil di configurazione
          
Password for <add_your_UN>@//remote_ip_address/folder:  ************

... e visualizzeremo nella cartella WindowShare del Raspberry il contenuto nella cartella WShare di Windows potendo modificare (come utente Pi) i file da entrambi i lati.

Collegarsi da remoto a Raspberry

SSH è un protocollo di comunicazione che può permetterci di lavorare da riga di comando su Raspberry Pi stando comodamente seduti davanti al nostro PC senza usare doppia tastiera, mouse e monitor...
In un vecchio post ho già indicato come trasformare il nostro computer Linux in server SSH e poi come accedere allo stesso computer via Putty da PC remoto.
La differenza interessante è che SSH è già istallato su Raspbian e non c'è quindi nessun bisogno di installare alcunché.
Basta accedere alla finestra (interfaccia grafica) Preferenze>>Raspberry Pi Configuration e, dalla finestra che si apre selezionare il tab "Interfaces"; lì sarà possibile abilitare SSH.
Da PC remoto quindi avviando Putty e inserendo l'IP del nostro Raspberry si aprirà una finestra terminale che ci permetterà di dialogare direttamente con lui.
Ancora più interessante sarà accedere da remoto alla interfaccia grafica di Raspberry...
In questo caso bisogna scaricare e installare sul nostro PC il programma VNC (scaricalo da qui) e ancora una volta, con lo stesso sistema utilizzato per SSH, abilitare anche VNC.
Dopo aver avviato il programma sul nostro PC ed inserito l'indirizzo IP del Raspberry si potrà lavorare comodamente con due computer usando un solo monitor, una tastiera ed un mouse.

Loggarsi come Root su RaspberryPi/Raspbian

L'utente Root, su Sistemi Operativi Linux, è l'utente amministratore e, normalmente, all'istallazione del S.O. viene richiesto all'operatore di impostare una password per tale utente. Difficilmente viene usata ma qualche volta serve: per esempio quando si istalla software o aggiornamenti di software.
Durante l'istallazione di Raspbian invece la richiesta di impostare una password per l'utente root non viene effettuata perché, per ragioni di sicurezza non viene impostata.
Se si prova infatti a loggarsi come Super User (su) da riga di comando verrà chiesta la password e non c'è modo di effettuare l'accesso.
L'unica possibilità sarà quella di modificarla utilizzando il comando :

sudo passwd su

Verrà richiesto di digitare la password e di ridigitarla per conferma.
Alla fine il sistema comunicherà che l'operazione è andata a buon fine.

Prima installazione ed uso di Raspberry Pi 3B+

Raspberry (nelle sue diverse versioni è un piccolo computer del valore commerciale di circa 30€ con un processore quad-core a 64 bit, 1.4 GHz di clock ed una memoria RAM di 1GB.
Non possiede un Hard Disk fisico ma al suo posto c'è una scheda SD (consigliata 8 GB ma si può usare anche molto più capiente 16 o 32 GB).
Con tale apparecchiatura è possibile usare diversi Sistemi Operativi sia Windows che Linux; esiste, in particolare, una distribuzione Linux appositamente progettata per questo dispositivo denominata Raspbian e derivata da Debian.
Dopo l'acquisto, fuori dalla scatola, il Raspberry si presenta come nell'immagine soprastante e per farlo funzionare occorre un alimentatore da 5 Volt, una tastiera, un mouse (o periferiche analoghe) anche wireless o bluetooth, un monitor (il tutto da collegare alle specifiche porte in dotazione al dispositivo) e, soprattutto, una capiente scheda SD.
Ecco la procedura per l'installazione del Sistema operativo Raspbian...

  • La prima operazione da compiere è quella di scaricare su un PC uno specifico programma per la formattazione di una scheda SD la quale, sia che sia stata acquistata ex novo, sia che sia già stata usata per altre attività, va formattata (si può usare un programma tipo "SD Card Formatter").
  • E' inoltre necessario scaricare dal sito ufficiale il S.O. nella sua versione più recente... (https://www.raspberrypi.org/downloads/raspbian/ oppure fai click qui per scaricare la versione più recente); il file scaricato è un file compresso con estensione .zip che va decompresso. Si otterrà un file con estensione .img che andrà, con opportuno programma salvato sulla scheda SD;
  • Il programma per salvare il file immagine sulla scheda SD potrebbe essere Win32DiskImager (scaricalo da qui); Basterà avviare il programma dopo istallazione, e indicare sia il file di origine (il file del S.O con estensione .img) e la cartella di destinazione (la scheda SD precedentemente formattata).
Ora si potrà inserire la scheda SD nello specifico alloggiamento e avviare il Raspberry...


mercoledì 16 gennaio 2019

Redirect 301 (Permanent) attraverso web.config

L'operazione di redirect può essere necessaria quando si cambia il nome del dominio per varie necessità ma non si vuole perdere il rank dei motori di ricerca. 
Si lasciano i contenuti del vecchio sito (circa tre mesi), se ne costruisce una copia con il nuovo dominio ed ogni pagina del vecchio sito viene reindirizzata al nuovo avendo cura di indicare la direttiva "permanent" (ovvero 301).
Quando i crawler dei motori di ricerca individuano le pagine del vecchio sito troveranno che la pagina punta ad un nuovo dominio e "impareranno" che ora i contenuti sono altrove (cioè nel nuovo sito).
Se il sito è costituito da poche pagine non sarà difficile inserire nella sezione head della pagina le direttive necessarie al re indirizzamento ma se le pagine sono alcune decine il lavoro si fa noioso... se poi il sito non è costituito da pagine statiche ma si usano linguaggi di script server side, non si può proprio fare....
Il sistema che propongo è adatto a chi usa CMS che utilizzano asp.net e che quindi possono modificare a manina il file web.config
Personalmente come CMS uso DNN che propone, per effettuare l'operazione di redirect, uno specifico modulo venduto a caro prezzo....


Per reindirizzare le pagine di un sito a nuovi URL utilizzando lo stato 301 agire come segue:
Creare un file rewriteMaps.config con questa struttura:

<?xml version="1.0" encoding="utf-8"?>
<rewriteMaps>
<rewriteMap name="Redirects">
<add key="/oldurl" value="/newurl" />
<add key="/oldurl2" value="/newurl2" />
... 
</rewriteMap>
</rewriteMaps>

Salvare il file nella root del sito.
Modificare il file web.config inserendo nella opportuna sezione il seguente codice:

<configuration>
<system.webServer>
<rewrite>
<rewriteMaps configSource="rewritemaps.config"><rewriteMaps>
<rules>
<rule name="Redirect rule1 for Redirects">
<match url=".*" />
<conditions>
<add input="{Redirects:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="{C:1}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

Verificare il tutto sul sito: https://httpstatus.io/
Tale sito restituisce il response del server ad ogni chiamata di pagina... potrete così verificare se la procedura funziona

NB: il tutto può essere preceduto dall'analisi di quali siano le pagine indicizzate dal motore di ricerca: scrivere sulla barra della ricerca "site:xyz:it"; la risposta sarà l'elenco delle pagine indicizzate. Per ognuna delle pagine sarà possibile così inserire la chiave e lo specifico indirizzo di nuova destinazione nel file rewriteMaps.config

martedì 15 gennaio 2019

Impostazioni per GoogleAnalytics in un sito creato con DNN 9.1

Dalla versione 9.1 di DNN non sarà più possibile impostare il traking di google sul sito come si poteva fare da amministratori nelle versioni precedenti.
La scappatoia è creare due file da posizionare direttamente nel fileSystem del sito:

Primo file = "GoogleAnalytics.config" da copiare in Portals/0 con questo contenuto...

<?xml version="1.0" encoding="utf-8"?>
<AnalyticsConfig xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Settings>
    <AnalyticsSetting>
      <SettingName>TrackingId</SettingName>
      <SettingValue>UA-35742042-4</SettingValue>
    </AnalyticsSetting>
    <AnalyticsSetting>
      <SettingName>UrlParameter</SettingName>
      <SettingValue/>
    </AnalyticsSetting>
    <AnalyticsSetting>
      <SettingName>TrackForAdmin</SettingName>
      <SettingValue>false</SettingValue>
    </AnalyticsSetting>
  </Settings>
</AnalyticsConfig>


Sostituendo naturalmente "IL TUO TRAKING-ID" con il valore corretto fornito da Google.

Secondo File = "SiteAnalytics.config" da copiare nella root del sito con questo contenuto...

<?xml version="1.0" encoding="utf-8" ?>
<AnalyticsEngineConfig>
<Engines>
<AnalyticsEngine>
<EngineType>DotNetNuke.Services.Analytics.GoogleAnalyticsEngine, DotNetNuke</EngineType>
<ElementId>Head</ElementId>
<InjectTop>False</InjectTop>
<ScriptTemplate>
<![CDATA[   
     
    <script type="text/javascript">
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', '[TRACKING_ID]']);
      _gaq.push(['_trackPageview']);
      [PAGE_URL]

      (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();
    </script>
     
  ]]>
</ScriptTemplate>
</AnalyticsEngine>
</Engines>
</AnalyticsEngineConfig>

Salvati i files nelle rispettive posizioni Google Analytics comincerà a seguire il vostro sito.

martedì 14 giugno 2011

Server HotSpot per reti Wireless

Operazioni preliminari

Questo How-To prevede l'istallazione e la configurazione di un server ubuntu
versione 10.04.2 LTS come Hot Spot WiFi utilizzando
Freeradius, Mysql, Chillispot.

I prerequisiti per l'installazione sono modesti e possono essere così
esemplificati:

  • Un computer con due interfacce di rete (il SERVER), nel nostro caso la
    configurazione adottata è PC PIII 1GHz + RAM 128 MByte + HD 10 GByte + 2 NIC
    Realtek 8139;
  • un access-point wireless, non strettamente necessario se si vuole collegare
    computer cablati;
  • un computer (il CLIENT) ulteriore necessario per i test, dotato di un
    interfaccia di rete ethernet o wireless e di un browser che supporti i Pop-Up.

In questa scheda vediamo "graficamente" come si prevede interagiscano i computer

________ 
|        |           access-point
| CLIENT | ))))      ((( \|/      ________    Internet
|________|                |      |        |      |
                          +------| SERVER |------+
   rete 192.168.2.0/24      eth1 |________| eth0

E' necessario che il server sia configurato come server LAMP
(Linux/Apache/MySQL/Php/Perl/Pyton); per la verifica digitare da terminale:

tasksel

Configurando la macchina come server è comodo selezionare alcune opzioni
utili per l'uso futuro.

Tastiera e monitor: la macchina, funzionando da server,
presumibilmente non avrà collegato un monitor perche vi si accederà da pc remoto
e per lo stesso motivo non avrà una tastiera. Per evitare che all'avvio il SO si
blocchi per la mancanza della tastiera accedere al bios prima del caricamento
del SO ed impostare la funzione Halt On a "All but keyboard".

Di seguito dopo aver aggiornato la repository del software:

sudo apt-get update
sudo apt-get upgrade

installare il pacchetto openssh-server che ci permetterà l'accesso al server
da pc remoto

sudo apt-get install openssh-server

Ora con programmi come putty.exe sarà possibile entrare da remoto nel server.

Impostiamo quindi l'indirizzo IP in modo che sia statico (di norma durante
l'istallazione del SO l'indirizzo IP viene acquisito automaticamente da un server
DHCP). apriamo il file /etc/network/interfaces

sudo nano /etc/network/interfaces

e sostituiamo alle righe...

auto eth0
iface eth0 inet dhcp

le righe...

auto eth0
    iface eth0 inet static
    address 192.168.1.250
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1

In questo modo attribuiamo a eth0 l'indirizzo 192.168.1.250 e , con questa
scheda di rete ci collegheremo al router e quindi ad internet.

Aggiungere inoltre, allo stesso file, la seconda scheda di rete (eth1) che servirà per la connessione
ai client wireless;

auto eth1

Penserà Chillispot ad attribuire ai client l'indirizzo opportuno; salvare il file e riavviare il servizio di networking

sudo /etc/init.d/networking restart

Attivare in /etc/sysctl.conf l'IP Forward del router integrato nel Kernel
assicurandosi che sia decommentata la seguente riga:

net.ipv4.ip_forward=1

ed effettuando subito la modifica:

echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

Riavviare la configurazione di rete del server

sudo /etc/init.d/networking restart

Aggiungere all'avvio il caricamento del modulo tun. Per farlo aggiungere una
riga con scritto "tun" in /etc/modules. Caricare nel frattempo il modulo con il
comando:

sudo modprobe tun

Server Radius e Database

Installare i pacchetti freeradius e freeradius-mysql:

sudo apt-get install freeradius freeradius-mysql

Con le versioni più recenti di Ubuntu (dalla 8.10 in poi) sarà installata la
versione 2 di FreeRadius, .
Creare il database, che sarà utilizzato per la gestione del sistema di
autenticazione RADIUS, con il seguente comando (rispondere al prompt "Enter
password: " con la password dell'utente DB root e poi digitare al prompt "mysql>
" i comandi seguenti):

mysql -u root -p
Enter password: mysqladminsecret
mysql> CREATE DATABASE radius;
mysql> quit

Creare un utente con i privilegi di accesso e modifica del database radius con
la struttura delle tabelle:

mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON radius.* TO 'radius'@'localhost' IDENTIFIED BY 'mysqlsecret';
mysql> FLUSH PRIVILEGES;
mysql> quit

Creare la struttura del database

NB Bisogna loggarsi da root digitando la password perchè l'accesso a questi
file è negato

sudo su
enter password
mysql -u radius -p radius < /etc/freeradius/sql/mysql/schema.sql
mysql -u radius -p radius < /etc/freeradius/sql/mysql/nas.sql
exit

Aggiustare il file /etc/freeradius/sql.conf con i dati di connessione al
database appena settati:

server = "localhost"
login = "radius"
password = "mysqlsecret"

Configurare il client 127.0.0.1 nel file /etc/freeradius/clients.conf
con il
valore della password per le connessioni al server Radius:

client 127.0.0.1 {
 secret = radiussecret
}

Test della configurazione (predefinita) basata su file

La configurazione predefinita di FreeRadius autorizza gli utenti con UserName e
Password da un file che si trova in /etc/freeradius/users. Possiamo effettuare
un test per la configurazione predefinita basata su file prima di modificare la
modalità di autorizzazione da "file" a "sql" (mysql).

Aggiungiamo quindi utente e password al nostro file degli utenti modificando la
riga che inizia con "John Doe":

sudo nano  /etc/freeradius/users

Decommentare:

"John Doe" Auth-Type := Local, User-Password == "hello"
Reply-Message = "Hello, %u"

A questo punto riavviamo la nostra macchina 

reboot

Quindi passiamo alla modalità debug di freeradius dopo aver fermato il servizio


sudo /etc/init.d/freeradius stop
sudo freeradius -XXX

Se tutto andrà bene l'ultima riga mostrerà il seguente messaggio:

Mon Mar 24 11:32:35 2008 : Info: Ready to process requests.

Digiyiamo Ctrl + C per uscire dalla modalità di debug

Facciamo ripartire il servizio di Freeradius

sudo /etc/init.d/freeradius start

Effettuiamo il test di autorizzazione basato su file

sudo radtest "John Doe" hello 127.0.0.1 0 radiussecret

Se tutto andrà bene dovreste avere la seguente risposta:

Sending Access-Request of id 136 to 127.0.0.1 port 1812
User-Name = "John Doe"
User-Password = "hello"
NAS-IP-Address = 255.255.255.255
NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=136, length=37
Reply-Message = "Hello, John Doe"

Modalità DataBase

A questo punto possiamo convertire la modalità basata su file con quella basata su
DataBase.

sudo nano  /etc/freeradius/radiusd.conf

decommentare la linea 


#$INCLUDE sql.conf

quindi aprendo il file /etc/freeradius/sites-available/default:

nano /etc/freeradius/sites-available/default

modifichiamo...

authorize {
 preprocess
 chap
 suffix
 eap
 #files ###Cambiare Manualmente
 sql ###Cambiare Manualmente
 }
authenticate { Auth-Type PAP { pap
} Auth-Type CHAP { chap } eap } accounting { detail radutmp sql ###Cambiare Manualmente } session { sql ###Cambiare Manualmente
}

E' una buona idea testare questa nuova configurazione prima di andare avanti,
quindi inseriamo un utente nel database:


$ echo "INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('mysqltest', 
'Password', 'testsecret');" | mysql -u radius -p radius

E, dopo aver riavviato il servizio freeradius, ritentiamo il test di prima con i nuovi valori:


$ sudo /etc/init.d/freeradius restart
$ sudo radtest mysqltest testsecret 127.0.0.1 0 radiussecret

Questo è il risultato...


Sending Access-Request of id 197 to 127.0.0.1 port 1812
User-Name = "mysqltest"
User-Password = "testsecret"
NAS-IP-Address = 127.0.1.1
NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=197, length=20

ChilliSpot

Installiamo il pacchetto chillispot, che è presente nella repository di ubuntu.


$ sudo apt-get install chillispot

In fase di installazione, ci saranno rivolte alcune domande per configurare
chillispot. Ecco un elenco delle domande e delle risposte relative:


IP address of radius server 1: 127.0.0.1


Radius shared secret: radiussecret


Ethernet interface for DHCP to listen: eth1


URL of UAM server:
https://10.1.0.1/cgi-bin/hotspotlogin.cgi


URL of UAM homepage:


Shared password between chillispot and webserver: uamsecret

Conviene comunque revisionare il file di configurazione per dare le informazioni
che necessita a ChilliSpot configurando il file /etc/chilli.conf
in modo
opportuno:

net 192.168.2.0/24 ###change manually
#dns1 192.168.2.1 
#dns2 192.168.2.1 
domain domain.org ###change manually
radiusserver1 127.0.0.1 
radiusserver2 127.0.0.1 
radiussecret radiussecret 
dhcpif eth1
uamserver https://192.168.2.1/cgi-bin/hotspotlogin.cgi
#uamhomepage https://192.168.2.1/welcome.html ###change manually
uamsecret uamsecret
uamlisten 192.168.2.1 ####change manually
uamallowed www.google.it,192.168.2.0/24 ###change manually

Nota: uamhomepage è stata commentata perchè è opzionale


Per verificare eventuali errori nel file conf di Chillispot eseguire il comando


sudo /etc/init.d/chillispot start

Se si verifica un errore esso verrà mostrato sul monitor con il numero della
riga relativa che ha causato l'errore. Aprire il file chilli.conf e cercare la
riga per correggere il problema.


Se si riceve il messaggio:


Chillispot captive portal: disabled, see /etc/default/chillispot

aprire il file /etc/default/chillispot ed abilitare il servizio:


nano -w /etc/default/chillispot


ENABLED=1

Installazione Firewall

La procedura di istallazione di ChilliSpot ha creato delle regole per il firewall che vanno
abilitate:

sudo cp /usr/share/doc/chillispot/firewall.iptables /etc/init.d/chilli.iptables
sudo chmod a+x /etc/init.d/chilli.iptables
sudo ln -s ../init.d/chilli.iptables /etc/rcS.d/S41chilli.iptables

Le regole predefinite per il Firewall sono configurate in modo che eth0 sia
connessa ad internet mentre eth1 alla LAN. Se vogliamo cambiare questo settaggio
apriamo il file:


nano -w /etc/init.d/chilli.iptables
EXTIF=eth0
INTIF=eth1

Vale la pena aprire la porta 80 ad eth0 per permettere di gestire i record di
mysql con applicazioni web come phpmyadmin, ezradius, dialup admin o altre.
Quindi apriamo il file /etc/init.d/chilli.iptables e aggiungiamo alla riga:


$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 22 --syn -j ACCEPT

la riga:


$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 80 --syn -j ACCEPT

Apache Server

Creare la pagina di login

sudo mkdir -p /var/www/hotspot/cgi-bin
zcat -c /usr/share/doc/chillispot/hotspotlogin.cgi.gz | sudo tee (segue...) /var/www/hotspot/cgi-bin/hotspotlogin.cgi
sudo chmod a+x /var/www/hotspot/cgi-bin/hotspotlogin.cgi

Modifichiamo lo script di login


nano -w /var/www/hotspot/cgi-bin/hotspotlogin.cgi

Decommentiamo e modifichiamo opportunamente la password

 
$uamsecret = "uamsecret";
$userpassword=1;

SSL

Apache Modules

Per installare il modulo di Apache2 per l'autenticazione via MySQL bisogna
eseguire il seguente comando da terminale:

sudo apt-get install libapache2-mod-auth-mysql

Una volta installato il modulo, questo sarà disponibile nella directory 
/etc/apache2/mods-available. Sarà necessario usare il comando
a2enmod per abilitare il modulo. Si potrà utilizzare il comando
a2dismod per disabilitare il modulo. Una volta abilitato il
modulo sarà disponibile nella directory /etc/apache2/mods-enabled.

Setup up di Apache e SSL

Siate sicuri che LAMP server sia installato; se non è così si usi il comando:

tasksel

Creare il certificato


sudo apt-get install ssl-cert
sudo mkdir /etc/apache2/ssl

E' necessario trovare il nome del nostro host per il certificato:


hostname -f

(Hardcoding cert lifetime based on this patch:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=293821#22
)


sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

(Rispondere alle domande)


Nota: l'"HostName" deve essere scritto correttamente in base a quello che
risulta dall'esecuzione del comando hostname -f


host.name #change to your host name

Install Module

Il modulo mod_ssl aggiunge ad apache2 Server una importante possibilità, quella
di criptare le comunicazioni. Così quando il vostro browser comunica usando la
cripazione SSL il prefisso https:// è usato all'inizio dell'URL nella barra
degli indirizzi del browser.

sudo a2enmod ssl
/etc/init.d/apache2 force-reload

Creare il virtualhost

Creare un file virtualhost

sudo nano -w /etc/apache2/sites-available/hotspot

e modificarne il contenuto in modo che risulti simile al seguente

NameVirtualHost 192.168.2.1:443   
 <VirtualHost 192.168.2.1:443>       
 ServerAdmin webmaster@domain.org       
 DocumentRoot "/var/www/hotspot"       
 ServerName "192.168.2.1"       
 <Directory "/var/www/hotspot/">           
  Options Indexes FollowSymLinks MultiViews           
  AllowOverride None           
  Order allow,deny           
  allow from all       
 </Directory>
       
 Alias "/dialupadmin/" "/usr/share/freeradius-dialupadmin/htdocs/"       
 <Directory "/usr/share/freeradius-dialupadmin/htdocs/">           
  Options Indexes FollowSymLinks MultiViews           
  AllowOverride None           
  Order allow,deny           
  allow from all       
 </Directory>
       
 ScriptAlias /cgi-bin/ /var/www/hotspot/cgi-bin/       
 <Directory "/var/www/hotspot/cgi-bin/">           
  AllowOverride None           
  Options ExecCGI -MultiViews +SymLinksIfOwnerMatch           
  Order allow,deny           
  Allow from all       
 </Directory>
       
 ErrorLog /var/log/apache2/hotspot-error.log
      
 LogLevel warn

 CustomLog /var/log/apache2/hotspot-access.log combined

 ServerSignature On       
 SSLEngine on       
 SSLCertificateFile /etc/apache2/ssl/apache.pem
</VirtualHost>

Abilitare VirtualHost SSL

sudo a2ensite hotspot
/etc/init.d/apache2 reload

Porte in ascolto

La porta 443 deve rimanere in ascolto per HTTPS. E' necessario quindi aggiungere
la stringa seguente al file /etc/apache2/ports.conf :

nano -w /etc/apache2/ports.conf

Listen 192.168.1.250:80
<IfModule mod_ssl.c>
    Listen 192.168.2.1:443
</IfModule>



Server Root

nano -w /etc/apache2/apache2.conf

aggiungere


ServerName 192.168.1.250

Modificare il file host

 
nano -w /etc/hosts
192.168.2.1 host.name host #cambiare con il proprio nome.host

Riavviare il server di Apache:


sudo /etc/init.d/apache2 restart

Ora il Browser web dovrebbe essere in grado di collegarsi alla pagina


https://192.168.2.1/cgi-bin/hotspotlogin.cgi

e alla pagina

http://192.168.2.1:3990/

Finito

Riavviare il computer e ogni cosa dovrebbe funzionare regolarmente

reboot