Serverkonfiguration und -management

<< Installation von Firebird | Firebird 2 Schnellanleitung | Arbeiten mit Datenbanken >>

Serverkonfiguration und -management

Es gibt einige Dinge, die Sie kennen und um die Sie sich kümmern müssen, bevor Sie beginnen einen neu installierten Firebird Server zu verwenden. Dieses Kapitel stellt Ihnen nützliche Tools und deren Verwendung vor, um Ihren Server und Ihre Datenbank zu schützen.

Benutzerverwaltung: gsec

Firebird kommt mit einem Kommandozeilentool für die Benutzerverwaltung, namens gsec. Obwohl die Funktionen auch über eine Anzahl an graphischen Drittherstellertools ausgeführt werden können, sollten Sie zumindest grundlegende Kenntnisse über gsec besitzen, da es sich hierbei um das offizielle Tool für die Benutzerverwaltung handelt, und auch in jeder Firebird Server Installation vorgefunden werden kann. In den nächsten Abschnitten werden Sie gsec verwenden, um zwei Aufgaben durchzuführen: Ändern des SYSDBA Passworts und Hinzufügen eines neuen Firebird Benutzers. Zunächst jedoch noch ein paar wichtige Punkte:

Berechtigung um gsec auszuführen

Bei einigen Firebird Installationen können Sie gsec nur dann ausführen, wenn Sie als Superuser (root unter Linux) oder als Benutzer unter dem der Firebird Server Prozess läuft, angemeldet sind. Auf Windows Serverplattformen müssen Sie in der Regel Mitglied der Power User Gruppe oder höher sein, um gsec erfolgreich ausführen zu können.

Probleme beim Ausführen von gsec

Falls Sie über ausreichende Berechtigungen verfügen, jedoch ein Aufruf von gsec die folgende Fehlermeldung zur Folge hat "cannot attach to password database - unable to open database":

  • Sie verwenden Firebird unter Windows und aus einem bestimmtem Grund funktioniert das lokale Protokoll nicht. Sie können dieses Problem umgehen, in dem Sie gsec überlisten und TCP/IP verwenden. Fügen Sie den folgenden Parameter beim Aufruf von gsec hinzu. Wenn nötig, passen Sie den Pfad an:
-database "localhost:C:\Programme\Firebird\Firebird_2_0\security2.fdb"
Die Datei security2.fdb ist die Sicherheits (Benutzer) Datenbank, in der Firebird die Benutzeraccounts ablegt. Diese Datei befindet sich in Ihrem Firebird Installationsverzeichnis.
  • Womöglich ist Ihre Sicherheitsdatenbank eine umbenannte security.fdb von Firebird 1.5. Dies kann natürlich nicht der Fall unmittelbar nach der Installation sein. Irgendjemand (Sie?) muss diese Datei danach in das Firebird Installationsverzeichnis kopiert haben, um die existierenden Benutzeraccounts wieder zu verwenden. Nehmen Sie dafür die Release Notes zur Hilfe, um eine alte, existierende Sicherheitsdatenbank zu aktualisieren.

Falls die Fehlermeldung mit "Cannot attach to services manager" beginnt, dann kann es sein, dass der Server gar nicht läuft. In diesem Fall, gehen Sie zurück zu Testen Ihrer Installation und beheben Sie das Problem.

Aufruf von gsec unter Linux

Auf **nix Systemen müssen Sie ./gsec anstatt von gsec verwenden. Das aktuelle Verzeichnis ist gewöhnlich nicht Bestandteil des Suchpfades. Somit kann ein einfaches gsec entweder fehlschlagen oder ein "falsches" gsec gestartet werden.

Ändern des SYSDBA Passworts

Ein Firebird Benutzeraccount wird als Bestandteil des Installationsprozesses automatisch erstellt, nämlich SYSDBA. Dieser Account besitzt alle Berechtigungen auf dem Server und kann nicht gelöscht werden. Abhängig von der Firebird Version, dem Betriebssystem und der Architektur wird die Installationsroutine entweder

  • den SYSDBA Benutzer mit dem Passwort masterkey (aktuell, masterke: alle Zeichen nach dem achten Zeichen werden ignoriert) erstellen, oder
  • Sie während der Installation nach einem Passwort fragen, oder
  • ein zufälliges Passwort generieren und dieses in der Datei SYSDBA.password im Firebird Installationsverzeichnis ablegen.

