Since my last posting about password policies on debian, i got several mails with the following question:
So let's start.
To get the actual password check method run the following command:
How to configure pluggable authentication modules (pam) with the command pam-config?This is neccesary because some linux distributions add the following header on all files inside /etc/pam.d/:
# This file is autogenerated by pam-config. All changesRunning pam-config --help shows 155 lines. For newbies this is completely unreadable. Querying the net with google gives the manpage but no examples...
# will be overwritten.
So let's start.
To get the actual password check method run the following command:
# pam-config -q --pwcheckThis was easy. So just add am ucredit-rule:
password: nullok cracklib
# pam-config -a --cracklib-ucredit=-2 --cracklibHmm. pwcheck has to be removed. Not really difficult:
INFO: pam_pwcheck.so und pam_cracklib.so aktiviert,
INFO: nur pam_pwcheck.so mit aktivierter Cracklib-Unterstützung wird benutzt.
# pam-config -d --pwcheckAfter that, retry the command with ucredit:
# pam-config -a --cracklib-ucredit=-2 --cracklibAnd how can you check, that it has really worked?
# pam-config -q --cracklibHere the complete reference of pam-config:
password: ucredit=-2
# pam-config --help
Anwendung: pam-config -a|-c|-d [...]
pam-config - Erstelle PAM-Konfigurationsdateien.
-a, --add Füge Optionen/PAM-Module hinzu.
-c, --create Erstelle neue Konfiguration.
-d, --delete Entferne Optionen/PAM-Module.
--confdir Benutze ein benutzerdefiniertes Konfigurations-Verzeichnis
--initialize Konvertiere alte Konfiguration and erstelle neue.
--service config Dienst zum modifizieren der Konfiguration von
--update Lese momentane Konfiguration und schreibe sie neu
-q, --query Anfrage für installierte Module und Optionen
--list-modules Zeige alle unterstützten Module
--help Gibt diese Hilfeliste aus
-u, --usage Gibt eine kurze Gebrauchsanweisung aus
-v, --version Ausgabe der Programmversion
Globale Modul-Optionen:
Die globalen Module werden eingesetzt in die
common-{account,auth,password,session}-Dateien, welche in den einzelnen
Dateien der Dienste beinhaltet sind.
--apparmor
--apparmor-debug
--ccreds
--cracklib
--cracklib-debug
--cracklib-type=<value>
--cracklib-retry=<value>
--cracklib-difok=<value>
--cracklib-difignore=<value>
--cracklib-minlen=<value>
--cracklib-dcredit=<value>
--cracklib-ucredit=<value>
--cracklib-lcredit=<value>
--cracklib-ocredit=<value>
--cracklib-minclass=<value>
--cracklib-dictpath=<value>
--env
--env-debug
--env-conffile=<value>
--env-envfile=<value>
--env-readenv=<value>
--fp
--fp-debug
--gnome_keyring
--gnome_keyring-auto_start
--gnome_keyring-auto_start_if=<value>
--group
--krb5
--krb5-debug
--krb5-ignore_unknown_principals
--krb5-minimum_uid=<value>
--ldap
--ldap-debug
--limits
--limits-debug
--limits-change_uid
--limits-utmp_early
--limits-conf=<value>
--localuser
--localuser-debug
--localuser-file=<value>
--make
--make-debug
--make-nosetuid
--make-make=<value>
--make-log=<value>
--make-option=<value>
--mkhomedir
--mkhomedir-debug
--mkhomedir-silent
--mkhomedir-umask=<value>
--mkhomedir-skel=<value>
--nam
--pkcs11
--pkcs11-debug
--pkcs11-configfile=<value>
--pwcheck
--pwcheck-debug
--pwcheck-nullok
--pwcheck-cracklib
--pwcheck-no_obscure_checks
--pwcheck-enforce_for_root
--pwcheck-cracklib_path=<value>
--pwcheck-maxlen=<value>
--pwcheck-minlen=<value>
--pwcheck-tries=<value>
--pwcheck-remember=<value>
--pwhistory
--pwhistory-debug
--pwhistory-use_authtok
--pwhistory-enforce_for_root
--pwhistory-remember=<value>
--pwhistory-retry=<value>
--pwhistory-type=<value>
--selinux
--selinux-debug
--ssh
--ssh-debug
--ssh-nullok
--ssh-try_first_pass
--ssh-keyfiles=<value>
--thinkfinger
--thinkfinger-debug
--umask
--umask-debug
--umask-silent
--umask-usergroups
--umask-umask=<value>
--unix
--unix-debug
--unix-audit
--unix-nodelay
--unix-nullok
--unix-shadow
--unix-md5
--unix-bigcrypt
--unix-not_set_pass
--unix-nis
--unix-broken_shadow
--unix-remember=<value>
--unix2
--unix2-nullok
--unix2-debug
--unix2-trace
--unix2-none
--unix2-call_modules=<value>
--unix2-nisdir=<value>
--winbind
--winbind-debug
Dienst-spezifische Modul-Optionen:
Diese Module können nur zu einzelnen Dienst-Dateien hinzugefügt werden.
--ck_connector
--ck_connector-debug
--cryptpass
--csync
--csync-use_first_pass
--csync-try_first_pass
--csync-soft_try_pass
--csync-nullok
--csync-debug
--csync-silent
--lastlog
--lastlog-debug
--lastlog-silent
--lastlog-never
--lastlog-nodate
--lastlog-nohost
--lastlog-noterm
--lastlog-nowtmp
--lastlog-noupdate
--lastlog-showfailed
--loginuid
--loginuid-require_auditd
--mount
Tolles Manual! DANKE! Aber was ich gerade herauszufinden versuche ist, warum pam-config nicht wirklich alle auf einem System verfügbaren pam module anzeigt. z.b. tally . tally wird im SuSE SLES 11 Hardening Manual genannt um z.b. automatisches lock-out zu realisieren und verweist auch im gleichen Handbuch auf den Befehl "pam-config" um eben den PAM Stack damit zu modifizieren. Wie es scheint kennt aber pam-config das pam modul "tally" nicht und bislang war es mir auch nicht möglich ihn dazu zu bewegen. - Was sind deine Erfahrungen und Tips dazu?
ReplyDelete