Configurazione di Zeroshell in VBox

Questo post è il seguito di “virtualizzare per documentare” e mostra come con un altro tassello Free Software abbiamo la possibilità realizzare i nostri obiettivi.  Ho scoperto questa “opera d’ingegno” da poco ma da quel momento la uso tutte le volte che posso.  Questa distribuzione Gnu/Linux  racchiude molto per la gestione di una “piccola” rete. Anche se è possibile installarla direttamente su HD io normalmente la uso in un ambiente virtualizzato, normalmente VirtualBox, perché in questo modo ho la possibilità di usare anche le risorse messe a disposizione dell’host oltre che dal guest. La virtualizzazione di Zeroshell è documentata da Nicola Carlino nella sezione http://www.zeroshell.net/documentation/ con Vmware ESXi ma noi useremo solo VirtualBox su OpenSolaris/Gnu/Linux. Collegandoci al post il mio ambiente di sviluppo è sempre OpenSolaris e di conseguenza le mie interfacce vnic sono tutte in bridge, anche se il bridge è su una struttura completamente virtualizzata.

Ci procuriamo la iso di zeroshell e la registriamo all’interno di Vbox

VirtualMediaManager

Ora dobbiamo creare la virtual machines mediante il wizard di Vbox

createVM1

scegliendo un nome e una piattaforma,  nel nostro caso Zeroshell12 e Linux/kernel 2.6

createVM2

successivamente dovremo scegliere quanta memoria assegnare, normalmente già 256Mb sono sufficienti,

createVM3

dopo avremo la possibilità di scegliere o creare il disco rigido.  Questo HD verrà utilizzato dalla virtual machines per memorizzare le impostazioni.  La scelta ricade automaticamente su un hd ide che verrà creato automaticamente dal wizard e verrà creato con lo stesso nome della vm.  Normalmente a vm creata, cambio il tipo di hd da ide a sata per fruttare meglio le caratteristiche messe  a disposizione da Vbox.

createVM4

Next >

createVM5

per la dimensione del disco è sufficiente accettare la dimensione suggerita e  la tipologia dinamica, questo con la prospettiva di usare  inizialmente  il minimo spazio disco del server host.

createVM6

in questo passaggio abbiamo la possibilità sia di cambiare il nome del disco sia la dimensione

createVM7

infine abbiamo il riepilogo delle caratteristiche del disco appena creato

createVM8

e come passo finale abbiamo la presentazione d’insieme

createVM9

Normalmente faccio un tuning della vm nelle sezioni

  • System, abilitando se possibile la virtualizzazione hardware VT/ADM-V
  • disable audio
  • disable usb
  • disable floppy
  • modifica del controller del disco da ide a sata

createVM10

createVM11

createVM12

  • cdrom

in questa sezione colleghiamo  la iso di Zeroshell al dispositivo fisico visto dal guest.

createVM13

  • sezione Network

La sezione network rispecchia la configurazione del POST precedente con tre interfacce + una host-only per l’accesso web dall’ host

doc-uniba

la zs0 diventerà la ETH00 della vm

zs0

la zs1 diventerà la ETH01 della vm

zs1

la ws0 diventerà la ETH02 della vm .  Scusate ma l’immagine riporta ws1 mi perdonate vero 😉

ws0

la vboxnet0 diventerà la ETH03 della vm

vboxnet

Poiché uso OpenSolaris che implementa nativamente la virtualizzazione del network mediante il progetto CROSSBOW dovremo far in modo di far coincidere il mac delle vm con il mac delle interfacce virtuali create con dladm. Come ?   Andando a modificare nella sezione  Advanced il valore del mac. Tra le possibili schede di rete scelgo sempre una Intel PRO/1000 T Server, questo per tutte e quattro (vboxnet0 compreso) .

LINK         OVER         SPEED  MACADDRESS

zs1             right1          0              2:8:20:41:19:2d

zs0            lefth1           0             2:8:20:ef:2e:18

ws0           wireless1    0             2:8:20:f1:6e:9f

Nel caso riportato il valore 0800276FBF08 dovrà diventare  020820ef2e18 notiamo l’assenza dei : e il 2 e 8 sono preceduti da uno 0

maczs0

Per chi usa  un host Gnu/Linux o MS Windows la scelta ricade su una configurazione bridge  con la/le interfacce di rete a disposizione dallo stesso host.

Ora finalmente possiamo eseguire la virtual machines, all’interno di VirtualBox selezioniamo la vm  e start .

