Firebird Documentation IndexGuida rapida per Firebird 2 → Configurazione ed amministrazione del server
Firebird Home Firebird Home Indietro: Installare FirebirdFirebird Documentation IndexRisali: Guida rapida per Firebird 2Avanti: Operare sulle basi di dati

Configurazione ed amministrazione del server

Gestione degli utenti: gsec
Sicurezza
Strumenti del pannello di controllo in Windows
Strumenti d'amministrazione

Ci sono diverse cose da sapere e di cui preoccuparsi prima di cominciare ad usare il server Firebird appena installato. Questa parte del manuale presenta alcuni strumenti utili e mostra come si possano proteggere sia il server che i database.

Gestione degli utenti: gsec

Firebird ha un programma di utilità a linea di comando per la gestione degli utenti chiamata gsec. Sebbene le sue stesse funzioni possano essere effetuate anche attraverso un gran numero di utilità ad interfaccia grafica di terzi, bisognerebbe avere comunque una conoscenza basilare di gsec, in quanto questo è lo strumento ufficiale ed è presente in ogni installazione Firebird. Più avanti vedremo quindi come usare gsec per eseguire queste duè procedure:cambiare la password di SYSDBA ed aggiungere a Firebird un nuovo utente. Prima però è necessario fare attenzione su quanto segue:

Permessi per eseguire gsec

In certe installazioni si può utilizzare gsec solo se si è entrati nel sistema come Superuser (root su Linux) o con lo stesso utente sotto il quale opera il server Firebird. Sulle piattaforme Windows, è necessario di solito essere nel gruppo Power User o ad un livello più alto per utilizzare gsec senza problemi.

Problemi con gsec

Avendo privilegi sufficienti ma lanciando gsec si ha un messggio del tipo «cannot attach to password database - unable to open database» allora:

  • Se Firebird gira su Windows, per qualche motivo il protocollo locale potrebbe non funzionare. Una causa comune di questo potrebbe essere che si usa Windows Vista, 2003 oppure XP con i terminal services abilitati. Per abilitare il protocollo locale, in questo caso, aprire il file firebird.conf, togliere il commento al parametro IpcName ed impostarlo a Global\FIREBIRD. A questo punto è necessario far ripartire il server.

    Nota

    In Firebird 2.0.1 e successivi, Global\FIREBIRD è già il default nei sistemi Windows con Terminal Services abilitati.

  • Se non è il vostro caso, si può sempre cercare di aggirare il problema specificando a gsec di cercare il database attraverso TCP/IP. Si tratta di aggiungere al comando il seguente parametro, correggendo il percorso del file come necessario:

    -database "localhost:C:\Programmi\Firebird\Firebird_2_0\security2.fdb"

    Il file security2.fdb è il database della sicurezza (security database), in cui Firebird memorizza i suoi dettagli degli utenti ammessi. È nella directory di installazione di Firebird.

  • Può essere anche che il vostro file della sicurezza sia un security.fdb di Firebird 1.5 rinominato. Naturalmente questo non può essere successo durante o subito dopo l'installazione. Qualcuno deve averlo messo (o dimenticato) lì, ad esempio per mantenere gli utenti esistenti di una precedente installazione ancora disponibili. Per aggiornare i vecchi security database è necessario consultare le istruzioni presenti nelle Release Notes.

Se il messaggio di errore inizia con «Cannot attach to services manager», allora può essere che il server non stia funzionando affatto. In tal caso, tornare indietro alla Verifica dell'installazione e correggere il problema.

Usare gsec su Linux

Sui sistemi **nix, chiamando gsec dalla sua directory, bisogna digitare ./gsec invece di solo gsec. Siccome il direttorio corrente non fa parte del percorso di ricerca, il solo gsec può non funzionare o lanciare una gsec «sbagliata».

Modificare la password di SYSDBA

SYSDBA è l'utente che viene creato in automatico durante il processo d'installazione di Firebird. Questo è l'utente che ha tutti i privilegi sul server e che non può essere eliminato. Il programma di installazione, in funzione della versione, del sistema operativo, e dell'architettura

  • o crea l'utente SYSDBA con password masterkey (in realtà sarebbe masterke: i caratteri oltre l'ottavo sono ignorati)

  • oppure chiede una password durante l'installazione

  • oppure genera una password casuale e la memorizza nel file SYSDBA.password nella directory di installazione di Firebird.

Se la password è masterkey ed il server è in qualche modo esposto in internet o perfino in una rete locale, a meno di non ritenere completamente affidabili gli utenti sulla password di SYSDBA, si dovrebbe cambiarla immediatamente usando il programma di utilità a linea di comando gsec. Aprendo una finestra di comandi, cd al sottodirettorio bin di Firebird e lanciare il seguente comando per cambiare la password, ad esempio, in c88Gwche:

gsec -user sysdba -pass masterkey -mo sysdba -pw c88Gwche