Falls das Passwort masterkey ist und Ihr Server direkt dem Internet – oder nur einem lokalen Netzwerk, es sei denn Sie trauen jedem Benutzer mit dem SYSDBA Passwort – ausgesetzt ist, dann sollten Sie das Passwort sofort nach der Installation mit dem gsec Kommandozeilentool ändern. Gehen Sie dazu in eine Kommandozeile, wechseln Sie in das Firebird bin Unterverzeichnis und führen Sie das folgende Kommando aus, um das Passwort in (als ein Beispiel) icuryy4me zu ändern:

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

Beachten Sie, dass Sie "sysdba" in diesem Kommando zweimal verwenden:

  • Mit dem -user Parameter identifizieren Sie sich selbst als SYSDBA. Sie geben auch das aktuelle Passwort von SYSDBA mit dem -pass Parameter an.
  • Der -mo[dify] Parameter teilt gsec mit, dass Sie einen Benutzeraccount ändern wollen, nämlich wiederum SYSDBA. -pw spezifiziert die Art der Änderung, nämlich das Passwort.

Wenn alles gut gegangen ist, dann ist das neue Passwort nun icuryy4me, welches verschlüsselt gespeichert wurde. masterkey ist nicht weiter gültig. Beachten Sie bitte, dass im Unterschied zu Firebird Benutzernamen, Passwörter case-sensitiv sind.

Hinzufügen von Firebird Benutzeraccounts

Firebird erlaubt das Erstellen von vielen unterschiedlichen Benutzeraccounts. Jeder von diesen Benutzeraccounts kann der Eigentümer von Datenbanken sein und kann auch unterschiedliche Zugriffsformen auf Datenbanken und Datenbankobjekten haben, bei denen der Benutzer nicht der Eigentümer ist.

Unter Verwendung von gsec können Sie Benutzeraccounts, von der Kommandozeile im Firebird bin Unterverzeichnis aus, erstellen:

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

Vorausgesetzt, dass Sie das korrekte Passwort für SYSDBA angegeben haben, wird nun ein Benutzer billyboy mit einem Passwort sekrit66 angelegt. Erinnern Sie sich, dass Passwörter case-sensitiv sind.

Anmerkung: Seit Firebird 2 können Benutzer deren eigenes Passwort ändern. Vorherige Firebird Versionen benötigten dazu SYSDBA.

Sicherheit

Firebird 2 stellt eine Vielzahl an Sicherheitsoptionen zur Verfügung, die einen unerlaubten Zugriff so schwer wie möglich machen sollen. Seien Sie jedoch darauf hingewiesen, dass einige konfigurierbare Sicherheitsfeatures per Vorgabe das alte Verhalten von InterBase® und Firebird 1.5 aufweisen, um die Funktionstüchtigkeit existierender Anwendungen nicht zu gefährden.

Es zahlt sich mit Sicherheit aus, wenn Sie sich mit Firebird's sicherheitsrelevanten Konfigurationsparametern vertraut machen. Sie können Ihre Systemsicherheit erheblich erhöhen, wenn Sie den Sicherheitslevel erhöhen, wann immer es möglich ist. Dies ist nicht nur eine Frage des Setzens von Parametern, sondern auch das Tunen von Dateisystemberechtigungen, einer intelligenten Benutzeraccount-Policy, usw.

Nachfolgend sind ein paar Richtlinien zum Schutz Ihres Firebird Servers und Ihrer Datenbanken angeführt.

Betrieb von Firebird als Nicht-System Benutzer

Unter Unix-ähnlichen Systemen läuft Firebird per Default bereits unter dem Benutzer firebird und nicht als root. Unter Windows Serverplattformen können Sie den Firebird Dienst unter einem designierten Benutzeraccount (z.B. Firebird) laufen lassen. Das Standardvorgehen, nämlich den Dienst unter dem LocalSystem Benutzer laufen zu lassen, kann ein Sicherheitsrisiko nach sich ziehen, falls Ihr System an das Internet angeschlossen ist. Konsultieren Sie dazu README.instsvc im doc Unterverzeichnis, um mehr darüber zu erfahren.

Ändern des SYSDBA Passworts

Wie bereits diskutiert: Falls Ihr Firebird Server vom Netzwerk aus erreichbar ist, und das Systempasswort masterkey lautet, dann ändern Sie das Passwort.

Erzeugen Sie keine Datenbanken mit SYSDBA

