258 lines
5.4 KiB
YAML
258 lines
5.4 KiB
YAML
---
|
||
- 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
|