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 vongsec
hinzu. Wenn nötig, passen Sie den Pfad an:
-database "localhost:C:\Programme\Firebird\Firebird_2_0\security2.fdb"
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 teiltgsec
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.)
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.
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:
https://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.
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 https://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 >>