mercoledì 30 aprile 2014

Configurare un secondo tunnel VPN con openvpn su zeroshell 1.0 beta 16 per permettere la connessione di Android senza root - Parte 1, della configurazione di OpenVPN e Android

Buongiorno a tutti.

Oggi sono finalmente riuscito a configurare quello che è nel titolo del post e che volevo fare da un po' di tempo...

Ho un piccolo box con l'ottimo zeroshell (zeroshell.org, da qui in avanti "ZS") che mi funge da firewall.
Avevo in precedenza utilizzato la sua ottima web interface per mettere a disposizione una VPN (Virtual Private Network) a dei client windows e Android (ma solo con root e busybox+openvpn).

Il motivo per cui non si potevano creare tunnel con Android non root è che in tal caso il tipo di interfaccia di rete virtuale deve essere "TUN", mentre ZS utilizza "TAP" e non c'è modo di cambiarlo.

Se pensate siano solo delle simpatiche onomatopee, rinunciate a leggere il resto. :-)

Allora, quello che vi dirò qui è un bel po' machinoso e complicato, ma la sola lettura del post e la comprensione di alcuni parametri serviranno a meglio comprendere parecchie cose su OpenVPN ed il suo modo di funzionare, nonchè su come rendere permamenti i cambiamenti (questi o altre personalizzazioni che potreste decidere di fare).

Nota per i non-informatici: se avete già mal di testa non continuate la lettura. Non mi assumo nessuna responsabilità di alcun genere per mal di testa formato famiglia ne' mi potrete addebitare spese per farmaci o cure neurologiche o di altro tipo....





OK, a parte gli scherzi, cominciamo. Allacciate le cinture.

Allora, siccome openvpn permette la creazione di più VPN contemporaneamente, mi è saltato il pallino che CI DEVE ESSERE UN MODO per permettermi di tenere su entrambe le device (TUN e TAP) senza quindi andarmi a rimodificare tutte le config. dei clients...
Questo articolo potrebbe anche titolare:
Come creare una VPN per Android con OpenVPN
Come permettere più tunnel contemporaneamente con OpenVPN / Zeroshell

ma, per motivi legati al tempo, diciamo che "unifico tutto" (unifico tutto?)

Dopo varie prove ho creato questi file di configurazione, per il server e per il client, rispettivamente:

############## SERVER FILE ####################
#imposto la device virtuale per essere TUN
dev tun
#ascolto per connessioni che vengono dall'interfaccia ESTERNA DEL FIREWALL
local 172.17.104.2

#modalità server, ovvio
mode server

#Transport-Layer-Security server. Cioè crittografa tutte le trasmissioni.
tls-server

#qui definisco la RETE sulla quale dovranno essere assegnati gli IP dei clients
server 192.168.250.0 255.255.255.0
# protocollo tcp-server
proto tcp-server

#porta 1195 (quella di default 1194 è già usata dall'altro tunnel)
port 1195

#una volta startato "demonizzati", ovvero diventa un demone in esecuzione e rilascia il comando da shell.
daemon VPNH2Ltun



#Qui imposto i vari certificati: CA, certificato per la TLS, ...
ca /DB/_DB.002/var/register/system/openvpn/Auth/X509/CAFile
cert /DB/_DB.002/var/register/system/openvpn/TLS/cert.pem
key /DB/_DB.002/var/register/system/openvpn/TLS/key.pem
dh /etc/ssl/dh.pem

#_DB.002 è il nome del vostro profilo attivo


# verbosity 5, perchè voglio vedere TUTTO nei log .
verb 5
push "redirect-gateway def1"
push "dhcp-option DNS 192.168.250.254"

# 192.168.250.254 è l'IP di ZS sulla interfaccia virtuale VPN principale.
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
comp-lzo
status /var/log/tmpOVPN/openvpn-status.log
log /var/log/tmpOVPN/openvpn.log
log-append /var/log/tmpOVPN/openvpn.log