VMrunning

ed ecco il profile  EXAMPLE.COM attivo e funzionante

Ora dobbiamo accedere alla console web altrimenti che zero shell sarebbe ?

Per la nostra configurazione di rete ricorriamo alla vboxnet0, visto che l’indirizzamento 192.168.0.75 è su uno switch virtuale non accessibile all’host che ospita la vm.  Prima dobbiamo assegnare un ip dinamico alla ETH03  mediante la console, niente paura .

  1. Selezioniamo <I>  Ip manager e ci verrà proposto il seguente menu, con il riepilogo delle interfacce e con la possibilità di eseguire dei COMMANDS

dinamic1

non ci resta  che selezionare <H> Dynamic IP configuration e a questo punto ci compare la scelta dell’interfaccia di default  ” Interface [ETH00]: che modificheremo semplicemente scrivendo ETH03  ed invio, poi   abiliteremo il DHCP Client scrivendo  enabled seguito da un invio.  Le due  immagini successive mostrano le configurazioni

dinamic2

e al termine avremo un riepilogo della configurazione.  Notiamo come il dhcp di VBox funziona egregiamente.

dinamic3

infatti la ETH03 ora ha un ip 192.168.56.4. Ora la prova del nove,  Mozilla Firefox  e ricordiamo che l’utenza per l’accesso web è  admin e la password è zeroshell.

Proviamo, ricordandoci di accettare il certificato non verificato che ci segnala Mozilla, ad accedere.

login

e poi eccola alla luce

loginok

Non ci resta che configurarla per fare quello che ci serve. Ma prima vediamo  ed esploriamo le sue possibilità.

Possiamo usarla come:

  • router
  • firewall
  • dns forwarding
  • dhcp server
  • radius server
  • radius proxy server
  • Captive Portal
  • web filter ( DansGuardian patch required)
  • trasparent proxy
  • IDS (patch required)

non male  😉  direi grandioso ora vediamo come ….

Zeroshell  al primo avvio utilizza un profilo di configurazione temporaneo  caratterizzato dal nome di dominio EXAMPLE.COM. Questo profilo è funzionante ed è utilizzabile MA al successivo riavvio perderemo tutte le modifiche.  Dobbiamo quindi prendere in considerazione un dispositivo per memorizzarlo. Possiamo usare un disco ide/sata/scsi e la configurazione prevedere

  • l’inizializzazione del disco (fdisk)
  • la formattazione del disco (mkfs)
  • la memorizzazione del profilo sul disco stesso

In condizioni normali la configurazione avviene tutto dalla console web, quindi effettuiamo il login e selezioniamo  Profiles

ci verranno mostrati tutti i supporti presenti siano ide, sata  o scsi. Poniamo attenzione al disco sdc, tralasciando i miei  sda e sdb anche presenti sul sistema.

Alla selezione della sezione  Model:  ATA  VBOX HARDDISK  (sdc) ci verrà mostrato  in alto la sezione Storage Device: sdc

con la possibilità di una Raw view per ottenere le informazioni dettagliate sul disco

oppure  New Partition che ci consentirà di  inizializzare il disco sdc scegliendo una Label e un Filesystem type

tutto termina con la selezione di Create Partition e la pagina presenterà un avviso lampeggiante

Please wait: this operation may take a few minutes to complete.

ed infine ci presenterà la nuova partizione appena creata

La selezione della partizione rende disponibile un nuovo menu contestuale che tra le altre cose, ci permetterà di creare il profile [Create Profile].

Esaminiamo il  Create Profile

La creazione del profile richiede

  • una descrizione [ Description]
  • un hostname compreso di full qualified domain name [Hostname (FQDN)]
  • un REALM Kerberos 5
  • un LDAP Base.  Dalla documentazione di Fulvio Ricciardi: Utilizzato per  memorizzare i dati riguardanti le zone del server DNS, gli attributi per il server RADIUS, l’autorizzazione degli utenti e degli host.  Risponde ai client LDAPv2 e LDAPv3 e contiene gli schemi per la gestione degli Address Book centralizzati (compatibili con Netscape, Mozilla e Outlook)  ) .
  • la  scelta di una password per l’utente admin
  • la scelta dell’interfaccia ETH principale, normalmente la stessa da cui stiamo effettuando la configurazione web, nel mio caso  mostra come scelta di default la ETH03

  • la scelta di un gateway

