Firebird Documentation Index → Firebird 2 Schnellanleitung → 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.
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:
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.
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.
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.
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.
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.
Seit Firebird 2 können Benutzer deren eigenes Passwort ändern. Vorherige Firebird Versionen benötigten dazu SYSDBA.
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.
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.
Wie bereits diskutiert: Falls Ihr Firebird Server vom
Netzwerk aus erreichbar ist, und das Systempasswort
masterkey
lautet, dann ändern Sie das
Passwort.
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.
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).
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.
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.
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.
Das Firebird Server Manager Applet ist in der Firebird Distribution inkludiert. Die Option zur Installation dieses Applets ist nur für Superserver verfügbar.
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.
Falls Sie ein Applet benötigen, das auch unter Windows 9x bzw. ME funktioniert, dann besuchen Sie die folgende Webseite:
... 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.
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.
Erinnern Sie sich: Sie können einen Windows Client verwenden, um auf einen Linux Server zuzugreifen und vice-versa.
Firebird Documentation Index → Firebird 2 Schnellanleitung → Serverkonfiguration und -management |