client-cert-not-required
auth-user-pass-verify /root/kerbynet.cgi/scripts/ov_pw_auth via-env
username-as-common-name
comp-lzo
#ifconfig-pool 192.168.250.1 192.168.250.253 255.255.255.0
push dhcp-option DNS 10.36.40.242
push route remote_host 255.255.255.255 net_gateway 1
push route X.X.X.X 255.255.255.0
push route 172.17.100.0 255.255.255.0
push route 172.17.101.0 255.255.255.0
push route 172.17.102.0 255.255.255.0
push route 172.17.103.0 255.255.255.0
push route 172.17.105.0 255.255.255.0
push route 192.168.111.0 255.255.255.0 

# queste sono le VOSTRE subnet che volete siano raggiunte tramite la VPN.
client-connect /root/kerbynet.cgi/scripts/ov_connect
client-disconnect /root/kerbynet.cgi/scripts/ov_disconnect
mute 3
duplicate-cn
script-security 3

###############################################



########## CLIENT FILE #########################
remote Z.Z.Z.Z 1194
proto tcp


#Z.Z.Z.Z è l'IP PUBBLICO DEL VOSTRO ZS

auth-user-pass
# Chiaramente devi poi andare (in openvpn per android) a selezionare il file .pem che ti sei esportato da zeroshell..
ca CA.pem

# due righe commentate
;cert client.pem
;key  client.pem

comp-lzo
verb 3
mute 20
resolv-retry infinite
nobind
client
dev tap
persist-key
persist-tun


###############################################

Leggendo i commenti potrete apprendere cosa significano i vari  parametri.


a questo punto non ci resta che andare in Zeroshell e lanciare il tunnel con openVPN dalla SHELL (dovete abilitare SSH e loggarvi), per vedere se funziona.... ma questo lo vedremo nel prossimo articolo... :-)

Installazione automatica (unattended, silent, automatic) di Office 2013 Home & Business, Standard, Professional, Pro Plus, Home & student, 365, etc etc etc

Buongiorno a tutti, :-)


Oggi parliamo di utilizzo di Office 2013 in ambito Aziendale, e più specificamente di come sia possibile automatizzare l'installazione di Office sui PC.

Dovete sapere che (come in passato) esistono molte, moltissssssime versione di Office.

  • Home & Business
  • Home & Studend
  • Standard
  • Professional
  • Pro Plus
  • ......