Al termine, con la selezione di Createavremo il nuovo Profile EXAMPLE.COM con la presenza del database delle configurazioni _DB.001 .

In questa fase il profile non è ancora attivo,  solo alla sua attivazione avremo la possibilità di rendere le modifiche permanenti. All’attivazione del profile seguirà un reboot della vm. Come ?

Alla selezione del profilo  [_DB.001] ci verrà presentato il menu contestuale  seguente

dove abbiamo diverse opzioni e in una prima installazione l’unica è Activate dove  ci verrà proposto la seguente finestra. Noi sceglieremo  Activate

Bene ora avremo il nostro REBOOT e la vm caricherà il nuovo profile come mostrato in figura

Notiamo  che la User e la Password sono in chiaro e tra le scelte abbiamo <P> Change admin password che consente la variazione della password. Una volta cambiata la password questa non sarà più visualizzata in console.

Suggerimento  provate a reinserire la stessa password come zeroshell e osservate i cambiamenti.

Ora torniamo alle altre scelte messe a disposizione nella stessa sezione  di Create profile :

  • Restore Profile che ci consente di ripristinare un profilo precedentemente salvato

  • View FS che riassume il contenuto della partizione con lo spazio utilizzato

  • Delete che ci permette di eliminare la partizione, infatti ci chiede di inserire un codice di conferma

  • Format che ci permette di cambiare il tipo filesystem  sulla partizione selezionata. Anche in questo caso ci viene chiesto di inserire un codice di conferma prima di eseguire il comando e la nuova Label da associare alla partizione.

Nella mia esperienza i comandi fdisk e mkfs possono essere utilizzati dalla command line di  ZeroShell per poi registrare il profilo dalla console web. Mi sono ritrovato in questa condizione quando la console web mi restituiva un errore in fase di inizializzazione del disco. Come consiglio una lettura di man fdisk e man mkfs non guasta mai.

Prima di addentrarci nella configurazione  voglio aggiungere le due patch. La loro aggiunta è semplice e ben documentata da Fulvio Ricciardi. I passi sono download e ./install.sh  semplice no ?!?

Codice (data) DA12 (18 Ottobre 2009)
Descrizione Snort IDS – Intrusion Detection and Prevention System
Release 1.0.beta12 2.8.5
Download http://www.zeroshell.net/listing/DA12-Snort-2.8.5-1.0.beta12.tar.bz2
Installazione cd /Database wget http://www.zeroshell.net/listing/DA12-Snort-2.8.5-1.0.beta12.tar.bz2 tar xvfj DA12-Snort-2.8.5-1.0.beta12.tar.bz2 cd DA12 ./install.sh

##

Codice (data) BA12 (14 Giugno 2009)
Descrizione Installazione del pacchetto DansGuardian, che cooperando con il servizio di transparent proxy, consente di filtrare il traffico web non desiderato. La configurazione di default nega l’accesso alle pagine web contenenti materiale per soli adulti.
Release 1.0.beta12 v1 2.8.0.6
Download http://www.zeroshell.net/listing/BA12-DansGuardian-Web-Content-Filter-2.8.0.6-1.0.beta12.tar.bz2
Installazione cd /Database wget http://www.zeroshell.net/listing/BA12-DansGuardian-Web-Content-Filter-2.8.0.6-1.0.beta12.tar.bz2 tar xvfj BA12-DansGuardian-Web-Content-Filter-2.8.0.6-1.0.beta12.tar.bz2 cd BA12 ./install.sh

Io raccomando di far precedere la configurazione dal fantastico comando loadkeys it che ci consente di utilizzare la tastiera italiana invece di quella inglese di default, questo accedendo in console.

Al termine dell’installazione della patch DA12 riporta il seguente messaggio:

—————————————————————————–

Snort 2.8.5 has been installed. For information see the web site http://www.snort.org

—————————————————————————–

– The file /var/register/system/snort/Interfaces contains the network interfaces on which Snort captures the packets (default ETH00)

– The file /etc/snort.conf contains the configuration of Snort

– To restart Snort daemon use the command: service snort restart

– To check the alerts use the Log Viewer of the web interface in the section [snort]

Mentre al termine dell’installazione della patch BA12 avremo  il seguente messaggio :

—————————————————————————–

DansGuardian 2.8.0.6 has been installed. Please, read the licensing notes at the URL http://dansguardian.org/?page=copyright2

—————————————————————————–

