Skip to main content
RunBook Academy

← All checklists in Linux

Before deploymentlinux-iam

Checklist: Identity readiness pre-deploy

21 items ·14 critical ·7 warn ·0 info

Use this checklist before promoting any host to production where central identity is in use. Any Critical failure must be resolved before deploy.

How to use this checklist

Run every command on the target host itself, and run them as root. Several read /etc/sssd/sssd.conf, which is mode 600 — and a check that returns nothing because it could not open the file looks exactly like a check that returns nothing because the host is clean.

An identity failure does not announce itself at deploy time. It surfaces the first time the directory is unreachable, when every login on the host fails at once and the account that was supposed to get you back in has never been used. That is why the caching, failover and break-glass items are Critical even though the host authenticates perfectly well without them today.

Four items have no command, because the evidence does not live on the host: the break-glass password sitting in the vault, an offline login actually having been exercised, PAM and SSSD errors arriving in the SIEM, and keytab rotation being scheduled somewhere you will still be looking in a year. Attach the vault reference, a SIEM search returning this host’s own auth events, and the schedule entry to the deploy ticket.

Before signing off, do the one test the commands cannot do for you: stop SSSD, log in on the console as the break-glass account, run sudo -v, start SSSD again, and record the date. That single exercise is what break-glass-tested and offline-tested are asking about.

Sign-off

  • Operator: _________________ Date: ___________
  • Reviewer: ________________ Date: ___________

Critical14 items

  1. ls /etc/pam.d/
  2. cat /etc/nsswitch.conf
  3. systemctl is-active sssd; sssctl domain-status
  4. ls -l /etc/sssd/sssd.conf
  5. sudo awk -F= '/^[[:space:]]*(ldap_uri|ad_server|ipa_server|krb5_server)/ {n = split($2, a, ","); if (n < 2) print FILENAME ": " $0}' /etc/sssd/sssd.conf /etc/sssd/conf.d/*.conf 2>/dev/null; sudo sssctl domain-status <domain>
  6. sudo grep -L 'cache_credentials[[:space:]]*=[[:space:]]*[Tt]rue' /etc/sssd/sssd.conf
  7. cat /etc/krb5.conf
  8. chronyc tracking
  9. getent passwd breakglass; sudo -lU breakglass
  10. ls /home/*/.ssh/authorized_keys
  11. sudo lastlog -u breakglass 2>/dev/null || sudo lslogins breakglass
  12. realm list
  13. realm permit --list

Warning7 items

  1. pam-auth-update --dry-run
  2. grep -E 'GSSAPIAuthentication' /etc/ssh/sshd_config
  3. grep pwquality /etc/pam.d/common-password
  4. grep faillock /etc/pam.d/