Files

258 lines
5.4 KiB
YAML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
- name: Get installed ssh version
ansible.builtin.command:
cmd: ssh -V
changed_when: false
failed_when: false
register: ssh_version
tags:
- roles::cis::sshd
- sshd
- sshd_config
- name: Set ssh version as fact
ansible.builtin.set_fact:
ssh_installed_version: "{{ ssh_version.stderr | regex_search('^OpenSSH_([0-9+].[0-9]+)', '\\1') | join('.') | float }}" # noqa jinja[spacing]
when: ssh_version.stderr != ""
tags:
- roles::cis::sshd
- sshd
- sshd_config
- name: Stat sysconfig sshd configuration
ansible.builtin.stat:
path: /etc/sysconfig/sshd
register: sysconfig_sshd
tags:
- roles::cis::sshd
- sshd
- sshd_config
- M1041
- name: Remove sshd system crypto policy
become: true
ansible.builtin.lineinfile:
dest: /etc/sysconfig/sshd
state: absent
regexp: ^\s*CRYPTO_POLICY.*$
when: sysconfig_sshd.stat.exists
tags:
- roles::cis::sshd
- sshd
- CCE-80939-2
- M1041
- name: Get sshd Include config
become: true
ansible.builtin.command: grep -E "^Include " /etc/ssh/sshd_config
register: grep_include
changed_when: false
failed_when: false
tags:
- roles::cis::sshd
- sshd
- sshd_config
- M1041
- name: Check if sshd_config.d exits
ansible.builtin.stat:
path: /etc/ssh/sshd_config.d
register: sshd_config_d
tags:
- roles::cis::sshd
- sshd
- sshd_config
- M1041
- name: Ensure /etc/ssh/sshd_config permissions
become: true
ansible.builtin.file:
path: /etc/ssh/sshd_config
owner: root
group: root
mode: "0600"
tags:
- roles::cis::sshd
- sshd
- sshd_config
- name: Configure sshd
become: true
ansible.builtin.template:
src: etc/ssh/sshd_config.j2
dest: /etc/ssh/sshd_config
backup: true
mode: "0600"
owner: root
group: root
validate: sshd -t -f %s
when: not sshd_config_d.stat.exists or grep_include.rc != 0
notify:
- Restart sshd service
- Restart ssh service
tags:
- roles::cis::sshd
- sshd
- sshd_config
- CCE-80895-6
- CCE-80896-4
- CCE-80897-2
- CCE-80898-0
- CCE-80901-2
- CCE-80902-0
- CCE-80903-8
- CCE-80904-6
- CCE-80905-3
- CCE-80906-1
- CCE-82177-7
- CCE-82281-7
- CCE-83360-8
- CIS-UBUNTU2004-5.3.1
- CIS-UBUNTU2004-5.3.4
- CIS-UBUNTU2004-5.3.5
- CIS-UBUNTU2004-5.3.6
- CIS-UBUNTU2004-5.3.7
- CIS-UBUNTU2004-5.3.8
- CIS-UBUNTU2004-5.3.9
- CIS-UBUNTU2004-5.3.10
- CIS-UBUNTU2004-5.3.11
- CIS-UBUNTU2004-5.3.12
- CIS-UBUNTU2004-5.3.13
- CIS-UBUNTU2004-5.3.14
- CIS-UBUNTU2004-5.3.15
- CIS-UBUNTU2004-5.3.16
- CIS-UBUNTU2004-5.3.17
- CIS-UBUNTU2004-5.3.18
- CIS-UBUNTU2004-5.3.19
- CIS-UBUNTU2004-5.3.20
- CIS-UBUNTU2004-5.3.21
- CIS-UBUNTU2004-5.3.22
- M1041
- UBTU-20-010036
- UBTU-20-010037
- name: Configure sshd using sshd_config.d
become: true
ansible.builtin.template:
src: etc/ssh/sshd_config.j2
dest: /etc/ssh/sshd_config.d/01-hardening.conf
backup: true
mode: "0600"
owner: root
group: root
validate: sshd -t -f %s
when: sshd_config_d.stat.exists and grep_include.rc == 0
notify:
- Restart sshd service
- Restart ssh service
tags:
- roles::cis::sshd
- sshd
- sshd_config
- CCE-80895-6
- CCE-80896-4
- CCE-80897-2
- CCE-80898-0
- CCE-80901-2
- CCE-80902-0
- CCE-80903-8
- CCE-80904-6
- CCE-80905-3
- CCE-80906-1
- CCE-82177-7
- CCE-82281-7
- CCE-83360-8
- CIS-UBUNTU2004-5.3.1
- CIS-UBUNTU2004-5.3.4
- CIS-UBUNTU2004-5.3.5
- CIS-UBUNTU2004-5.3.6
- CIS-UBUNTU2004-5.3.7
- CIS-UBUNTU2004-5.3.8
- CIS-UBUNTU2004-5.3.9
- CIS-UBUNTU2004-5.3.10
- CIS-UBUNTU2004-5.3.11
- CIS-UBUNTU2004-5.3.12
- CIS-UBUNTU2004-5.3.13
- CIS-UBUNTU2004-5.3.14
- CIS-UBUNTU2004-5.3.15
- CIS-UBUNTU2004-5.3.16
- CIS-UBUNTU2004-5.3.17
- CIS-UBUNTU2004-5.3.18
- CIS-UBUNTU2004-5.3.19
- CIS-UBUNTU2004-5.3.20
- CIS-UBUNTU2004-5.3.21
- CIS-UBUNTU2004-5.3.22
- M1041
- UBTU-20-010036
- UBTU-20-010037
- name: Remove possible Subsystem duplicate
become: true
ansible.builtin.lineinfile:
path: /etc/ssh/sshd_config
regexp: ^Subsystem.*
state: absent
when: sshd_config_d.stat.exists and grep_include.rc == 0
tags:
- roles::cis::sshd
- sshd
- sshd_config
- name: Stat sshd host keys
become: true
ansible.builtin.find:
paths: /etc/ssh
file_type: file
patterns: "ssh_host_*"
excludes: "*.pub"
register: ssh_host_keys
tags:
- roles::cis::sshd
- sshd
- M1022
- M1041
- name: Set sshd host key permissions
become: true
ansible.builtin.file:
owner: root
group: root
mode: "0600"
path: "{{ item.path }}"
with_items: "{{ ssh_host_keys.files }}"
loop_control:
label: "{{ item.path }}"
tags:
- roles::cis::sshd
- sshd
- CCE-82424-3
- CIS-UBUNTU2004-5.3.2
- M1022
- M1041
- name: Check if ssh_config.d exits
ansible.builtin.stat:
path: /etc/ssh/ssh_config.d
register: ssh_config_d
tags:
- roles::cis::ssh
- ssh
- ssh_config
- M1041
- name: Configure ssh client
become: true
ansible.builtin.template:
src: etc/ssh/ssh_config.j2
dest: /etc/ssh/ssh_config
backup: true
mode: "0644"
owner: root
group: root
tags:
- roles::cis::ssh
- ssh
- ssh_config
- CCE-82880-6
- M1041