Indice del forum www.zeroshell.net
Distribuzione Linux ZeroShell
 
 FAQFAQ   CercaCerca  GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo  Log inLog in   Messaggi privatiMessaggi privati 

Zeroshell, RADIUS e Windows 7 che non si collega

 
Nuovo argomento   Rispondi    Indice del forum -> ZeroShell
Precedente :: Successivo  
Autore Messaggio
xz4xbj



Registrato: 11/01/11 10:51
Messaggi: 54

MessaggioInviato: Mar Mar 22, 2016 10:23 pm    Oggetto: Zeroshell, RADIUS e Windows 7 che non si collega Rispondi citando

Un mio caro amico e collega è originario di un borgo di una quindicina di case, in collina nel marchigiano.
Tempo fa, insieme ad altre persone residenti oppure che hanno la seconda casa, hanno costituito un comitato per la promozione e rivalutazione del borgo.
Sebbene distanti dalle centrali telefoniche, sono riusciti ad ottenere una ADSL decente.
Tutto il borgo è stato dotato di access point in roaming al fine di fornire connettività wifi.
A gestire tutto, neanche a dirlo, c'è Zeroshell.
Inizialmente è stato usato il captive portal, poi per una serie di problematiche si è deciso di usare RADIUS per l'accesso degli utenti.
Funziona tutto egregiamente, ma con i portatili Windows 7 ci sono problemi, dopo l'autenticazione non si connettono.
Come prima cosa andrebbe installato il certificato CA di Zeroshell nelle Root Certification Authority di Windows, in modo che il certificato fornito dal server RADIUS di Zeroshell sia considerato valido.
Questa è una operazione banale, per chi la sa fare, insormontabile per chi non sa cosa è un certificato digitale.
Senza entrare nei meriti della realizzazione, ho assemblato un batch con pezzi di codice presi qua e la su internet che:

- scarica il certicato CA di Zeroshell da una URL
- tramite certutil lo installa nella root dopo aver chiamato l'UAC per avere i diritti amministrativi

I tentativi successivi di connessione RADIUS vanno a buon fine.
Di seguito il file batch:


Codice:

@echo off

md c:\abcdef
cd c:\abcdef

set DLOAD_SCRIPT=download.vbs
echo Option Explicit                                                    >  %DLOAD_SCRIPT%
echo Dim args, http, fileSystem, adoStream, url, target, status         >> %DLOAD_SCRIPT%
echo.                                                                   >> %DLOAD_SCRIPT%
echo Set args = Wscript.Arguments                                       >> %DLOAD_SCRIPT%
echo Set http = CreateObject("WinHttp.WinHttpRequest.5.1")              >> %DLOAD_SCRIPT%
echo url = args(0)                                                      >> %DLOAD_SCRIPT%
echo target = args(1)                                                   >> %DLOAD_SCRIPT%
echo WScript.Echo "Getting '" ^& target ^& "' from '" ^& url ^& "'..."  >> %DLOAD_SCRIPT%
echo.                                                                   >> %DLOAD_SCRIPT%
echo http.Open "GET", url, False                                        >> %DLOAD_SCRIPT%
echo http.Send                                                          >> %DLOAD_SCRIPT%
echo status = http.Status                                               >> %DLOAD_SCRIPT%
echo.                                                                   >> %DLOAD_SCRIPT%
echo If status ^<^> 200 Then                                            >> %DLOAD_SCRIPT%
echo    WScript.Echo "FAILED to download: HTTP Status " ^& status       >> %DLOAD_SCRIPT%
echo    WScript.Quit 1                                                  >> %DLOAD_SCRIPT%
echo End If                                                             >> %DLOAD_SCRIPT%
echo.                                                                   >> %DLOAD_SCRIPT%
echo Set adoStream = CreateObject("ADODB.Stream")                       >> %DLOAD_SCRIPT%
echo adoStream.Open                                                     >> %DLOAD_SCRIPT%
echo adoStream.Type = 1                                                 >> %DLOAD_SCRIPT%
echo adoStream.Write http.ResponseBody                                  >> %DLOAD_SCRIPT%
echo adoStream.Position = 0                                             >> %DLOAD_SCRIPT%
echo.                                                                   >> %DLOAD_SCRIPT%
echo Set fileSystem = CreateObject("Scripting.FileSystemObject")        >> %DLOAD_SCRIPT%
echo If fileSystem.FileExists(target) Then fileSystem.DeleteFile target >> %DLOAD_SCRIPT%
echo adoStream.SaveToFile target                                        >> %DLOAD_SCRIPT%
echo adoStream.Close                                                    >> %DLOAD_SCRIPT%
echo.                                                                   >> %DLOAD_SCRIPT%
rem -------------------------------------------------------------------------

rem Nella riga successiva mettere la url del certificato al posto di quella che c'è.
rem Esempio: http://www.pippo.it/certificati/CA.der ca.der

cscript //Nologo %DLOAD_SCRIPT% http://<url del certificato> ca.der


     call :isAdmin

     if %errorlevel% == 0 (
        goto :run
     ) else (
        echo Requesting administrative privileges...
        goto :UACPrompt
     )

     exit /b

     :isAdmin
        fsutil dirty query %systemdrive% >nul
     exit /b

     :run
      REM <YOUR BATCH SCRIPT HERE>
     
      certutil -addstore "Root" ca.der     
     
      echo.
      echo.
      echo !! VERIFICARE CHE IL CERTIFICATO SIA STATO INSTALLATO !!
      echo !! NELLE RIGHE SOPRA DEVE ESSERE SCRITTO:
      echo ## CertUtil: - Esecuzione comando addstore riuscita ##
      echo.
      echo.
      pause
      cd c:\
      del c:\abcdef\*.* /q
      rmdir c:\abcdef /q
     exit /b

     :UACPrompt
       echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
       echo UAC.ShellExecute "cmd.exe", "/c %~s0 %~1", "", "runas", 1 >> "%temp%\getadmin.vbs"

       "%temp%\getadmin.vbs"
       del "%temp%\getadmin.vbs"
      exit /B`


Il batch è stato testato su più PC sempre con successo.
Quando ci si connette a Zeroshell in RADIUS permane un piccolo problema che credo sia dovuto al self sign del certificato root.
Windows chiede l'autenticazione un paio di volte, poi compare questo avviso:





Basta premere su CONNETTI come evidenziato e la connessione si stabilisce:



Nella speranza di essere stato utile, saluto.
Ciao a tutti.


Paolo.

---
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> ZeroShell Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi


Powered by phpBB © 2001, 2005 phpBB Group
phpbb.it