– The configuration files are located in /etc/dansguardian. For more details look at the URL http://www.zeroshell.net/eng/dansguardian ; – By default, the “Access Denied” messages are logged with the IP address of the clients. Take care to avoid to violate the privacy of the users. To change the log level, look at the configuration item “loglevel” in the file /etc/dansguardian/dansguardian.conf; – Keep in mind that DansGuardian works only if the transparent proxy service is enabled and the “HTTP Capturing Rules” are configured; – To tune the point of intervention of the filters, change the parameter “naughtynesslimit” in the file /etc/dansguardian/dansguardianf1.conf.

Un piccolo aiutino nel caso in cui vorremo rivedere queste fantastiche informazioni, dobbiamo guardare nei file ./scripts/30print  all’interno delle directory delle corrispondenti patch.

La prima configurazione,  necessaria, ora che abbiamo un profilo permanente  è nella sezione network. Il nostro scopo è ottenere tre sottoreti e Zeroshell per queste farà da

  1. router
  2. dhcp server
  3. dns forwarding
  4. radius server
  5. radius proxy server
  6. Captive Portal
  7. web filter
  8. trasparent proxy

Rivediamo la topologia della rete riporto l’immagine anche con la corrispondenza tra le interfacce HOST [zs0/zs1/ws0]  e quelle GUEST [ ETH00/ETH01/ETH02 ] Scegliamo come indirizzi  da assegnare a Zeroshell il .75 per tutte e tre le sottoreti. La configurazione si effettua mediante console web dalla sezione Setup scegliendo  dove ci verranno presentate tutte le ETH presenti. Come solita accortezza verifichiamo la corrispondenza dei MAC address tra le interfacce configurate sul host e quelle configurate sul guest, sempre e solo se state usando Opensolaris e Crossbow.

idefix@morano: $ dladm show-vnic zs0

LINK         OVER           MACADDRESS

zs0          lefth1              2:8:20:ef:2e:18

idefix@morano: $ dladm show-vnic zs1

LINK         OVER           MACADDRESS

zs1          right1              2:8:20:41:19:2d

idefix@morano: $ dladm show-vnic ws0

LINK         OVER           MACADDRESS

ws0      wireless1        2:8:20:f1:6e:9f

Fatta la verifica assegniamo il 192.168.0.75 a ETH00 il 192.168.1.75 a ETH01 ed infine alla ETH02 il 192.168.2.75 . La modifica dell’ip avviene, dopo aver selezionato la corrispondente interfaccia, mediante la selezione di  e con la visualizzazione del pop-up  che dovremo compilare con l’ip e la sottorete ed alla conferma avremo il riepilogo

ripetiamo la procedura per le altre interfacce con il seguente risultato

ora non resta che verificare che il forwarding tra le interfacce sia abilitato.

La verifica la otteniamo spostandoci nella sezione laterale  e verificando che nella nuova pagina che sia spuntata la casellina Enabled

Lo schema di rete prevede che le sottoreti 192.168.1.0  e 192.168.2.0 siano mascherate tramite l’interfaccia ETH00. Il motivo è che nella realizzazione presso l’Università di Bari alla ETH00 è associato un indirizzo pubblico, quindi abbiamo la necessità di NATtare le due sottoreti private.  Il menu che ci consente questa configurazione è presente nella stessa pagina .

Di seguito riporto il pop-up della configurazione, come regola aurea, la selezione dell’interfaccia è legata all’interfaccia che vogliamo effettui il nat delle connessioni in uscita.

Ora che il nostro router è quasi pronto, lo configuriamo anche come DHCP server. Alla fine potremo  effettuare  delle prove di raggiungibilità e connessione dai client sulle tre sottoreti verso il router in maniera trasparente.

Selezioniamo  dal menu laterale DHCP

ed avremo la possibilità di scegliere la ETH su cui andare a configurare la sottorete corrispondente

alla scelta di New avremo il pop-up per  la configurazione della sottorete e nel caso di più interfacce avremo un menu a tendina che ci consentirà di selezionare la corrispondente interfaccia

( in questo esempio abbiamo selezionato la ETH00 )

e selezionare l’intervallo degli ip che verranno assegnati ai client e salvare le modifiche [Save]

abbiamo anche la possibilita di assegnare sempre lo stesso ip ad un client (per esempio stampanti o altri servizi di rete). La selezione di Add nel menu Static IP Entries farà comparire il pop-up dove compilare l’associazione tra  IP e MAC.

