cesnet.yubikeys
cesnet.yubikeys
Ansible Galaxy Rolle cesnet.yubikeys, die die Zwei-Faktor-Authentifizierung für sudo mit Hardware-USB-Token Yubikeys einrichtet.
Fügt ein PAM-Modul für sudo hinzu, das Yubico-Server aufruft, um den eingegebenen einmaligen Code zu validieren.
Verwende "--tags config", um nur die Konfiguration auszuführen.
Anforderungen
Variablen der Rolle
- yubikey_id und yubikey_key - eindeutige Werte, die von https://upgrade.yubico.com/getapikey/ bezogen werden
- yubikey_users - Zuordnung von Benutzernamen zu Hashes mit Name, Yubikey-Code und SSH-Schlüssel, siehe Beispiel unten
- yubikey_lognames - Liste der Benutzernamen, die aus dem Hash yubikey_users verwendet werden sollen, standardmäßig leer
- sudo_root_lognames - Liste der Benutzernamen, die sudo für root verwenden dürfen, standardmäßig leer
- other_sudo_user - ein anderer Benutzername als root, zu dem ausgewählte Benutzer sudo verwenden können, standardmäßig "perun"
- sudo_other_lognames - Liste der Benutzernamen, die sudo für den durch other_sudo_user definierten anderen Benutzer verwenden dürfen
Beispiel Playbook
Im folgenden Beispiel sind 4 Benutzer definiert, aber nur 3 von ihnen werden erstellt. Die Benutzer tesla und einstein dürfen sudo für root verwenden, der Benutzer volta darf sudo für den Benutzer cthulhu verwenden.
- hosts: all
roles:
- role: cesnet.yubikeys
vars:
yubikey_id: "48695"
yubikey_key: "jGAqANjXDwthsKp0dnboFGmZ5ag="
yubikey_lognames: [ 'tesla', 'einstein', 'volta' ]
# Liste der Benutzernamen, die sudo für root verwenden dürfen
sudo_root_lognames: "{{ yubikey_lognames }}"
# ein anderer Benutzername als root, zu dem ausgewählte Benutzer sudo verwenden können
other_sudo_user: "cthulhu"
# Liste der Benutzernamen, die sudo für den anderen Benutzer verwenden dürfen, der durch other_sudo_user definiert ist
sudo_other_lognames: ['volta' ]
# Liste der Benutzer
## logname - Unix-Loginname
## name - Vollständiger Name, der in /etc/passwd eingetragen wird
## yubikeys - Liste der Yubikey-IDs (erste 12 Zeichen eines beliebigen Codes, der von Yubikey des Benutzers erzeugt wird, wird in /etc/yubico/authorized_yubikeys eingetragen)
## sshkeys - Liste der öffentlichen Teile von SSH-Schlüsseln, die in $HOME/.ssh/authorized_keys eingetragen werden
yubikey_users:
tesla:
name: Nikola Tesla
yubikeys:
- ccccccefghij
sshkeys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDe9Rb2N5aq5qYAi8OCeQKlpOBJi/Ll2tlxqiD7Gan7wJrFBbrZIj8a5tOpHKTm61ldihxG7hnXkyEvbAX5vx/6lLagKaLFL3ysh3iH3ZxiXFYXfLklqrrCK2kuwdCIasMF4kJYzS/goLEGeqBkeJN8SvTj2THvzWcvsTZXIgXygzqiiSKlJao2v62EZv3Pi0eP8KhLrdYW2EcePBOKclLGYxdAX0k9KMJHJRecQhS2BtDLDL1rGoCCrw3Pd8689xovzYKC/ATnTZ89slA9HlrKyQjkjVeBX7WbRsjrgYKEDeqWZbdzjT9Nhg/Ftewbqh2V6p8OFQTftKUOmmPXlwAr
einstein:
name: Albert Einstein
yubikeys:
- ccccccghijkl
sshkeys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQiusTXxPGdXXzhHyU9wEb1i5PAdN/qBX8lVw90/yZo6LKBl+fO2QuRTQUxxRgk05puXYwWMF4IheoVBmWFzwClyH/Ox88Yq+WM4nGxIpzvoyUZQ0rRM7a0LfaLvDsJpkoMOr53LFfQtdTY7ZiKXsaTI1EmhHXVmfgFXDTu4IE2EBGUrKPj28+yD/5UuyybA/TfZJ6wW51M0QAaQy3n2xWY+K+aFfTJv2vQin2cIjIPMWfUoUCR2eYNbtZ/uHwXgJxK1W3PeeJhLjW8RXdfLiSOA3+8X5NCHGBs5BLdvieQjB0SYb0NqCc7scAlJV14MGlWdBYuczV2gvn2mnT4q3F
volta:
name: Alessandro Volta
yubikeys:
- ccccccfghijk
sshkeys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCnkDzzBfCAgjxv4lZKZ744lPiIRbGhfnQFbSEmeU7ZlRn5zPK2r7Ur+T7I89YHly1nEVPoQ0O8elA7eDaHZ2jIUyYXbzVrYr+7dNSvoO+tqXoG1r5VuZM8jv9m55IFClV0NONqbrgDLRl771ZVqdMah10xPA9X5hv5O17LlDYWyP0j5tJ6M1Ua3t1oI+Gsx28xicJYuLSA5ixpb0b5vftlSvdz7OCC1ojKdTESV3dGifgmJ+B4OZu3ha/Ti6K+pIOYHNtg/yriI6AZNZyLG/L/x5EtE28XRBOr2auXuIlBwK1IWI9MtoSB6L8WjhHl+7WPQej50eL9keK22diIJen9
gauss:
name: Carl Friedrich Gauss
yubikeys:
- cccccclkjihg
sshkeys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDgdleNFp+4o849ZNts1cluRtE8VPJCDgo9dllcScw/z3alhhmxXT8oQWG0XXzx3r0rfzfDIC0Lqw5xPEsX8yDLl4SeQzHyHycwM5773IBuN5EYrul+34aGHHawqFIksKpbS3ADMwHEd25tzHr1SzAX2vLt3a6RqFhfaW6YnVcMU3ZFOZGfyLmsFjCsIJ2XsIVhzhX8s13vy2jwC2uQ+rTzMMtIgXkx/UQ1mjr9dj/XtDNT3bPwvjVd7/N0BT6PL0H4hNH4jBAby9mRYGfON/LNTLyrUD280w4A5Zu1JGPl+VBxMjN83m1l5k9i5w6vDLU/7TRzAXATINlLIYwWH+1J
Im folgenden Beispiel wird das PAM-Modul installiert, aber keine Benutzer werden erstellt. Verwende dies, wenn Benutzer von Perun verwaltet werden.
- hosts: all
roles:
- role: cesnet.yubikeys
vars:
yubikey_id: "48695"
yubikey_key: "jGAqANjXDwthsKp0dnboFGmZ5ag="