Dans le cadre de l'installation d'un nouveau serveur, je mets à disposition /etc/security/access.conf
avec l'utilisateur/le groupe et les adresses IP src des connexions ssh autorisées. Pour ce faire, il est nécessaire d'activer la fonction pam_access
dans le /etc/pam.d/login
und /etc/pam.d/sshd
(sur Ubuntu en tout cas)
Il semble Ansible dispose d'un module permettant de modifier certaines de ces règles, mais je n'arrive pas à le faire fonctionner. Une stipulation des modules est : "Pour qu'une règle PAM puisse être modifiée, le type, le contrôle et le chemin d'accès au module doivent correspondre à une règle existante." Cela signifie-t-il que si une règle est commentée, la pamd
Le module ne fonctionnera pas pour activer cette ligne ?
C'est mon cahier des charges actuel. J'ai essayé de supprimer le with_items
dans la tâche et en utilisant login
pour les name:
mais cela ne semble pas fonctionner non plus :
---
- hosts: all
gather_facts: False
tasks:
- name: modify pam_access in /etc/pam.d for sshd and login
pamd:
name : "{{ item }}"
type : account
control: required
module_path: pam_access.so
with_items:
- login
- sshd
Et voici le résultat de sa mise en œuvre. Cela ne me donne pas beaucoup d'éléments pour avancer :
$ ansible-playbook tests/pam-access.yml -i 192.168.24.66,
SUDO password:
PLAY [all] ***********************************************************************************************************
TASK [modify pam_access in /etc/pam.d for sshd and login] ************************************************************
ok: [192.168.24.66] => (item=login)
failed: [192.168.24.66] (item=sshd) => {"changed": false, "item": "sshd", "module_stderr": "Shared connection to 192.168.24.66 closed.\r\n", "module_stdout": "\r\nTraceback (most recent call last):\r\n File \"/tmp/ansible_vzO7tZ/ansible_module_pamd.py\", line 691, in <module>\r\n main()\r\n File \"/tmp/ansible_vzO7tZ/ansible_module_pamd.py\", line 645, in main\r\n pamd.load_rules_from_file()\r\n File \"/tmp/ansible_vzO7tZ/ansible_module_pamd.py\", line 361, in load_rules_from_file\r\n self.load_rules_from_string(stringline.replace(\"\\\\\\n\", \"\"))\r\n File \"/tmp/ansible_vzO7tZ/ansible_module_pamd.py\", line 380, in load_rules_from_string\r\n self.rules.append(PamdRule.rulefromstring(stringline))\r\n File \"/tmp/ansible_vzO7tZ/ansible_module_pamd.py\", line 312, in rulefromstring\r\n rule_type = result.group(1)\r\nAttributeError: 'NoneType' object has no attribute 'group'\r\n", "msg": "MODULE FAILURE", "rc": 1}
PLAY RECAP ***********************************************************************************************************
192.168.24.66 : ok=0 changed=0 unreachable=0 failed=1