al termine [OK]  avremo il riepilogo con la lista degli ip associati staticamente in base al loro MAC

Bene attiviamo la vm radius attesato sul vswitch [ lefth1 ]  dove si affaccia la zs0/ETH00 di zeroshell ed ecco il risultato

e dopo aver verificato la connettività con il semplice ping sulla stessa sottorete, verifichiamo anche che il forwarding funzioni indirizzando  un ip della sottorete 192.168.1.0.

La risposta dal ping è da un client MS Windows attestato  attraverso il vswitch [ rigth1 ]  dove si affaccia la zs1/ETH01

Un successo 😉

Seguiamo la documentazione di Fulvio per utilizzare i DNS di OpenDNS  per consentire a Zeroshell di memorizzare in cache le richieste di domain name resolution.

Il risultato è un miglioramento  in termini di prestazioni nelle risposte di risoluzione nome.  Selezioniamo dal menu a sinistra la voce DNS

ed avremo il menu contestuale

con la possibilità di scegliere Forwarders e la comparsa del pop-up

che compileremo come da documentazione:

Per configurare il server DNS di Zeroshell come descritto, cioè affinché usi i DNS OpenDNS come forwarders, bisogna semplicemente visualizzare la sezione [DNS][Forwarders] ed aggiungere i server con IP 208.67.222.222 e 208.67.220.220 separati da una virgola e specificando il dominio ANY (qualsiasi dominio).

il risultato è il seguente

Da poco ho scoperto che Google mette a disposizione dei  dns pubbici.

Possiamo trovare tutto a proposito di  GOOGLE PUBLIC DNS presso il link http://code.google.com/speed/public-dns/docs/using.html e qui riporto l’introduzione:

Why Google Public DNS?

As web pages become more complex and include more resources from multiple origin domains, clients need to perform multiple DNS lookups to render a single page. The average Internet user performs hundreds of DNS lookups each day, slowing down his or her browsing experience. As the web continues to grow, greater load is placed on existing DNS infrastructure.

Since Google’s search engine already crawls the web on a daily basis and in the process resolves and caches DNS information, we wanted to leverage our technology to experiment with new ways of addressing some of the existing DNS challenges around performance and security. We are offering the service to the public in the hope of achieving the following aims:

  • Provide end users with an alternative to their current DNS service. Google Public DNS takes some new approaches that we believe offer more valid results, increased security, and, in most cases, better performance.
  • Help reduce the load on ISPs’ DNS servers. By taking advantage of our global data-center and caching infrastructure, we can directly serve large numbers of user requests without having to query other DNS resolvers.
  • Help make the web faster and more secure. We are launching this experimental service to test some new ways to approach DNS-related challenges. We hope to share what we learn with developers of DNS resolvers and the broader web community and get their feedback.

Useremo la stessa sintassi compilando nel campo Domain ANY e nel campo Server gli ip 8.8.8.8 e 8.8.4.4 separati da una virgola.

Notiamo che avendo “copiato” il profilo EXAMPLE.COM nella sezione DNS è presente la sezione SOA  Start Of Authority così come  possiamo vedere i domini

e

ma diversamente (in una configurazione da zero)  possiamo tralasciare la configurazione nelle sezioni Master Zones e concentrarci sulla sola abilitazione mediante la check box  e la compilazione della sezione  Forwarders così come abbiamo già visto.

Abilitazione del RADIUS SERVER e del servizio di PROXY RADIUS

Ma perchè utilizzare radius ?

Vogliamo usare due fonti di autenticazione diversi uno interno [ Kerberos] ed uno esterno [ LDAP] a Zeroshell. Il risultato  lo otteniamo  mediante RADIUS [ FreeRADIUS ] e le sua capacità di proxy.

Il risultato è nella possibilità di utilizzare le capacità sia di  Zeroshell [ Captive Portal ] sia di servizi esterni [pGina] attraverso la mediazione  del servizo RADIUS.

All’opera …. dal menu laterale scegliamo RADIUS

e modifichiamo lo stato da DOWN a ACTIVE mediante la selezione della check box Enabled

e dopo l’abilitazione la salviamo [ Save ]

e radius c’è…

Dobbiamo definire le sottoreti o gli ip da cui vogliamo accettare le richieste [grazie peppe] quindi selezioniamo Access Point e visualizzeremoil pop-up Access Point List

