Mettiamo più Open dentro OSPO3

From ImoLUGPedia

Jump to: navigation, search

Contents

Mettiamo più Open dentro OSPO3

scarica documento PDF

Preambolo

Dalla richiesta di un nostro tesserato, incidentalmente responsabile di una associazione vicina alla Caritas di Faenza-Modigliana, è nato questo progetto. Normalmente le loro strutture utilizzano un software denominato OSPO. Scaricabile da tutti gli utenti registrati ed autorizzati collegandosi a www.caritasitaliana.it. Ora, si vuole poter condividere i dati tra le varie strutture facenti parte della rete di volontariato che orbita attorno alla Caritas Diocesana. Erano stati richiesti alcuni preventivi a note aziende, ma la soluzione prospettata era oltre che notevolmente dispendiosa, anche, concedetemi un po’ grossolana. Nel senso che nessuno aveva tenuto conto dei reali bisogni e della struttura del prodotto OSPO3.

OSPO3 è un pacchetto nato per macchine windows, è composto di una parte application e di una parte database. Fortunatamente il db scelto dagli sviluppatori è un MySQL (per windows). Dopo un po’ di prove e dopo aver letto la documentazione (scarsa dal punto di vista tecnico) messa disposizione dal fornitore ho verificato che era possibile avere le due componenti spezzate su due macchine diverse ed con qualche trucco il database poteva benissimo stare su una macchina Linux.

Un robivecchio è passato da casa e mi ha lasciato il materiale per la sfida: un vecchio ferro con 128MB di RAM.

Installazione del Server

CPU:		Pentium Pro 180MHz
RAM:		128MB 
scheda Video:	Maxtor MGA2064W 4MB-PCI
scheda Rete:	3c905B 100BaseTX
scheda SCSI:	Adaptec 2940 Ultra/UltraW
HDD:		IC35L036UWDY10 36.7 GB 10k rpm UltraSCSI 320
CDROM:	IDE 48X
BIOS:		1.0.18.CS1 per VS440FX

Se uno fosse ordinato non ci sarebbero problemi, ma capita che chi sviluppa in ambiente windows non ci faccia caso. In particolare Windows è Case Insensitive e siccome i nomi delle tabelle di MySQL vengono salvati come file risulta corretto, su windows fare delle query con il nome delle tabelle sia maiuscolo che minuscolo. Su macchine Unix NO. Grazie ai suggerimenti trovati sulla ML del nostro sito ho utilizzato il parametro –lower-case-table-names=1 che rende il comportamento di MySQL su Unix uguale a quello di MySQL su macchine Windows. In particolare non viene tenuto conto di nomi di tabella in maiuscolo o minisculo.

Il server consiste semplicemente di una macchina linux su cui ho installato SuSE 10.0 (era la distro su CD più nuova che mi trovavo per le mani) e MySQL 5.0.

Da una installazione vergine di OSPO3 Server ho estratto la export del db che ho in seguito importato dentro il server linux.

Ho apportato la modica allo script di lancio di MySQL in /etc/init.d/mysql

elif test -x $bindir/mysqld_safe
then
# Give extra arguments to mysqld with the my.cnf file. This script
# may be overwritten at next upgrade.
  pid_file=$server_pid_file
  $bindir/mysqld_safe --lower-case-table-names=1 \
                      --datadir=$datadir         \
                      --pid-file=$server_pid_file\
                      $other_args >/dev/null 2>&1 &
  wait_for_pid created $!; return_value=$?

Installazione del Client

Image:Ospo3.01.png

Procuriamoci un po’ software OpenSource anche per la parte client e cioè il software relativo al procollo SSH

Ci serve solamente PuTTYgen, ma nn fa male avere a portata di mano PuTTY e WinSCP Trovato un servizio per mantenere attivi i tunnel SSH su macchine Windows: questo SoftWare è con licenza FreeWare.

Con il SW sopra citato realizzeremo un tunnel con chiavi in maniera da avere un canale SSH attivo con il server. Per connettersi al db MySQL il prodotto utilizza ODBC per cui serve scaricare gli appositi driver da:

Solo alla fine installeremo il pacchetto OSPO3 solo nella sua componente Application.

