Home ORDIX AG             Dienstleistung             Trainingsshop    Kunden / Referenzen Aktuelles    Kontakt
Home  Pfeil  ORDIX News  Pfeil  3/2004
suche: 

ORDIX News Archiv

Das IT-Magazin der ORDIX AG mit Fachbeiträgen zu Datenbanken, Unix und Java/XML.

Reihe IBM Informix Dynamic Server 9.40 (Teil V):

Externe Authentifizierung

Die Authentifizierung z. B. mittels LDAP ist eine in Unternehmen sehr häufig eingesetzte Methode. Aber wie sieht das mit meiner IBM Informix Datenbank aus? Da gibt´s doch "nur" die Authentifizierung über das Betriebssystem? Muss ich also trotzdem meine Accounts auf Betriebssystemebene weiter pflegen? Nein! Denn ab IBM Informix 9.4 geht´s auch anders – Dank PAM.

PAM

Die externe Authentifizierung war in bisherigen IBM Informix Releases nicht möglich. Die einzige Möglichkeit war die Authentifizierung über das Betriebssystem (Systemcalls/passwd) oder mittels "trusted" Host (/etc/hosts.equiv). Ab dem aktuellen Release besteht die Möglichkeit der externen Authentifizierung mittels PAM.

Basics

PAM steht für Pluggable Authentication Module (1995 von SUN Microsystems entwickelt) und besteht aus einer Ansammlung von Shared Librarys. Für die folgenden Authentifizierungsmethoden stehen u. a. PAM Module zur Verfügung:

Der Vorteil von PAM ist, dass der IBM Informix Datenbank Server nichts über den eigentlichen Authentifizierungsprozess wissen muss. Es werden lediglich generische PAM Funktionen aufgerufen.

Funktionsweise/Konfiguration

Die Konfiguration der PAM Authentifizierung wird wie bei der Encryption über die SQLHOSTS implementiert. Die 5. Spalte der SQLHOSTS entscheidet, welche PAM Konfigurationsdatei (Modul) und somit welche Authentifizierungsmethode zum Einsatz kommt.

Im Folgenden wird die Konfiguration von PAM unter Linux beschrieben. Das bedeutet, dass die Verzeichnispfade und die Konfiguration von anderen Unix-Derivaten leicht abweichen können.

Der Connect zur Datenbank

Der Connect Aufbau unterscheidet sich im Wesentlichen nicht von einem herkömmlichen Connect Aufbau. Der Unterschied besteht in der Authentifizierungsmethode. Standardmäßig wird die Authentifizierung mittels Systemcalls (getpw/passwd) durchgeführt. Dabei werden Mechanismen, wie "veraltetes Passwort" etc., berücksichtigt und führen gegebenenfalls zur Ablehnung des Connects.

Bei der externen Authentifizierung wird innerhalb des sqlexec Threads (User Thread) die PAM Authentifizierung (ifxPAMAuthentication) durchgeführt (vgl. Abbildung 1). Dieses "stößt" den eigentlichen Authentifizierungsprozess (pam_start) an. Im Anschluss wird überprüft, ob der User auch wirklich "der" ist, der er vorgibt "zu sein" (pam_authenticate Library).

Abb. 1: Authentifizierung mittels PAM.

Der PAM-Aufruf (ifxPAMAuthentication) gibt lediglich ein "accept" oder ein "reject" als Ergebnis zurück.

PAM Konfiguration

Die installierten bzw. zur Verfügung stehenden PAM Module sind im Verzeichnis /lib/security hinterlegt. Die entsprechenden Konfigurationsdateien befinden sich im Verzeichnis /etc/pam.d und können für jede Anwendung spezifisch erstellt werden. Für alle anderen Programme steht die Konfigurationsdatei /etc/pam.d/other zur Verfügung.

Die PAM Konfigurationsdatei unterliegt dem in Abbildung 2 gezeigten Aufbau.

Abb. 2: Aufbau der PAM Konfigurationsdatei.

Modul-Typen

Die Modul-Typen, auch PAM Interfaces genannt, unterscheiden verschiedene Authentifizierungsstufen. Hierbei werden die folgenden Einträge ausgewertet:

Control-Flag

