Wie deaktiviere oder ändere ich die Passwortanforderungen von pam?

9

Ich verwende Fedora 19. Standardmäßig ist es mit pam eingerichtet, um fehlerhafte Passwörter wie "Passwort" zu deaktivieren. Das ist gut. Der Versuch, diese Standardeinstellung zu ändern, ist ärgerlich. Dies ist eine Box zum Testen interner Inhalte, die weder mit dem Internet verbunden sind, noch mit einer anderen Maschine. Falsche Passwörter erleichtern den Testprozess. Alternativ, wie zum Teufel ändern Sie die Passwortanforderungen überhaupt?

system-auth

man pam_cracklibEs gibt einige gute Beispiele für das Festlegen unterschiedlicher Kennwortanforderungen. Also öffne ich mich /etc/pam.d/system-auth, wo du Linien siehst wie:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
password    requisite     pam_pwquality.so try_first_pass retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

* headdesk *. Nach meiner Erfahrung bedeuten Warnungen wie diese, dass Ihre Änderungen jedes Mal gelöscht werden, wenn der Paketmanager ausgeführt wird und / oder zufällig.

authconfig

Also ... authconfigist der nächste Schritt. Ich suche nach allen Dateien mit dem Namen "authconfig". /etc/sysconfig/authconfigsieht vielversprechend aus. Und keine Warnung oben darüber, meine Änderungen aus einer Laune heraus zu zerstören. Ich finde diese Zeile USEPWQUALITY=yesund ändere sie. Jetzt renne ich:

# authconfig --test
<snip>
pam_pwquality is enabled (try_first_pass retry=3 authtok_type=)
<snip>

wtf. Lesen wir also man authconfigetwas genauer. Oh! Diese Datei wird anscheinend nicht von authconfig gelesen , sondern geändert . Also ... wie konfiguriert man authconfig? Das Handbuch schlägt vor system-config-authentication, was ich installiere und was nicht wie ein Kontrollkästchen zum Deaktivieren von pam_pwquality aussieht. Der nächste Vorschlag aus dem Handbuch sind die Befehlszeilenoptionen. Großartig! Ich liebe Kommandozeilen-Tools. Nur deaktiviert keine der dokumentierten Befehlszeilenoptionen pam_pwquality.

pwquality.conf

Dank Aarons Antwort erfuhr ich, dass Fedora vor ein paar Jahren beschlossen hat, /etc/security/pwquality.conf die Anforderungen an die Passwortqualität zu konfigurieren. Leider gibt es, wie in der Datei und in dokumentiert man 5 pwquality.conf, (1) keine Möglichkeit, die Wörterbuchprüfung zu deaktivieren, und (2) kann die zulässige Kennwortlänge nicht unter sechs setzen.

djeikyb
quelle
Wenn es intern ist, warum ist Pam installiert oder sogar aktiviert?
Ramhound
1
@ Ramhound, weil Fedora mit Pam befallen ist. yum remove pamentfernt, soweit ich anhand der Zeit, die zum Scrollen aller abhängigen Pakete benötigt wird, alles erkennen kann . Einschließlich yum und systemd. Das Deaktivieren von Pam fühlt sich auch wie ein Vorschlaghammer an, wenn ich denke, ich möchte nur Sandpapier verwenden.
Djeikyb

Antworten:

4

