Jak mogę wyłączyć lub zmodyfikować wymagania dotyczące pam?

9

Używam Fedory 19. Domyślnie jest to ustawione z pam, aby wyłączać złe hasła, takie jak „hasło”. To jest dobre. Próba zmiany tego ustawienia domyślnego jest irytująca. To jest pole do testowania rzeczy wewnętrznych, niepodłączonych do Internetu, ani żadnej innej maszyny. Złe hasła ułatwiają proces testowania. Alternatywnie, jak do diabła w ogóle zmieniasz wymagania dotyczące hasła?

system-auth

man pam_cracklibma kilka świetnych przykładów ustawiania różnych wymagań dotyczących hasła. Otwieram więc /etc/pam.d/system-auth, gdzie widać linie takie jak:

#%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 *. Z mojego doświadczenia wynika, że ​​takie ostrzeżenia oznaczają, że twoje zmiany są usuwane za każdym razem, gdy menedżer pakietów jest uruchamiany i / lub losowo.

authconfig

Więc ... authconfigto kolejny krok. Szukam wszystkich plików o nazwie „authconfig”. /etc/sysconfig/authconfigwygląda obiecująco. I nie ma ostrzeżenia u góry przed zniszczeniem moich zmian pod wpływem kaprysu. Znajduję tę linię USEPWQUALITY=yesi zmieniam ją. Teraz biegam:

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

wtf. Przeczytajmy man authconfigwięc trochę bliżej. O! Wygląda na to, że ten plik nie został odczytany przez authconfig, został zmieniony . Więc .... jak skonfigurować authconfig? Instrukcja sugeruje system-config-authentication, którą zainstalować i nie zapewnia niczego przypominającego pole wyboru, aby wyłączyć pam_pwquality. Następną sugestią z podręcznika są opcje wiersza poleceń. Świetny! Uwielbiam narzędzia wiersza poleceń. Tylko żadna z udokumentowanych opcji wiersza poleceń nie wyłącza pam_pwquality.

pwquality.conf

Dzięki odpowiedź Aarona, dowiedziałem się, że kilka lat temu fedora zdecydował się /etc/security/pwquality.conf na miejsce, aby skonfigurować wymagań jakościowych hasło. Niestety, jak udokumentowano w pliku i w man 5 pwquality.confnim, (1) nie ma sposobu na wyłączenie sprawdzania słownika i (2) nie można ustawić dozwolonej długości hasła poniżej szóstej.

djeikyb
źródło
Jeśli jest wewnętrzny, dlaczego Pam jest zainstalowany, a nawet włączony?
Ramhound,
1
@Ramhound, ponieważ fedora jest zainfekowana pam. yum remove pamusuwa, o ile wiem, do czasu przewinięcia wszystkich zależnych pakietów, wszystko . W tym mniam i systemd. Również wyłączenie pam jest jak młot, kiedy myślę, że chcę po prostu użyć papieru ściernego.
djeikyb,

Odpowiedzi:

4

