# Alternative für "pam_userdb"

## schmidicom

Die Gentoo-Devs haben vor kurzem das USE-Flag "berkdb" aus ihren Profilen entfernt und damit auch das PAM-Modul "pam_userdb" abgesägt.

Natürlich könnte ich jetzt hingehen und das USE-Flag "berkdb", zumindest für "sys-libs/pam", wieder aktivieren aber ich wollte hier auch mal fragen ob es eine alternative zu diesem Modul gibt.

Irgendwelche Vorschläge?

----------

## firefly

Öhm was ist jetzt genau das Problem.

Laut dem was ich herausfinden konnte wurde das useflag nur aus den profilen entfernt womit es nicht default aktiv ist.

Wenn du das feature unbedingt brauchst kannst du es doch explizit aktivieren

----------

## schmidicom

 *firefly wrote:*   

> Öhm was ist jetzt genau das Problem.
> 
> Laut dem was ich herausfinden konnte wurde das useflag nur aus den profilen entfernt womit es nicht default aktiv ist.
> 
> Wenn du das feature unbedingt brauchst kannst du es doch explizit aktivieren

 

Wie bereits gesagt, ich könnte jetzt zwar hingehen und das USE-Flag selber wieder lokal/global setzen aber die Devs werden dieses Flag sicher nicht grundlos aus den Profilen geworfen haben und wenn es eine bessere alternative zu diesem PAM-Modul gibt wäre ich durchaus bereit mein Setup umzustellen.

----------

## firefly

aus sys-auth habe ich folgendes gefunden:

pam-pgsql

pam_mysql

pam_ldap

----------

## schmidicom

 *firefly wrote:*   

> pam_mysql

 

Die MySQL-Variante habe bereits ausprobiert, dummerweise funktionierte das SQL-Script zum einrichten der Tabellen in der dafür bereitgestellten Datenbank nicht.

Aber wenn jemand ein funktionierendes SQL-Script kennt wäre ich durchaus bereit es nochmal zu versuchen.

 *firefly wrote:*   

> pam-pgsql

 

Einen PGSQL-Server habe ich nicht und einen solchen nur für dienst-spezifische virtuelle Benutzer aufzusetzen ist ehrlich gesagt ein ziemlicher Overkill.

 *firefly wrote:*   

> pam_ldap

 

Darüber habe auch lange nachgedacht, aber auch hier müsste erst mal ein LDAP-Server aufgesetzt werden und so wie ich diese virtuelle User verwende lohnt sich der Aufwand nicht wirklich.

----------

## firefly

was ist das problem mit dem sql script?

PS Ah ich sehs gerade

```
ALTER TABLE `groups`

  MODIFY `group_id` int(11) NOT NULL AUTO_INCREMENT;
```

funktioniert nicht. da die groups tabelle keine group_id spalte hat.

Entweder durch 'gid' ersetzen oder prüfen ob group_id benötigt wird und dann das NODIFY durch ADD ersetzen

----------

## schmidicom

 *firefly wrote:*   

> was ist das problem mit dem sql script?

 

Der unterste Teil, also dort wo die Tabellen verändert werden, wird auf meinem MariaDB-Server nicht erfolgreich ausgeführt und leider sind meine SQL-Kenntnisse nicht mal ansatzweise ausreichend um das korrigieren/verbessern zu können.

```

ALTER TABLE `groups`

  ADD PRIMARY KEY (`gid`);

ALTER TABLE `users`

  ADD PRIMARY KEY (`uid`),

  ADD KEY `username` (`username`);

ALTER TABLE `groups`

  MODIFY `group_id` int(11) NOT NULL AUTO_INCREMENT;

COMMIT;
```

----------

## firefly

Wenn ich mir das beispiel hier anschaue: https://tipstricks.itmatrix.eu/pam-mysql-user-authentication-in-ubuntu-14-04-lts-server/

Sieht ein komplettes sql script so aus (fürs initiale setup):

 *Quote:*   

> SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
> 
> SET AUTOCOMMIT = 0;
> 
> START TRANSACTION;
> ...

 

----------

## schmidicom

Nicht für Ungut aber die Seite ist ja mal richtig schrecklich zum lesen, um mich da durchzukämpfen werde ich heute definitiv keine Zeit mehr finden.

Und was das SQL-Script angeht:

Da wurde doch einfach nur der Teil weggelassen der den Fehler verursacht, aber funktioniert die daraus resultierende DB dann überhaupt noch...

Ich meine dieser Teil der da weggelassen wurde sollte doch bestimmt auch irgendeinen Zweck erfüllen.

----------

## firefly

 *schmidicom wrote:*   

> Nicht für Ungut aber die Seite ist ja mal richtig schrecklich zum lesen, um mich da durchzukämpfen werde ich heute definitiv keine Zeit mehr finden.
> 
> Und was das SQL-Script angeht:
> 
> Da wurde doch einfach nur der Teil weggelassen der den Fehler verursacht, aber funktioniert die daraus resultierende DB dann überhaupt noch...
> ...

 

Ich hab den teil in die create table definitionen eingebaut.

----------

## mike155

Brauchst Du PAM überhaupt?

Sicherheit bekommt man nicht dadurch, dass man alles Mögliche installiert - sondern dadurch, dass man möglichst wenig installiert.

PAM kann im Firmenumfeld sinnvoll sein, wenn man gegen einen LDAP-Server, gegen AD oder gegen andere zentrale Einrichtungen wie Datenbanken authentifizieren und/oder autorisieren will. Wenn man das nicht braucht, lässt man es am besten weg. Die gute alte /etc/passwd ist in den meisten Fällen völlig ausreichend.

----------

## firefly

 *mike155 wrote:*   

> Brauchst Du PAM überhaupt?
> 
> Sicherheit bekommt man nicht dadurch, dass man alles Mögliche installiert - sondern dadurch, dass man möglichst wenig installiert.
> 
> PAM kann im Firmenumfeld sinnvoll sein, wenn man gegen einen LDAP-Server, gegen AD oder gegen andere zentrale Einrichtungen wie Datenbanken authentifizieren und/oder autorisieren will. Wenn man das nicht braucht, lässt man es am besten weg. Die gute alte /etc/passwd ist in den meisten Fällen völlig ausreichend.

 

Hat doch er geschrieben. Er hat virtuelle Nutzer.

----------

## schmidicom

@mike155

Sehe ich grundsätzlich ähnlich...

In diesem speziellen Fall handelt es sich aber um die Authentifizierung bei einem OpenVPN-Dienst.

Die meisten Clients authentifizieren sich mit einem Windows-Domänen-Konto (das passiert aktuell über den "System Security Services Daemon" also "sys-auth/sssd"), es gibt jedoch auch Spezialfälle in denen sogenannte "virtuelle User" zum Einsatz kommen. Diese virtuellen User habe ich bisher mit dem PAM-Modul "pam_userdb" realisiert.

Eine solche Kombination von mehreren Authentifizierungsquellen wäre ohne PAM wenn überhaupt vermutlich nur sehr schwer umsetzbar. Vor allem weil OpenVPN an diesem Punkt, per Plugin, auch nichts anderes unterstützt als PAM.

EDIT:

Das hier gepostete SQL-Script scheint zumindest auf meinem MariaDB-Server zu funktionieren und ich habe es auch nach langem hin und her fertig gebracht einen Benutzer in der Datenbank zu hinterlegen. Aber das PAM-Modul funktioniert alles andere als zuverlässig, manchmal klappt die Authentifizierung manchmal auch nicht. Warum weiss ich nicht und um ehrlich zu sein muss ich das an dieser stelle abbrechen.

Fürs erste werde ich wohl bei pam_userdb bleiben bis es eine für mich brauchbare alternative gibt...

----------