SYSDBA ist ein sehr leistungsfähiger Account, mit vollen (zerstörerischen) Zugriffsberechtigungen für alle Firebird Datenbanken. Das Passwort sollte nur für bestimmte Datenbankadministratoren bekannt gemacht werden. Darum sollten Sie diesen Benutzeraccount nicht zum Erzeugen und zum Befüllen von regulären Datenbanken verwenden. Erstellen Sie stattdessen einen normalen Benutzeraccount, und verteilen Sie die Benutzernamen und Passwörter je nach Bedarf an Ihre Benutzer. Das Erstellen von Benutzeraccounts kann mit gsec (wie Sie bereits gesehen haben) oder einem beliebigen Dritthersteller Administrationstool erfolgen.

Schützen Sie Datenbanken auf Dateisystemebene

Jeder, der Leseberechtigungen auf Dateisystemebene für die Datenbank besitzt, kann diese kopieren, auf einem anderen System installieren und alle Daten extrahieren, möglicherweise auch sensitive Inhalte. Jeder, der Schreibberechtigungen auf Dateisystemebene besitzt, kann die Datenbankdatei beschädigen oder sogar vollständig zerstören.

Die goldene Regel dafür ist: Nur der Firebird Serverprozess muss Zugriff auf die Datenbankdatei haben. Benutzer benötigen keine, und sollten auch keine Zugriffsberechtigungen auf diese Dateien haben, nicht einmal Leseberechtigungen. Die Benutzer greifen auf die Datenbank über den Server zu, und der Server stellt sicher, dass Benutzer nur den erlaubten Zugriff auf Datenbankobjekte erhalten (wenn überhaupt).

Deaktivieren Sie Classic Local Mode unter Linux

Eine Ausnahme für die oben genannte Regel ist der sogenannte lokale oder embedded Zugriffsmodus von Firebird Classic unter Linux. Dieser Modus setzt voraus, dass Benutzer die entsprechenden Rechte auf die Datenbankdatei besitzen. Sie benötigen auch lesenden Zugriff auf die Sicherheitsdatenbank security2.fdb. Falls Sie das beunruhigt, schränken Sie den Zugriff auf die Sicherheitsdatenbank auf Dateisystemebene (und auch für andere Datenbanken, wenn Sie schon dabei sind) auf den Serverprozess ein. Die Benutzer sind dann verpflichtet, denn Zugriff über die Netzwerkschicht durchzuführen. Wie auch immer, die libfbembed.* Bibliotheken sollten nicht von Ihrem System entfernt werden, weil die Firebird Kommandozeilentools die Verwendung verweigern, wenn diese Bibliotheken nicht vorhanden sind.

(Eine weitere Ausnahme ist der Windows Embedded Server, der aber nicht Bestandteil dieser Schnellanleitung ist.)

Verwenden Sie Datenbankaliase

Datenbankaliase schützen den Client davor, Kenntnisse über die physischen Speicherorte der Datenbank haben zu müssen. Durch Verwendung von Aliase kann sich ein Client z.B. zu frodo:zappa verbinden, ohne hierbei wissen zu müssen, dass der tatsächliche Speicherort der Datenbank frodo:/ var/ firebird/ music/ underground/ mothers_ of_ invention.fdb ist. Aliase erlauben auch, dass Sie Datenbanken wo anders hin verschieben können, ohne hierbei den Verbindungsstring am Client ändern zu müssen.

Aliase befinden sich in der Datei aliases.conf, mit folgendem Aussehen unter Windows:

 poker = E:\Games\Data\PokerBase.fdb
 blackjack.fdb = C:\Firebird\Databases\cardgames\blkjk_2.fdb

Und unter Linux:

 books = /home/bookworm/database/books.fdb
 zappa = /var/firebird/music/underground/mothers_of_invention.fdb

Die Verwendung von .fdb (oder einer anderen beliebigen) Erweiterung im Aliasnamen ist vollkommen optional. Natürlich muss diese Erweiterung, wenn verwendet, bei der Angabe des Alias für die Verbindung zu einer Datenbank verwendet werden.

Schränken Sie den Datenbankzugriff ein

Der DatabaseAccess Parameter in firebird.conf kann auf einen Wert Restrict gesetzt werden, um den Zugriff auf explizit angeführte Verzeichnisstrukturen einzuschränken, oder sogar auf None, um den Zugriff nur über Aliase zu erlauben. Der Vorgabewert ist All, d.h. keine Einschränkungen.

