--- - name: verify AllowGroups directive ansible.builtin.command: cmd: "grep -Er '^AllowGroups' /etc/ssh" changed_when: False failed_when: False check_mode: no register: grep_allowgroups_ssh - ansible.builtin.debug: var: grep_allowgroups_ssh verbosity: 1 - name: verify AllowUsers directive ansible.builtin.command: cmd: "grep -Er '^AllowUsers' /etc/ssh" changed_when: False failed_when: False check_mode: no register: grep_allowusers_ssh - ansible.builtin.debug: var: grep_allowusers_ssh verbosity: 1 - ansible.builtin.assert: that: "not (grep_allowusers_ssh.rc == 0 and grep_allowgroups_ssh.rc == 0)" msg: "We can't deal with AllowUsers and AllowGroups at the same time" - ansible.builtin.set_fact: # If "AllowGroups is present" or "AllowUsers is absent and Debian 10+", ssh_allowgroups: "{{ (grep_allowgroups_ssh.rc == 0) or (grep_allowusers_ssh.rc != 0 and (ansible_distribution_major_version is version('10', '>='))) }}" # If "AllowGroups is absent" and "AllowUsers is absent or Debian <10" ssh_allowusers: "{{ (grep_allowusers_ssh.rc == 0) or (grep_allowgroups_ssh.rc != 0 and (ansible_distribution_major_version is version('10', '<'))) }}" - ansible.builtin.debug: var: ssh_allowgroups verbosity: 1 - ansible.builtin.debug: var: ssh_allowusers verbosity: 1 - ansible.builtin.include: ssh_allowgroups.yml when: - ssh_allowgroups - not ssh_allowusers - ansible.builtin.include: ssh_allowusers.yml vars: user: "{{ item.value }}" loop: "{{ evolinux_users | dict2items }}" when: - user.create == evolinux_users_create - ssh_allowusers - not ssh_allowgroups - name: disable root login ansible.builtin.replace: dest: /etc/ssh/sshd_config regexp: '^#PermitRootLogin (yes|without-password|prohibit-password)' replace: "PermitRootLogin no" notify: reload sshd when: - evolinux_root_disable_ssh | bool - ansible_distribution_major_version is version('11', '<=') - name: verify PermitRootLogin directive (Debian >= 12) ansible.builtin.command: cmd: "grep -Er '^PermitRootLogin' /etc/ssh" changed_when: False failed_when: False check_mode: no register: grep_permitrootlogin_ssh when: - ansible_distribution_major_version is version('12', '>=') # TODO avertir lorsque PermitRootLogin est déjà configuré? - ansible.builtin.debug: var: grep_permitrootlogin_ssh verbosity: 1 - name: disable root login (Debian >= 12) ansible.builtin.lineinfile: path: /etc/ssh/sshd_config.d/z-evolinux-users.conf line: "PermitRootLogin no" create: yes mode: "0644" validate: '/usr/sbin/sshd -t -f %s' insertbefore: "BOF" notify: reload sshd when: - evolinux_root_disable_ssh | bool - ansible_distribution_major_version is version('12', '>=') - grep_permitrootlogin_ssh.rc == 1 - ansible.builtin.meta: flush_handlers