Notare che nel comando bisogna specificare due volte «sysdba»:

  • Con il parametro -user ci si identifica come SYSDBA. Si deve dare la password corrente di SYSDBA's nel parametro -pass.

  • Il parametro -mo[dify] dice a gsec che si vuol modificare un utente, che in questo caso è ancora SYSDBA. Infine, -pw specifica il tipo di modifica, cioè la password.

Se tutto ha funzionato a dovere, la nuova password di SYSDBA, c88Gwche, sarà encriptata e memorizzata, e la vecchia masterkey non sarà più valida. Fate attenzione che le password distinguono fra maiuscole e minuscole, mentre i nomi utente non lo fanno.

Aggiungere utenti a Firebird

È possibile creare in Firebird diversi tipi di utenti. Ognuno di essi può essere proprietario di basi di dati ed anche avere diversi tipi di accesso alle basi di dati, di cui non è proprietario, ed ai loro oggetti.

Con gsec, lanciato da linea di comando dal sottodirettorio bin di Firebird, si aggiunge un nuovo utente come nell'esempio che segue:

gsec -user sysdba -pass masterkey -add ninobar -pw sekrit66

Ammesso che abbiate dato la password corretta di SYSDBA (masterkey è il default in molti casi, come abbiamo già detto), abbiamo creato un nuovo utente con user name ninobar e con password sekrit66. Ricordare che le password sono sensibili al caso maiuscolo o minuscolo delle lettere.

Nota

A partire da Firebird 2, gli utenti possono cambiarsi le password. Nelle versioni precedenti poteva farlo solo SYSDBA.

Sicurezza

Firebird 2 ha differsi sistemi di sicurezza progettati per rendere gli accessi non autorizzati il più difficili possibile. Va fatta attenzione sul fatto che alcuni di questi sistemi configurabili sono per default nella modalità vecchia «non sicura», che è stata ereditata da InterBase e Firebird 1.0, per far funzionare ancora le vecchie applicazioni.

È utile avere dimestichezza con i parametri di configurazione relativi alla sicurezza di Firebird in quanto si riesce ad aumentare in modo significativo il livello di sicurezza del sistema ogniqualvolta sia possibile. Ovviamente non si tratta solo di settare parametri in modo opportuno: altri sistemi comportano la pianificazione dei permessi di accesso ai files, un modo intelligente di distribuire i diritti di accesso al sistema, ed altro ancora.

Ecco alcune linee guida per proteggere il server Firebird ed i vostri database.

Eseguire Firebird da utente non di sistema

Nei sistemi Unix-like, Firebird già viene eseguito dall'utente firebird per default, non come root. Sulle piattaforme server di Windows, si può far eseguire il servizio Firebird da un utente definito appositamente (esempio Firebird). Il modo standard, cioè lanciare il servizio come l'utente LocalSystem, mette un sistema connesso ad Internet a rischio sicurezza. Consultare il documento README.instsvc nel sottodirettorio doc per saperne di più su quest'argomento.

Modificare la password di SYSDBA

Come già detto sopra, se il vostro sistema Firebird è raggiungibile dall'esterno e la password del server è rimasta masterkey, cambiatela.

Non create basi di dati utente da SYSDBA

SYSDBA è un utente molto potente, con diritti di accesso completi e distruttivi su tutte le basi di dati Firebird. La sua password dovrebbe essere nota solo a pochi amministratori fidati. Pertanto non bisogna adoperare questo super-utente per creare e riempire le normali basi di dati. Invece, vanno generati normali utenti della base di dati, dando questi ultimi normali nomi e password per i vostri utenti finali. Questo può essere fatto con gsec come visto sopra, o con un qualsiasi strumenti di amministrazione per Firebird di terzi.

Proteggere le basi di dati a livello del sistema di file

Chiunque possa leggere un database, può anche copiarlo, poichè ne ha i diritti a livello di filesystem, inoltre può installarlo il suo controllo ed estrarne tutti i dati, incluse tutte le possibili informazioni sensibili. Chiunque ne abbia accesso a livello di scrittura, può corromperlo o addirittura distruggerlo completamente.

Come regola, solo il processo server di Firebird dovrebbe avere accesso ai files delle basi di dati. Gli utenti non hanno questa necessità e non dovrebbero potervi accedere, nemmeno in sola lettura. Questi possono accedere ad un qualunque oggetto nel database solo attraverso richieste al server, ed il server si assicura che tali richieste abbiano il permesso adeguato per accedervi, altrimenti le rifiuta.

Disabilitare il collegamento locale nel Classic Server in Linux

Una eccezione alla regola precedente è il cosidetto accesso in locale o embedded del Firebird Classic Server in Linux. In tale modalità di funzionamento è necessario che gli utenti abbiano gli idonei diritti di accesso al file della base di dati. Inoltre devono avere accesso in lettura al file del database della sicurezza security2.fdb. Se questo crea problemi, è meglio riservare l'accesso al database di sicurezza (e, già che ci si sta', anche agli altri database) al solo processo del server. Gli utenti sono pertanto costretti a connettersi attraverso lo strato di rete. Va ricordato che le librerie libfbembed.* non dovrebbero essere rimosse dal sistema, perchè altrimenti gli strumenti a linea di comando di Firebird non funzionerebbero.