La compilazione da me immaginata è

  • Access Point Name,  un nome di fantasia ma significativo nel mio caso _rete_192.168.1
  • IP or Subnet, l’ip o la sottorete da cui proverrà la richiesta radius, 192.168.1.0
  • Shared Secret, la  chiave di autenticazione usata da client e server radius, testing123. Questa password RADIUS è di default in una installazione Debian/Ubuntu. Ovviamente da cambiare in produzione

La Shared Secret deve coincidere con quella del server radius. La sezione   è il quid che ci serve, e la sezione di Proxy RADIUS Configuration riporta già configurato la sezione Realm LOCAL definita in fase di  Create Profile aggiungiamo un nuovo Realm del tipo Remote [nel nostro esempio è PRIVATO, lo stesso del Dipartimento di Diritto Privato dell’Università degli Studi di Bari]. Se non compiliamo Auth Port e Acct Port a questi campi verrà aggiunto il valore di default. Infine il Secret che rappresenta il valore segreto usato da client e server radius. alla conferma [Add] avremo il  riepilogo della configurazione

Vogliamo vederlo in azione con pGina?

Ma prima vediamo cosa implica No Strip difatti solo dopo aver letto la documentazione di Fulvio , di FreeRADIUS e fatto delle prove mi sono reso conto che la corretta configurazione nella sezione proxy deve essere la seguente

dove il chek box non deve essere spuntato, infatti al fianco all’indirizzo del proxy server NON compare più tra parentesi NS, come compariva nell’immagine precedente.

Il test della configurazione è semplice utilizziamo il Login di pGina e vediamo se gli utenti radius proxyati sono riconosciuti

Ora tutti gli utenti presenti sull’LDAP ETERNO sono anche autorizzati ad accedere ad i client Windows XP

anche il log di Zeroshell riporta come l’accesso radius sia OK

20:34:40 Login OK: [pippo@privato] (from client _rete_192.168.2 port 628 cli 192.168.2.80)

Gli utenti creati all’interno di Zeroshell possono accedere agli stessi client XP, la sola differenza è che NON devono far seguire alla propria username il suffisso  Realm del proxy server, nel nostro caso   @privato

Per poterlo provare dobbiamo creare un utente.

Utilizziamo il menu laterale  e ci verrà proposto il menu contestuale

dove avremo il solo utente admin.  Aggiungeremo il nuovo utente con  Add e ci verrà proposto il menu

che compileremo con le informazioni richieste.

tutte le impostazioni  non esplicitamente selezionate verranno compilate con le informazioni di default. Alla conferma [Submit] ci verrà mostrato il certificato creato. Nulla da fare solo guardare ed ammirare e passare al menu List per il riepilogo

dove avremo la visualizzazione degli utenti complessivi.

Come si comporta ora pGina con il nuovo utente ?

come potete vedere non abbiamo aggiunto nulla dopo la username e di conseguenza verrà riconosciuto come utente RADIUS locale, infatti

ed ancora una volta il log di ZeroShell ci conferma la richiesta radius  OK

20:56:46 Login OK: [aurelio] (from client _rete_192.168.2 port 628 cli 192.168.2.80)

In questa stessa  maniera avremo la possibilità di autenticare gli utenti tramite  il Captive Portal.

L’abilitazione del Captive  al momento è limitata ad una SOLA interfaccia anche sul FORUM è possibile trovare una esperienza per l’abiliazione del captive su più di una interfaccia. Nel mio caso specifico i client XP viaggiano solo con pGina e non mi resta che preoccuparmi di chi vuole usare il “proprio” pc mediante una connenssione wi-fi. Il contesto è una sala di consultazione all’interno di una Biblioteca. Vogliamo dare un servizio ai soli utenti registrati.

Un  access point risponde alle nostre esigenze, creiamo un SSID  senza nessun WEP/WPA e facciamo fare il lavoro a Zeroshell. L’access point usa la sottorete 192.168.1.0 e tutti i client riceveranno tutte le informazioni (ip,dns, gw) dal ZeroShell .

L’abilitazione del captive sarà su ETH1.

Scegliamo dal menu laterale il menu Captive Portal ed avremo la seguente sezione dove potremo selezionare l’interfaccia [Interface] che rende disponibile il servizio di Captive e il modo in cui vogliamo utilizzarlo [Mode]  sia Routed o Bridge. La nostra scelta ricade su Routed, rimandando alla documentazione di Fulvio per le differenze.

La sezione   diviene