Nach einem flüchtigen Blick auf den Quellcode in /usr/sbin/authconfigund /usr/share/authconfig/authinfo.py:

  • Die Manpage ist unvollständig, die vollständige Liste der vom Skript akzeptierten Optionen befindet sich in authconfig --help
  • Alles kann in der Befehlszeile überschrieben werden (sogar /etc/security/pwquality.confEinstellungen wie die Mindestlänge des Passworts), mit Ausnahme von pwquality. IMHO, das ist ein Fehler und sollte gemeldet werden.
  • Aus den authinfo.pyZeilen 2489 und 2156:

    def read(self):
      self.readSysconfig()
      ...
      self.readPAM(ref)
      ...

    Zuerst readSysconfigliest /etc/sysconfig/authconfig; dann wird das, was Sie dort setzen, überschrieben readPAMmit dem, was drin ist /etc/pam.d/*(besonders password_auth*und system_auth*):

      if module.startswith("pam_cracklib") or module.startswith("pam_pwquality"):
         self.setParam("enablePWQuality", True, ref)

TL; DR : Für die Optionen, die nicht überschrieben werden (oder nicht überschrieben werden können), werden die Einstellungen aus der aktuellen Konfiguration übernommen, einschließlich Dateien, die als automatisch generiert markiert sind . Bearbeiten /etc/sysconfig/authconfig und entfernen Sie die von angezeigten Zeilen, damit es funktioniertgrep -E pwq\|crack /etc/pam.d/*


Bearbeiten : Es gibt einen zweiten Fehler, der dazu führt, dass der obige Rat immer noch nicht funktioniert: Zeile 2248:

    # Special handling for pam_pwquality and pam_passwdqc: there can be
    # only one.
    if self.enablePWQuality and self.enablePasswdQC:
            self.setParam("enablePasswdQC", False, ref)
    if not self.enablePWQuality and not self.enablePasswdQC:
            self.setParam("enablePWQuality", True, ref)

Sie müssen eine der beiden Implementierungen der Qualitätskontrolle auswählen, oder eine wird für Sie ausgewählt! In Kombination mit dem ersten Fehler ist eine Deaktivierung nicht möglich.

Eddygeek
quelle
2 Jahre später auf Fedora 26 Alpha bleibt die Situation dieselbe
Eddygeek
2

Sie können Ihre system-authDatei manuell steuern . Erstellen Sie eine neue Datei (Sie können mit dem Kopieren beginnen system-auth-ac) und ändern Sie den system-authSymlink so, dass er auf die neue Datei zeigt.

Daher liegt es in Ihrer Verantwortung, diesen Teil Ihrer PAM-Konfiguration zu aktualisieren, da authconfig den Symlink oder die Datei, auf die er verweist, nicht mehr berührt. Authconfig aktualisiert die system-auth-acDatei jedoch weiterhin, sodass Sie sie bei Bedarf weiterhin als Referenz verwenden können. Mit etwas Klugheit können Sie es vielleicht sogar includein Ihre lokale Kopie einfügen, aber wie das geht, geht über den Rahmen dieser Frage hinaus.

Sie sollten auch nach anderen Symlinks suchen, z password-auth. Möglicherweise müssen Sie ihnen die gleiche Behandlung geben.


Aus der authconfig(8)Manpage unter Files:

/etc/pam.d/system-auth
    Common PAM configuration for system services which include it using
    the include directive. It is created as symlink and not relinked if
    it points to another file.

/etc/pam.d/system-auth-ac
    Contains the actual PAM configuration for system services and is the
    default target of the /etc/pam.d/system-auth symlink. If a local
    configuration of PAM is created (and symlinked from system-auth
    file) this file can be included there. 

Wenn system-authes sich also um eine Datei handelt, ändert authconfig diese, um sie zu verknüpfen system-auth-ac. Wenn system-authes sich jedoch um einen Symlink handelt, lässt authconfig ihn in Ruhe.

Jander
quelle
1

Es scheint durch konfigurierbar zu sein /etc/security/pwquality.conf

Quelle: https://fedoraproject.org/wiki/Features/PasswordQualityChecking

Aaron Okano
quelle
Danke, das hatte ich noch nicht gesehen. Das pwquality.confDeaktivieren von Wörterbuchprüfungen oder Kennwortlängenprüfungen wird leider nicht unterstützt.
Djeikyb
Vielleicht würde der Vorschlag in diesem Beitrag funktionieren? serverfault.com/questions/444258/…
Aaron Okano
Entfernen Sie das Modul aus der Systemauthentifizierung, setzen Sie USEPWQUALITY = no und führen Sie dann authconfig --update aus.
Aaron Okano
Leider (wie in der Frage erwähnt) werden authconfig --updatealldie Dateien durch Ausführen zurückgesetzt. Ich bin völlig ratlos über diese Antwort, da sie dem beobachteten Verhalten direkt widerspricht.
djeikyb
Ich sollte auch beachten, dass ich mein Problem nur einstelle USEPWQUALITY=nound / oder USECRACKLIB=nonicht löse, noch bevor authconfig ausgeführt wird.
djeikyb
1

Sie können weiterhin über die Befehlszeile wechseln. Sie erhalten eine Warnung, mit der Sie jedoch ein zu kurzes Kennwort sowie ein Kennwort festlegen können, das den Komplexitätsregeln nicht entspricht.

user280281
quelle
Dies ist absolut nicht das Verhalten, das ich mit Fedora 19
erlebe
@djeikyb führen Sie den passwd <username>Befehl als root (entweder mit sudo passwd <username>oder nach su -dem Root-Terminal.
Nick
@Nick Damit werden die Passwortanforderungen von pam nicht deaktiviert oder geändert.
Djeikyb
@djeikyb Es ändert die Anforderung nicht, aber es umgeht sie. Wenn Sie passwdals Root ausgeführt werden, werden die Kennwortrichtlinien ignoriert. Wenn Sie es nur einmal einstellen und vergessen müssen, funktioniert das. Wenn Sie versuchen, es so einzustellen, dass jeder Benutzer seine Passwörter frei ändern kann, benötigen Sie eine andere Lösung.
Nick
@ Nick ich verstehe. Ja, root kann verwenden, passwdohne von pam fd. Wenig mit der eigentlichen Frage zu tun, aber es macht die Behauptung in dieser "Antwort" wahr.
Djeikyb
0

Ich habe diese Frage gerade aufgrund einer ähnlichen Suche gefunden und glaube, ich habe eine Antwort für Sie.

Fedora erstellt symbolische Links zu den von authconfig generierten Dateien. dh. system-authLinks zu system-auth-ac. Wenn Sie system-autheine eigene Datei erstellen, werden theoretisch alle zukünftigen Änderungen von auth-configweiterhin aktualisiert system-auth-ac, Ihre geänderten Dateien bleiben jedoch unverändert.

Es ist eigentlich ziemlich elegant, aber ich habe es erst entdeckt, als ich mich gefragt habe, was die *-acDateien gemacht haben.

Zyklon
quelle
Das funktioniert nicht. Der nächste Durchlauf von authconfig(z. B. authconfig --updateall) löscht Ihre Datei und verknüpft sie wieder mit der -acDatei.
docwhat
@ TheDoctorWas ist das so? Jetzt macht es für mich auch keinen Sinn, warum sie es so machen würden, wenn es nicht die Persistenz lokaler Änderungen mit einem einfachen Rückgriff auf die verwaltete Konfiguration ermöglichen würde. Naja.
Zyklon
Ja, das verwirrt mich auch ... die Dokumentation spricht nicht darüber und der Quellcode enthält sogar einen langen Kommentar, der erklärt, wie sie versuchen, alles für alle zu sein ... sehr ärgerlich.
docwhat