Esistono anche molte moltisssssssime licenze diverse:

  • Retail (la scatola comprata al negozio, hai presente? :-) )
  • Volume License (licenze a chiave singola per volumi elevati (solitamente non richiede attivazione)
  • Software Assurance (contratto Con Microsoft per la fornitura di software sotto una licenza particolare)
  • Multiple Activation Key (chiave singola per attivazioni multiple. Quantità predefinita)
  • Key Management System (server in locale nella vs rete che si occupa della gestione licenze).
  • ....


Poi dovete sapere che esistono molti, moltissssssssssssssssssimi modi di automatizzarne l'installazione. Alcuni compatibili con talune edizioni ed altri compatibili solo con altre....

Questi i metodi:

  1. Creare un file XML con le configurazioni (seguendo questo schema) e passarlo all'installer di Office, distribuendolo via script .
  2. Creare un file .msp con lo strumento Office Configuration Tool e distribuirlo via GPO (policy) o via script. (ulteriori info qui)
  3. Lo strumento Office Deployment Tool for Click-to-Run, creando un file XML con le configurazioni (diverse, vedi QUI) e passadolo allo strumento. Questa modalità vi permette anche di SCARICARE da Microsoft in AUTOMATICO i file necessari (scarica la versione che definite nel tag PRODUCT, all'attributo ID). Questo metodo è supportato per queste versioni (scrivo i ProductIDs):
    • O365ProPlusRetail
    • VisioProRetail
    • ProjectProRetail
    • SPDRetail (SharePoint Designer)
    • AccessRetail
    • ExcelRetail
    • GrooveRetail
    • HomeBusinessRetail
    • HomeStudentRetail
    • InfoPathRetail
    • LyncEntryRetail
    • LyncRetail
    • ProfessionalRetail
    • O365HomePremRetail
    • O365SmallBusPremRetail
    • OneNoteRetail
    • OutlookRetail
    • PowerPointRetail
    • ProjectStdRetail
    • PublisherRetail
    • VisioStdRetail
    • WordRetail
  4. I parametri MSIEXEC (per le installazioni che ce l'hanno l'msi...).
  5. Scardinare il file .msi e modificarlo secondo i nostri bisogni ... un po' estremo... 
  6. .....


insomma: c'è una CONFUSIONE PAZZESCA!!!!

Disabiguiamo:

Metodo1:
quando usarlo:
Lo puoi usare con le versioni in teoria non retail, ma scaricate. Quindi tutte le altre.
Puoi anche omettere le informazioni di Chiave di attivazione (CD Key), che sarebbero contenute nel TAG e poi attivare il software dopo inserendola a mano.

in pratica:
Crei il file XML. c'è un esempio nella cartella di installazione di office che si chiama config.xml e + precisamente nella sottocartella con il nome della versione (es: standard.ww)
Leggi la guida di riferimento che ho linkato così sai tutto ciò che puoi fare.

esempio (l'ho creato io e l'ho pure testato su una versione standard):
ARPCOMMENTS="Office 2013 installato da Sistemi Informativi e Processi Della mia azienda"
ARPCONTACT=SupportoIT@miaAzienda.it"
ARPHELPLINK="http://SharepointTicket/sip"
ARPHELPTELEPHONE="telefonoAssistenza"
/>
\\altroserver\share\Office 2013 64Bit
" />



Metodo 2:
quando usarlo:
Quando vuoi distribuire con GPO o comunque vuoi creare un pacchetto autoeseguibile con le tue configurazioni specifiche.
in pratica:
  • esegui setup.exe /admin e segui le istruzioni grafiche per impostare tutti i parametri. 
esempio:
non serve: lancialo e vedrai.

Metodo 3:
quando usarlo:
Quando hai una installazione Retail (come l'economico Home & Business, che ho appunto scelto per la mia rete)
in pratica:
  • scarichi il Office Deployment Tool for Click-to-Run dal sito MS.
  • crei un XML (leggermente diverso dal metodo 1), che contiene alcune info. poi lanci
  • \setup.exe /download /configure
  • Questo gli fa SCARICARE i files di installazione necessari per la versione che hai scelto e messo nell'attributo ID del tag Product (es:  )
esempio (l'ho testato giusto oggi e funziona alla grande):
 
 
     
             
   
 
 
 
 
ARPCOMMENTS="Office 2013 installato da Sistemi Informativi e Processi Della mia azienda"
ARPCONTACT=SupportoIT@miaAzienda.it"
ARPHELPLINK="http://SharepointTicket/sip"
ARPHELPTELEPHONE="telefonoAssistenza"
 />
 
 
 




E lo script per l'installazione?
Eccolo:
@echo off
 SET instPath="\\das-fs01\utility\UtilitySoftware\Microsoft Office\Office 2013\Autodeploy"

REM scelgo la architettura processore
if %PROCESSOR_ARCHITECTURE%==AMD64 (
) ELSE (
 SET ARCHE=_32
)

REM leggi versione isntallata di Word
for /F "usebackq delims=. tokens=1,2,3,4,*" %%a IN (`reg query "HKEY_CLASSES_ROOT\Word.Application\CurVera"`) Do (
if not .%%c==. (
set versioneOff=%%c
)
)

set /A versioneOff=%versioneOff%+0
REM echo %versioneOff%
REM se già installato skip
// se la versione installata è >= 15 allora non installare niente.
if /I %versioneOff% GEQ 15 (
goto :giaInst
)

echo versione  attuale = %versioneOff%, sto installando Office 15 (2013)

REM se 32bit viene lanciato con config_click_to_run_32.xml, altrimenti con config_click_to_run.xml, all'interno dei quali ho scelto la architettura del software.
"%instPath:"=%\setup.exe" /configure "%instPath:"=%\config_click_to_run%ARCHE%.xml"

goto fine
:giaInst
echo inst. office non necessaria
:fine


Beh. spero di essere stato utile a qualcuno. Io ho perso qualche ora a capire 'sti stranfieri...

Ciao! :-)