cesnet.yubikeys
cesnet.yubikeys
El rol de Ansible Galaxy cesnet.yubikeys que configura la autenticación de segundo factor para sudo utilizando tokens USB de hardware Yubikeys.
Agrega un módulo PAM para sudo que llama a los servidores de Yubico para validar el código de un solo uso ingresado.
Utilice "--tags config" para ejecutar solo la configuración.
Requisitos
Variables del rol
- yubikey_id y yubikey_key - valores únicos obtenidos de https://upgrade.yubico.com/getapikey/
- yubikey_users - mapeo de nombres de inicio de sesión a hashes con nombre, código de yubikey y clave ssh, ver ejemplo abajo
- yubikey_lognames - lista de nombres de inicio de sesión a utilizar del hash yubikey_users, por defecto está vacío
- sudo_root_lognames - lista de nombres de inicio de sesión que pueden usar sudo para root, por defecto está vacío
- other_sudo_user - otro nombre de inicio de sesión que no sea root al que los usuarios seleccionados pueden usar sudo, por defecto es "perun"
- sudo_other_lognames - lista de nombres de inicio de sesión que pueden usar sudo al otro usuario definido por other_sudo_user
Ejemplo de Playbook
En el siguiente ejemplo, se definen 4 usuarios, pero solo se crearán 3 de ellos. Los usuarios tesla y einstein podrán usar sudo para root, el usuario volta podrá usar sudo para el usuario cthulhu.
- hosts: all
roles:
- role: cesnet.yubikeys
vars:
yubikey_id: "48695"
yubikey_key: "jGAqANjXDwthsKp0dnboFGmZ5ag="
yubikey_lognames: [ 'tesla', 'einstein', 'volta' ]
# lista de nombres de inicio de sesión que pueden usar sudo para root
sudo_root_lognames: "{{ yubikey_lognames }}"
# otro nombre de inicio de sesión que no sea root al que los usuarios seleccionados pueden usar sudo
other_sudo_user: "cthulhu"
# lista de nombres de inicio de sesión que pueden usar sudo al otro usuario definido por other_sudo_user
sudo_other_lognames: ['volta' ]
# lista de usuarios
## logname - nombre de inicio de sesión de unix
## name - nombre completo que se pondrá en /etc/passwd
## yubikeys - lista de ids de yubikey (los primeros 12 caracteres de cualquier código generado por la yubikey del usuario, se pondrán en /etc/yubico/authorized_yubikeys)
## sshkeys - lista de partes públicas de claves ssh que se pondrán en $HOME/.ssh/authorized_keys
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
En el siguiente ejemplo, el módulo PAM está instalado, pero no se crean usuarios. Úselo si los usuarios son gestionados por Perun.
- hosts: all
roles:
- role: cesnet.yubikeys
vars:
yubikey_id: "48695"
yubikey_key: "jGAqANjXDwthsKp0dnboFGmZ5ag="
Instalar
ansible-galaxy install cesnet.yubikeys
Licencia
bsd-2-clause
Descargas
123
Propietario
Czech Educational and Research Network