====== VPN per Tenant ======
L'accesso alla shell delle Virtual machine (da ora VM) od ad altri servizi che non hanno policy ben definite in termine di security per INFN-CC, è ammissibile solo attraverso l'uso di una instanza/VM che funge da server VPN e viene avviata all'interno del progetto stesso.
In maniera molto semplifica, la VPN proietta la rete del tenant/progetto nella vostra macchina di lavoro rendendo reggiungibili gli ip associati alle VM istanziate.
E' buona norma quindi in fase di realizzazione del progetto, fare alcune cosiderazione sull'indirizzamento di rete che si dovrà associare alle nostre VM.
Vi ricordo che molte subnet, che vi elencherò a breve, sono utilizzate dai nostri router casalinghi o spesso anche nelle nostre sedi di appartenenza quindi prima di creare la topologia del network chiedere ad un sistemista di rete, quale sia la scelta migliore.
In ogni caso, cercate di evitare l'uso delle seguenti subnet private:
192.168.0.0/24
192.168.1.0/24
192.168.178.0/24
Vi ricordo che la classe A 10.0.0.0/8 dispone di oltre 16 milioni di indirizzi privati, è quindi una buona candidata nella quale scegliere la nostra subnet di lavoro per il tenant. (es 10.200.0.0/24, ovvero da 10.200.0.0 a 10.200.0.255).
Prima di istanziare il nostro server VPN dovremmo reperire le seguente informazioni del tenant:
**key: Name of a KeyPair to enable SSH access to the instance**
**private_net_id: name of private network**
**public_net_id: name of public network**
**private_subnet_id: name of private sub network**
Di seguito alcuni screenshot da cui prendere le informazioni richieste.
{{:cn:ccr:cloud:infn_cc:key_cloud.png}}
{{:cn:ccr:cloud:infn_cc:net_cloud.png}}
{{:cn:ccr:cloud:infn_cc:priv_net_cloud.png|}}
Potete quindi fare il download del seguente tamplete HEAT (l'orchestratore di VM per openstack), semplicemente eseguendo il seguente comando:
[root@node1 ~]# git clone https://baltig.infn.it/rgargana/vpn-infncc-heat.git
:!: E' necessario avere sulla propria macchina git e avere effettuato almeno un accesso sul git lab dell'infn all'indirizzo https://baltig.infn.it
Ora è possibile lanciare il nostro template heat, dalla pagina di progetto cloud.
Sotto il menu "Orchestration" esiste la voce "Stacks". Premere il bottore "**+launch stack**", in alto a destra della schermata.
Come da schermata vi chiederà la sorgente del template (**Template Source**) e scegliete "**file**". Selezionate sfoglia e cercate il file di nome vpn-infncc.heat nel vostro PC (es /Users/rgargana/vpn-infncc-heat/vpn-infncc.heat).
{{:cn:ccr:cloud:infn_cc:load_templete_cloud.png|}}
:!: Non editate la parte **Environment Source**
**NEXT** per andare avanti.
Come da schermata vi chiederà di inserire i parametri già reperiti in precedenza. Inoltre dovrete dare un nome allo stack (** Stack Name**) che puo essere arbitratio (es vpn-), il **flavor** ovvero la caratteristica della VM in termini di cpu, memoria e disco (lasciate small), l'**image** del sistema operativo (lasciate CentOS-7-x86_64), e il nome della VM che verrà istanziata. Date un nome alla VM che sia riconoscibile dalle altre VM di progetto ad esempio vpn-server-.
{{:cn:ccr:cloud:infn_cc:launch_stack.png|}}
**LAUNCH** per andare avanti.
Nella pagina stacks troverete il vostro stack con il nome assegnato. Cliccando sullo stack vi appariranno una serie di informazioni relative alla creazione dello stack stesso. Cosa fondamentale nel menu **Overview** si trova la password causale per l'accesso da console con utente centos.
:!: Vi ricordo che l'accesso da remoto è abiltiato solo con chiave RSA.
Sotto la pagina di progetto Compute/Instances si trova l'instanza con il nome assegnato in stato running.
La creazione della VM impieghera alcuni minuti. Fintano non sarà terminato il processo di creazione non sarà possibile accedere ne in console ne in ssh.
{{:cn:ccr:cloud:infn_cc:setup_vpn_cloud.png|}}
Al termine della creazione in console apparira la tipica pagina di accesso:
CentOS Linux 7 (Core)
Kernel 3.10.0-957.21.3.el7.x86_64 on an x86_64
vpn login:
Ora è possibile accedere in console o in ssh alla VM per abilitare gli utenti in VPN.
Al primo accesso, la VM dovà terminare di configura il server VPN, quindi dovrete attendere ancora qualche minuto. Al termine della configurazione apparirà il seguente menu:
###########################################################################################################################
# INFN-CC openVPN VM #
# Potrai abilitare/disabilitare utenti INFN al progetto inserendo la loro email o lo username e seguendo le indicazioni. #
# Al termine della procedura l'utente sara' abilitato o disabiltato in base alle tue esigenze. #
# #
# ATTENZIONE: LA GENERAZIONE DELLA CA PER OPENVPN E' UN PROCESSO LENTO, ATTENDERE QUALCHE MINUTI PRIMA DI SCARICARE IL #
# IL FILE DI CONFIGURAZIONE #
# #
# PER UTENTI ESPERTI: PER ENTRARE IN SHELL PRESS CTRL-C #
###########################################################################################################################
Attendere sto scaricando l'immagine Docker
Cosa vuoi fare?
(M)odificare utenti abilitati
(P)rendere il file di configurazione OVPN
(V)edere utenti abilitati
(U)scire?
Scegliere la voce di menu in base alle vostre necessità. Gli utenti potranno essere aggiunti nota lo uid nazionale o la mail istituzionale.
Un volta aggiunti gli utenti, verificare il filtro mediante l'apposita funzione ed infine scaricare il file di configurazione per il client vpn.
:!: Vi ricordo che il file di configurazione per il client VPN è uguale per ogni utente, basta quindi conservarlo sul proprio PC per poi inviarlo agli utenti abilitati.
m( Ad oggi non è ancora possibile scaricare il file di configurazione per il client VPN da console, è opportuno quindi lavorare in ssh.