Beachten Sie, dass das nicht das selbe zu den Zugriffsberechtigungen auf Dateisystemebene ist, wie wir das vorher bereits diskutiert haben: Falls DatabaseAccess einen anderen Wert als All aufweist, dann wird der Server jeglichen Zugriff auf Datenbanken außerhalb des definierten Bereichs verweigern, sogar dann, wenn der Serverprozess ausreichende Berechtigungen für die Datenbankdatei besitzt.

Es gibt allerdings noch weitere Sicherheitsparameter. Die Parameter, die hier nicht erwähnt wurden, sind per Default bereits auf einen ausreichenden Schutzlevel eingestellt. Diese Parameter werden in den Release Notes (1.5 und 2.0; beide sind in Firebird 2 inkludiert) und über die Kommentare in firebird.conf beschrieben.

zurück zum Seitenanfang

Windows-Systemsteuerungsapplets

Einige Systemsteuerungsapplets sind für die Verwendung mit Firebird vorhanden. Obwohl diese Applets nicht zwingend erforderlich sind, stellen Sie dennoch einen komfortablen Weg zum Starten und Stoppen des Servers und zur Überprüfung des aktuellen Status zur Verfügung.

Firebird Server Manager

Das Firebird Server Manager Applet ist in der Firebird Distribution inkludiert. Die Option zur Installation dieses Applets ist nur für Superserver verfügbar.

Anmerkung: Das Applet ist auch für Classic Server verwendbar. Es wird jedoch vorausgesetzt, dass der Server als Dienst und nicht als Anwendung läuft. Da der Installationsdialog Ihnen keine Möglichkeit zur Installation des Applets in Verbindung mit dem Classic Server gibt, müssen Sie, sofern Sie dieses Applet mit Classic Server wirklich verwenden wollen:

  • Zuerst den Superserver installieren;
  • Kopieren Sie danach das Applet Firebird2Control.cpl vom Windows Systemverzeichnis an einen sicheren Ort;
  • Deinstallieren Sie den Superserver;
  • Installieren Sie Classic;
  • Kopieren Sie das Applet zurück in das Systemverzeichnis.

Dies ist ein Screenshot des aktivierten Applets. Beachten Sie, dass die Titelbar „Firebird Server Control“ verwendet, obwohl es in der Systemsteuerung als Firebird 2.0 Server Manager angeführt wird.

Bedauerlicherweise funktioniert dieses Applet nur in Verbindung mit Windows NT, 2000/2003 and XP.

Firebird Control Center

Falls Sie ein Applet benötigen, das auch unter Windows 9x bzw. ME funktioniert, dann besuchen Sie die folgende Webseite:

http://www.achim-kalwa.de/fbcc.phtml

... und laden Sie das Firebird Control Center fbcc-0.2.7.exe herunter. Beachten Sie bitte, dass im Gegensatz zu dem Applet, das mit der Firebird Distribution mitkommt, das Firebird Control Center nicht mit Classic Server funktioniert.

Das Control Center sieht nicht so wie das Firebird Applet in der Abbildung oben aus, stellt aber die selbe Funktionalität zur Verfügung. Achtung: Falls Sie Firebird als Dienst und ohne den Guardian verwenden, dann wird der Start/Stop Button immer mit Start beschriftet, sogar dann, wenn der Server bereits läuft. Das Applet funktioniert allerdings wie erwartet. In allen anderen Situationen wird der Button mit Start oder Stop beschriftet, abhängig vom Status.

zurück zum Seitenanfang

Administrationstools

Das Firebird Kit kommt mit keinem graphischen Administrationstool. Es besitzt allerdings eine Menge an Kommandozeilentools, d.h. ausführbare Programme, die sich im bin Unterverzeichnis Ihrer Firebird Installation befinden. Eines davon, nämlich gsec, wurde Ihnen bereits näher gebracht.

Die Bandbreite der exzellenten GUI Tools, die für Windows Clients verfügbar sind, ist so groß, dass Sie hier nicht näher beschrieben werden können. Einige GUI Tools, die mit Borland Kylix entwickelt wurden, sind für Linux Clients verwendbar. Diese befinden sich allerdings in unterschiedlichen Stufen der Entwicklung bzw. Fertigstellung.

Besuchen Sie Downloads > Contributed > Administration Tools page auf http://www.ibphoenix.com für alle möglichen Optionen.

Anmerkung: Erinnern Sie sich: Sie können einen Windows Client verwenden, um auf einen Linux Server zuzugreifen und vice-versa.

Siehe auch:
Firebird konfigurieren

zurück zum Seitenanfang
<< Installation von Firebird | Firebird 2 Schnellanleitung | Arbeiten mit Datenbanken >>