Mettiamo più Open dentro OSPO3
From ImoLUGPedia
Contents |
Mettiamo più Open dentro OSPO3
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
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
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.
Lasciamo la passphrase vuota altrimenti in fase di collegamento ci chiederebbe di digitarla
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.
Configurazione del Tunnel SSH con utilizzo della chiave privata
MyEnTunne è un prodotto FREEWARE e contiene al suo interno anche la versione di Plink necessaria.
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!
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.
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.
Lucchetto verde! Quindi tutto a posto. Possiamo registrare il servizio così non dovremo mai più preoccuparci di farlo partire.
Installazione del driver ODBC per MySQL
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’
Installazione di OSPO3
Buon Divertimento!












