Jeder Authentifizierungsvorgang kann aus einem oder auch mehreren Modultypen/Interfaces bestehen (z. B. zuerst Authentifizierungsversuch mittels LDAP, bei "Reject" dann Authentifizierung mittels des Betriebssystems). Die Abarbeitung erfolgt sequenziell. Was bei einem gescheiterten bzw. bei einem "korrekten" Authentifizierungsversuch geschieht, entscheidet das Control-Flag. Hier sind die folgenden Einstellungen erlaubt:

Argumente

Viele Module unterstützen den Aufruf mit Argumenten, z. B. den Parameter "debug" (Schreiben von Debug-Informationen ins Message Log File, z. B. /var/log/messages).

Abbildung 3 zeigt eine typische Authentifizierung (z. B. für Informix) mittels LDAP.

Abb. 3: Beispiel einer PAM Konfigurationsdatei (z. B. /etc/pam.d/informix).

PAM-Informix Konfiguration

In Abbildung 4 ist die bereits erwähnte PAM-Informix Konfiguration in der SQLHOSTS zu sehen.

Abb. 4: PAM Konfigurationsbeispiel in der SQLHOSTS.

In der 5. Spalte der SQLHOSTS können folgende Konfigurationswerte eingestellt werden:

s=4 -> Externe Authentifizierung
s=6 -> Externe Authentifizierung für Replikation (CDR)
pam_serv -> Name der PAM Konfigurationsdatei
pamauth -> PAM Authentication password/challenge

Abbildung 5 zeigt dann das Zusammenspiel von SQLHOSTS, PAM-Konfigurationsdatei (in diesem Beispiel mit dem Namen "informix") und der PAM-Library.

Abb. 5: Zusammenspiel der einzelnen Komponenten.

Remote "Zugriff"

Für den Zugriff auf Remote Objekte (Tabellen, Views, ...) waren bisher immer entweder ein Eintrag in der /etc/hosts.equiv oder der .rhosts des jeweiligen Benutzers notwendig (Trusted Host). Damit man auch weiterhin auf Remote Objekte zugreifen kann, ohne dieses für Sicherheitsexperten gefährliche Loch zu nutzen, gibt es ab dem Release 9.40 eine neue Systemdatenbank "sysuser".

In dieser Datenbank gibt es nur eine "Anwender"-Tabelle: sysauth. Der Aufbau dieser Tabelle ist in Abbildung 6 zu sehen.

Abb. 6: Aufbau der SYSAUTH Tabelle.

Mit Hilfe dieser Tabelle wird der Zugriff "remote" gesteuert. Hierfür müssen die folgenden Informationen eingetragen werden:

Abbildung 7 zeigt einen entsprechenden Eintrag in der sysauth Tabelle. In diesem Beispiel darf der Benutzer informix vom InformixSERVER ifxordix, der auf dem Server halix liegt, einen "remote" Zugriff auf die Instanz ifx94fc4 (Server = trainix) durchführen. Wurde sonst in den Dateien /etc/hosts.equiv bzw. ~informix/.rhosts auf dem Rechner trainix nachgesehen, wird jetzt die Datenbank sysusers (Tabelle sysauth) des InformixSERVERS ifx94fc4 auf dem Rechner trainix "befragt". Dies benötigt auf beiden Seiten die dementsprechende Informix Version!

Abb. 7: Inhalt der SYSAUTH Tabelle.

Software Voraussetzung

Für den Einsatz der beschriebenen Technologien werden die in Abbildung 8 genannten Betriebssysteme, Client APIs und Tools vom IBM Informix (ab 9.40U/FC2) für die externe Authentifizierung mittels PAM unterstützt.

Abb. 8: Die Software Voraussetzungen ab IBM Informix 9.40U/FC2.

Fazit

Die externe Authentifizierung mittels PAM ist ein sehr nützliches Feature, welches in der Praxis sicherlich Verwendung findet. Wie bei der Encryption stehen der "modulare" Aufbau, die "einfache" Konfiguration und die Technologie im Vordergrund. Damit zeichnet sich Informix wieder einmal mehr durch einfache Installation und Konfiguration aus.

In einer der nächsten ORDIX News erhalten Sie wertvolle Informationen für Ihre tägliche Arbeit. "IBM Informix: Gründe und Möglichkeiten der Reorganisation" wird das Thema sein.

Weitere Neuerungen des IBM Informix Dynamic Server 9.4 gibt’s in den darauf folgenden Ausgaben, sowie bald auch etwas zum IBM Informix Dynamic Server 9.5 ;-)

Guido Saxler (info@ordix.de).