Riepilogo delle attività:

  * Generazione di una coppia di chiavi specifiche per la postazione di lavoro.
  * Importazione della chiave pubblica sul server
  * Configurazione del Tunnel SSH con utilizzo della chiave privata
  * Installazione del driver ODBC per MySQL
  * Installazione di OSPO3

Generazione di una coppia di chiavi

Image:Ospo3.02.png

Image:Ospo3.03.png

L’uso classico del protocollo SSH ci permette di connetterci ad una macchina remota attraverso un canale criptato e autenticato. Noi vogliamo creare un tunnel SSH tra la macchina Windows ed il Database Linux, ma vogliamo svincolare l’utente dal doverlo fare a mano e dall’inserire una password. PuTTYgen ci permette di generare una coppia di chiavi asimmetriche. Una chiave privata che risiederà sulla sola macchina Windows ed una chiave pubblica che verrà caricata sulla macchina Linux. Questo sistema asimmetrico ci eviterà l’inserimento della password per identificare la connessione.

Image:Ospo3.04.png

Lasciamo la passphrase vuota altrimenti in fase di collegamento ci chiederebbe di digitarla


Image:Ospo3.05.png

Image:Ospo3.06.png

Image:Ospo3.07.png

Image:Ospo3.08.png


Ora abbiamo una coppia di chiavi asimmetriche!

Importazione della chiave pubblica sul server

Sul server Linux ho creato una utenza particolare tOSPO che permetta la chiusura del tunnel senza dare privilegi particolari a nessuno. Ma ora torniamo sul client Windows.

Image:Ospo3.00.png

Configurazione del Tunnel SSH con utilizzo della chiave privata

MyEnTunne è un prodotto FREEWARE e contiene al suo interno anche la versione di Plink necessaria.


Image:Ospo3.09.png

Image:Ospo3.10.png

Image:Ospo3.11.png

Ovviamente siamo interessati a creare un servizio quindi selezioniamo anche la seconda voce. Nel caso di un Windows senza servizi, tipo Win95, dovremo accontentarci di una icona sul desktop da attivare prima di OSPO3!


Image:Ospo3.12.png


Image:Ospo3.13.png


Image:Ospo3.14.png


Image:Ospo3.15.png

Prima di configurare il servizio serve copiare il file con la chiave privata e posizionarlo nella cartella di installazione di MyEnTunnel con il nome service-keyfile.ppk. Il link o un altro nome NON funzioneranno.


Image:Ospo3.16.png

Image:Ospo3.17.png

Image:Ospo3.18.png

Ora possiamo configurare il servizio tunnel per mappare la porta locale 3306/tcp sulla porta remota 3306. Per un collegamento all’interno della stessa lan basterà conoscere l’indirizzo ip del server. Per connessioni via Internet invece bisognerà inserire il nome della macchina, ad esempio ospo.caritasfaenza.it.

Image:Ospo3.19.png

Image:Ospo3.20.png

Image:Ospo3.21.png

Lucchetto verde! Quindi tutto a posto. Possiamo registrare il servizio così non dovremo mai più preoccuparci di farlo partire.

Image:Ospo3.22.png

Image:Ospo3.23.png

Image:Ospo3.24.png

Installazione del driver ODBC per MySQL

Image:Ospo3.25.png

Image:Ospo3.26.png

Image:Ospo3.27.png

Image:Ospo3.28.png

Image:Ospo3.29.png

Image:Ospo3.30.png

ora configuriamo un DSN che punti alla porta locale 3306, ma con le credenziali normalmente utilizzate da OSPO3 per connettersi al suo db cioè: utente=utenteospo e password=’res’

Image:Ospo3.31.png

Image:Ospo3.32.png

Image:Ospo3.33.png

Image:Ospo3.34.png

Installazione di OSPO3

Image:Ospo3.35.png

Image:Ospo3.36.png

Image:Ospo3.37.png

Image:Ospo3.38.png

Image:Ospo3.39.png

Image:Ospo3.40.png

Image:Ospo3.41.png

Image:Ospo3.42.png

Image:Ospo3.43.png

Buon Divertimento!

Personal tools
Navigation