(Un discorso a parte meriterebbe il Windows Embedded Server, ma questo esula dagli scopi di questo manuale.)

Usare gli alias dei database

I database alias oscurano la reale locazione del database ai client. Usando gli alias, un client può connettersi pertanto ad esempio a «frodo:zappa» senza sapere che il file sia realmente frodo:/var/firebird/musica/underground/mothers_of_invention.fdb. Gli alias permettono anche di riposizionare i database lasciando intatte le stringhe di connessione dei client.

Tutti gli alias sono elencati nel file aliases.conf, che è in questo formato sulle macchine Windows:

tresette = E:\giochi\DBMS\tresette.fdb
briscola.fdb = C:\Firebird\DBMS\giochi\napoletane.fdb

e su Linux:

libri = /home/libri/DBMS/libri.fdb
zappa = /var/firebird/musica/underground/mothers_of_invention.fdb

È puramente opzionale dare all'alias un'estensione qualsiasi come .fdb. Naturalmente, includendola, va specificata anche nella stringa di connessione al database se si vuole utilizzare quell'alias.

Limitare l'accesso ai file delle basi di dati

Il parametro DatabaseAccess presente nel file di configurazione firebird.conf può essere impostato a Restrict per limitare il server ad accedere ai sottoalberi esplicitamente indicati, o anche a None affinchè possa accedere ai soli database identificati attraverso gli alias. Il default è All, vale a dire senza restrizione alcuna.

Notare che questa non è la stessa cosa della protezione di accesso a livello di file di sistema già vista prima: quando DatabaseAccess è diverso da All, il server si rifiuta di connettersi a qualsiasi database al di fuori dell'ambito definito anche se avesse sufficienti diritti sul file della base di dati.

Ci sono altri parametri di sicurezza, ma quelli di cui qui non si parla sono già impostati per default ad un livello di protezione adeguato. Si possono leggere le Note di Rilascio di Firebird 1.5 e 2.0 e i commenti nel file firebird.conf per ulteriori informazioni (solo in inglese).

Strumenti del pannello di controllo in Windows

Per Firebird sono diponibili alcuni strumenti nel pannello di controllo di Windows. Sebbene non siano essenziali, sono utili per far partire e per fermare il server e vedere il suo stato attuale di funzionamento.

Il Firebird Server Manager

Lo strumento Firebird Server Manager fa già parte della distribuzione di Firebird. L'opzione per installarlo è disponibile solo per Superserver.

Nota

Lo strumento si può usare anche per Classic server, purchè esso sia in funzione come servizio, e non come applicazione. Poichè non si può installare direttamente, o si prova a scaricarlo da Internet oppure bisogna fare un giro un po' largo se si vuole proprio usare:

  • Installare prima Superserver;

  • Copiare il file Firebird2Control.cpl dalla directory di sistema di Windows in un posto sicuro;

  • Disinstallare Superserver;

  • Installare Classic;

  • Copiare lo strumento salvato di nuovo nella directory di sistema.

Questa è un'immagine dello strumento attivato. Notare che la barra del titolo dice «Firebird Server Control», sebbene nel Pannello di Controllo sia elencato come Firebird 2.0 Server Manager.

Lo strumento che viene con Firebird 2 funziona solo con Windows NT, 2000/2003 and XP.

Firebird Control Center

Per avere uno strumento funzionante anche in Windows 9x o ME, si può vedere alla pagina web:

...e scaricare il file del Firebird Control Center fbcc-0.2.7.exe. Si prega di notare che, a differenza dello strumento incluso in Firebird, il Firebird Control Center non funziona con i server Classic.

Il Control Center non assomiglia allo strumento di Firebird visto nell'immagine, ma offre più o meno le stesse funzioni. Attenzione: con Firebird configurato come servizio e senza il Guardian, il pulsante di Start/Stop resta sempre etichettato «Start», anche quando il server è già in funzione. Però funziona come dovrebbe. In tutte le altre configurazioni, mostra «Start» o «Stop» correttamente in funzione della situazione.

Strumenti d'amministrazione

Il kit di Firebird non contiene strumenti di amministrazione ad interfaccia grafica. Ha un insieme completo di strumenti a linea di comndo, cioè programmi eseguibili che sono nel sottodirettorio bin dell'installazione di Firebird. Abbiamo già diffusamente parlato di uno di questi, gsec.

La varietà di utilità ad interfaccia grafica disponibili per ambiente Windows è troppo vasta per essere inclusa qui. Alcune utilità scritte in Borland Kylix, per essere usate in ambiente Linux, sono in vari stadi di completamento.

Si può vedere Downloads > Contributed > Administration Tools su http://www.ibphoenix.com per tutte le varie opzioni.

Nota

Da ricordare: si possono usare client Windows per amministrare ed accedere a server Linux e viceversa.

Indietro: Installare FirebirdFirebird Documentation IndexRisali: Guida rapida per Firebird 2Avanti: Operare sulle basi di dati
Firebird Documentation IndexGuida rapida per Firebird 2 → Configurazione ed amministrazione del server