dove abbiamo selezionato l’interfaccia di erogazione [ETH02] e dei parametri  [ Gateway Parameters ] come l’identificazione dei client in base all’IP and MAC address o la possibilità di connessioni simultanee [ Simultaneous Cennection = Not allowed ]

La sezione Authentication è quella che più che rende ottimale per i miei scopi ZS

Nella sezione Authorized Domanis abbiamo il segno + che ci permette di aggiungere il nostro nuovo dominio di autenticazione

che compiliamo selezionando un nome [Domain Name] e il  tipo [Domain Type]. La configurazione termina con la conferma delle modifiche [Save]

e la loro attivazione

Il risultato è evidente dalle seguenti immagini dove abbiamo dato  la possibilità di accesso  sia agli utenti definiti in ZeroShell sia a quelli mediante attraverso il proxy Radius

alla selezione del Network Access vedremo la connessione ed il pop-up che NON dovremo chiudere per non essere  disconnessi

Ed ora un prova con un utente del nuovo dominio “PRIVATO” .

Osserviamo che abbiamo selezionato  il dominio tramite il menu a tendina in corrispondenza di Domain

ed ecco ricomparire il pop-up che ci conferma la navigazione “captive

Infine ecco i log

18:49:41 AS: Success: Captive Portal Authentication Server started
18:49:42 GW: Success: Captive Portal Gateway started (0 clients connected)
18:58:03 AS: http session (Client: 192.168.2.80) captured for authentication (AS: 192.168.2.75)
18:58:07 AS: https session (Client: 192.168.2.80) captured for authentication (AS: 192.168.2.75)
18:59:46 AS: trying Kerberos 5 (Local KDC) authentication for aurelio@EXAMPLE.COM (Client: 192.168.2.80)
18:59:46 AS: Success: user aurelio@EXAMPLE.COM (Client: 192.168.2.80) successfully authenticated (Username,Password)
18:59:47 GW: Success: user aurelio@EXAMPLE.COM (IP: 192.168.2.80 MAC: 02:08:20:C1:B1:F0) connected
19:00:41 GW: disconnection request from the user aurelio@EXAMPLE.COM (Client: 192.168.2.80)
19:00:42 GW: Success: user aurelio@EXAMPLE.COM (IP: 192.168.2.80 MAC: 02:08:20:C1:B1:F0) disconnected
19:01:01 AS: https session (Client: 192.168.2.80) captured for authentication (AS: 192.168.2.75)
19:01:04 AS: https session (Client: 192.168.2.80) captured for authentication (AS: 192.168.2.75)
19:01:33 AS: trying Radius authentication (PAP) for pippo@privato (Client: 192.168.2.80)
19:01:36 AS: Radius authentication (PAP) failed for pippo@privato (Client: 192.168.2.80)
19:01:36 AS: warning: authentication failed for the user pippo@privato (Client: 192.168.2.80)
19:01:42 AS: https session (Client: 192.168.2.80) captured for authentication (AS: 192.168.2.75)
19:03:09 AS: trying Radius authentication (PAP) for pippo@privato (Client: 192.168.2.80)
19:03:09 AS: Success: user pippo@privato (Client: 192.168.2.80) successfully authenticated (Username,Password)
19:03:10 GW: Success: user pippo@privato (IP: 192.168.2.80 MAC: 02:08:20:C1:B1:F0) connected
19:03:33 GW: disconnection request from the user pippo@privato (Client: 192.168.2.80)
19:03:33 GW: Success: user pippo@privato (IP: 192.168.2.80 MAC: 02:08:20:C1:B1:F0) disconnected

Per finire abilitiamo sia  il Connection Tracking dalla sezione Firewall


sia  il proxy http [HTTP PROXY]

mediante la selezione delle interfacce su cui transiterà il traffico degli utenti. Nel nostro caso ETH01 e ETH02.


la visione d’insieme è la seguente

Buon Zeroshell a tutti

Ciao

2 Responses to “Configurazione di Zeroshell in VBox”

  1. NdK says:

    Manca un passaggio: cose bisogna configurare/installare su AD perché faccia da server RADIUS? Ci sto sbattendo la testa da un tot ma ancora qualcosa mi sfugge…

  2. admin says:

    Ciao, nel mio caso ho utilizzato un server radius esterno con il backend LDAP e configuraro Zeroshell come proxy radius per gli utenti presenti su ldap. Ma nessun active directory. Avevo un dominio samba con ldap.