Po pobieżnym spojrzeniu na kod źródłowy /usr/sbin/authconfigi /usr/share/authconfig/authinfo.py:

  • Strona podręcznika jest niekompletna, znajduje się pełna lista opcji akceptowanych przez skrypt authconfig --help
  • Wszystko można zastąpić w wierszu poleceń (nawet /etc/security/pwquality.confustawienia takie jak minimalna długość hasła), z wyjątkiem samej pwquality. IMHO, to jest błąd i należy go zgłosić.
  • Z authinfo.pylinii 2489 i 2156:

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

    Pierwsze readSysconfigczyta /etc/sysconfig/authconfig; to, co tam umieścisz, zostanie zastąpione readPAMtym, co jest /etc/pam.d/*(szczególnie password_auth*i system_auth*):

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

TL; DR : w przypadku opcji, które nie są nadpisywane (lub nie mogą być), ustawienia są pobierane z bieżącej konfiguracji, w tym pliki oznaczone automatycznie . Aby to działało, edytuj /etc/sysconfig/authconfig i usuń linie pokazane przezgrep -E pwq\|crack /etc/pam.d/*


Edycja : Istnieje drugi błąd, który sprawia, że ​​powyższe porady nadal nie działają: linia 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)

Musisz wybrać jedno z dwóch wdrożeń kontroli jakości, albo jedno zostanie dla Ciebie wybrane! W połączeniu z pierwszym błędem uniemożliwia to wyłączenie.

eddygeek
źródło
2 lata później na fedora 26 alfa sytuacja pozostaje taka sama
eddygeek
2

Możesz przejąć kontrolę nad system-authplikiem. Utwórz nowy plik (możesz zacząć od skopiowania system-auth-ac) i zmień system-authdowiązanie symboliczne, aby wskazywało na nowy plik.

To sprawia, że ​​Twoim obowiązkiem jest zaktualizować tę część konfiguracji PAM, ponieważ authconfig nie będzie już dotykać dowiązania symbolicznego ani pliku, na który wskazuje. Jednak authconfig nadal aktualizuje system-auth-acplik, więc możesz nadal używać go jako odniesienia, jeśli zajdzie taka potrzeba. Przy odrobinie sprytu możesz nawet znaleźć includeto w swojej lokalnej kopii, ale jak to zrobić, wykracza poza zakres tego pytania.

Powinieneś także sprawdzić, czy istnieją inne dowiązania symboliczne, takie jak password-auth. Może być konieczne zapewnienie im takiego samego traktowania.


Z strony authconfig(8)man pod 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. 

Więc jeśli system-authjest plikiem, to authconfig zmienia go na link do system-auth-ac. Ale jeśli system-authjest dowiązaniem symbolicznym, to authconfig pozostawia go w spokoju.

Jander
źródło
1

Wygląda na konfigurowalny /etc/security/pwquality.conf

Źródło: https://fedoraproject.org/wiki/Features/PasswordQualityChecking

Aaron Okano
źródło
Dzięki, jeszcze tego nie widziałem. Niestety pwquality.confnie obsługuje wyłączania sprawdzania słownika ani sprawdzania długości hasła.
djeikyb
Może sugestia zawarta w tym poście zadziała? serverfault.com/questions/444258/…
Aaron Okano
tzn. usuń moduł z system-auth, a także ustaw USEPWQUALITY = no, a następnie uruchom authconfig --update.
Aaron Okano
Niestety (jak wspomniano w pytaniu) uruchamianie authconfig --updateallresetuje pliki. Jestem głęboko zakłopotany tą odpowiedzią, ponieważ jest ona sprzeczna z zachowaniem, które obserwuję.
djeikyb
Powinienem również zauważyć, że samo ustawienie USEPWQUALITY=noi / lub USECRACKLIB=nonie rozwiązuje mojego problemu, nawet przed uruchomieniem authconfig.
djeikyb
1

Nadal możesz zmienić z wiersza poleceń. Otrzymasz ostrzeżenie, ale pozwoli ci ustawić hasło, które jest zbyt krótkie, a także takie, które nie spełnia reguł złożoności.

użytkownik280281
źródło
To nie jest absolutnie zachowanie, którego doświadczam w Fedorze 19.
djeikyb
@ djeikyb uruchom passwd <username>komendę jako root (z sudo passwd <username>lub po rootowaniu su -terminala.
Nick
@Nick To nie wyłącza ani nie modyfikuje wymagań hasła pam.
djeikyb,
@ djeikyb Nie zmienia wymagania, ale go omija. Po uruchomieniu passwdjako root zignoruje zasady haseł. Jeśli musisz tylko raz ustawić i zapomnieć, to zadziała. Jeśli próbujesz to ustawić, aby każdy użytkownik mógł dowolnie zmieniać hasła, potrzebujesz innego rozwiązania.
Nick
@Nick widzę. Tak, root może korzystać passwdbez fd przez pam. Niewiele ma wspólnego z faktycznym pytaniem, ale sprawia, że ​​twierdzenie w tej „odpowiedzi” jest prawdziwe.
djeikyb,
0

Właśnie znalazłem to pytanie w oparciu o podobne wyszukiwanie i myślę, że mam dla ciebie odpowiedź.

Fedora tworzy dowiązania symboliczne do plików generowanych przez authconfig. to znaczy. system-authlinki do system-auth-ac. Jeśli utworzysz system-authwłasny plik, teoretycznie wszelkie przyszłe zmiany dokonane przez auth-configbędą nadal aktualizowane, system-auth-acale zmodyfikowane pliki pozostaną niezmienione.

W rzeczywistości jest dość elegancki, ale odkryłem go tylko, zastanawiając się, co *-aczrobiły pliki.

Cyklon
źródło
To nie działa Następne uruchomienie authconfig(np. authconfig --updateall) Spowoduje usunięcie pliku i dowiązanie symboliczne z powrotem do -acpliku.
docwhat
@TheDoctor Co to jest? Teraz nie ma dla mnie żadnego sensu, dlaczego zrobiliby to w ten sposób, gdyby nie pozwalało to na utrzymywanie lokalnych zmian z łatwym powrotem do konfiguracji zarządzanej. No cóż.
Cyklon
Tak, to też mnie dezorientuje ... dokumentacja nie mówi o tym, a kod źródłowy ma nawet długi komentarz wyjaśniający, w jaki sposób starają się być wszystkim dla wszystkich ... bardzo denerwującymi.
docwhat