Compare commits

...

10 commits
devel ... main

Author SHA1 Message Date
Sven Velt 4ac6ff2cc8 WIP: support for FreeBSD and NetBSD 2024-07-10 11:22:11 +02:00
Sven Velt a03b1528c7 Ensure ed25519 key ist present 2024-07-10 11:21:47 +02:00
Sven Velt 18ed1ea57e Update README 2024-07-10 11:21:35 +02:00
Sven Velt 7285f77a9c Add vars for SSH 6.7 2024-07-10 11:17:39 +02:00
Sven Velt 37e7623539 Fix Include statement detection (starting with Alpine 3.19) 2024-07-10 11:15:11 +02:00
Sven Velt b588509306 Added OpenBSD support 2023-11-15 21:07:32 +01:00
Sven Velt d96c48af1c README: Update version numbers 2023-11-15 21:01:52 +01:00
Sven Velt a5189e5e98 README: Fixes 2023-11-15 21:01:41 +01:00
Sven Velt bd453a37eb README: Update 2023-10-13 18:45:12 +02:00
Sven Velt bd1c6d5e6d Merge pull request 'Big update to support RHEL9 & clones' (#17) from devel into main
Reviewed-on: #17
2023-03-28 07:31:01 +00:00
9 changed files with 62 additions and 23 deletions

View file

@ -16,11 +16,19 @@ Defaults:
- `ssh_hardening_hostkeys_all`: `dsa`, `ecdsa`, `rsa`, `ed25519`
- `ssh_hardening_moduli`: `/etc/ssh/moduli`
- `ssh_hardening_moduli_backup`: `/etc/ssh/moduli.not-hardened`
- `ssh_hardening_root_group`: `root`
- `ssh_hardening_service_name`: `sshd`
- `ssh_hardening_sshd_config`: `/etc/ssh/sshd_config`
Included via `vars/ssh_*`:
- `ssh_hardening_opts`: Parameter/Values to set for specific SSH version
Included via `vars/os_*`:
- `ssh_hardening_moduli`
- `ssh_hardening_moduli_backup`
- `ssh_hardening_service_name`
- `ssh_hardening_root_group`
Command line variables (undefined):
- `ssh_hardening_force`: version/id to include, overwrites detected version!
@ -40,29 +48,35 @@ SSH versions
------------
- 6.0: [_] Debian 7 "wheezy"
- 6.5: (support for `curve25519-sha256@libssh.org`, `ssh-ed25519`, `chacha20-poly1305@openssh.com`)
- 6.6: Ubuntu 14.04 "trusty"
- 6.7: [_] Debian 8 "jessie"
- 6.6: Ubuntu 14.04 "trusty"
- 6.7: Debian 8 "jessie"
- 7.0:
- 7.1:
- 7.2: Ubuntu 16.04 "xenial"
- 7.4: Debian 9 "stretch", RedHat 7 - (added `curve25519-sha256`)
- 7.6: Ubuntu 18.04 "bionic"
- 7.2: Ubuntu 16.04 "xenial"
- 7.4: Debian 9 "stretch", RedHat 7 - (added `curve25519-sha256`)
- 7.6: Ubuntu 18.04 "bionic"
- 7.7:
- 7.8:
- 7.9: Debian 10 "buster"
- 8.0: RedHat 8
- 8.1: Suse 15.2
- 8.2: Ubuntu 20.04 "focal"
- 7.9: Debian 10 "buster"
- 8.0: RedHat 8
- 8.1: Suse 15.2
- 8.2: Ubuntu 20.04 "focal"
- 8.3:
- 8.4: Alpine 3.13, Debian 11 "bullseye", Fedora 33, OpenSUSE 15.3/15.4
- 8.4: Alpine 3.13, Debian 11 "bullseye", Fedora 33, OpenSUSE 15.3/15.4
- 8.5: (added `sntrup761x25519-sha512@openssh.com`)
- 8.6: Alpine 3.14, Fedora 34
- 8.7: Fedora 35
- 8.8: Alpine 3.15, Fedora 36, Fedora 37
- 8.9: Ubuntu 22.04 "jammy"
- 9.0: Alpine 3.16, Ubuntu 22.10 "kinetic"
- 9.1: Alpine 3.17
- 9.2: Archlinux, Voidlinux, (Debian 12 "bookworm")
- 8.6: ✅ Alpine 3.14, ✅ Fedora 34
- 8.7: ✅ Fedora 35
- 8.8: ✅ Alpine 3.15, ✅ Fedora 36, ✅ Fedora 37
- 8.9: ✅ Ubuntu 22.04 "jammy"
- 9.0: ✅ Alpine 3.16, ✅ Fedora 38, ✅ Ubuntu 22.10 "kinetic", ✅ Ubuntu 23.04 "lunar"
- 9.1: ✅ Alpine 3.17
- 9.2: ✅ Debian 12 "bookworm"
- 9.3: ✅ Alpine 3.18, ✅ Fedora 39, ✅ Ubuntu 23.10 "mantic"
- 9.4:
- 9.5:
- 9.6: ✅ Alpine 3.19, Fedora 40, Ubuntu 24.04 "noble"
- 9.7: ✅ Alpine 3.20
- 9.8: Archlinux, ✅ Voidlinux
License
-------

View file

@ -12,6 +12,8 @@ ssh_hardening_hostkeys_all:
ssh_hardening_moduli: /etc/ssh/moduli
ssh_hardening_moduli_backup: /etc/ssh/moduli.not-hardened
ssh_hardening_root_group: root
ssh_hardening_service_name: sshd
ssh_hardening_sshd_config: /etc/ssh/sshd_config

View file

@ -2,11 +2,11 @@
- name: Set some variables
set_fact:
ssh_hardening_backup_suffix: "42.{{ ansible_date_time.date }}@{{ ansible_date_time.time }}~"
ssh_hardening_distri: "{{ (ansible_distribution|lower).split(' ')[0] }}-{{ ansible_distribution_major_version }}"
ssh_hardening_distri: "{{ (ansible_distribution|lower).split(' ')[0] }}-{{ ansible_distribution_major_version|default(ansible_distribution_version) }}"
- name: Get SSH version number
shell: 'ssh -V 2>&1 | grep -o "OpenSSH_[0-9]\+\.[0-9]" | grep -o "[0-9]\+\.[0-9]"'
shell: 'ssh -V 2>&1 | grep -Eo "OpenSSH_[0-9]+\.[0-9]+" | grep -Eo "[0-9]+\.[0-9]+"'
changed_when: False
register: ssh_hardening_version
@ -39,7 +39,7 @@
dest: "{{ ssh_hardening_sshd_config }}.{{ ssh_hardening_backup_suffix }}"
remote_src: yes
owner: root
group: root
group: "{{ ssh_hardening_root_group }}"
mode: 0600
####################
@ -62,6 +62,13 @@
notify: Restart SSH
- name: "Ensure ED25519 hostkey is available"
openssh_keypair:
path: /etc/ssh/ssh_host_ed25519_key
type: ed25519
when: '"ed25519" in ssh_hardening_hostkeys'
- name: "Renew RSA hostkeys if too short"
openssh_keypair:
path: /etc/ssh/ssh_host_rsa_key

View file

@ -11,13 +11,13 @@
- name: 'Moduli: Check for small Diffie-Hellman moduli'
shell: "grep -c ' 1535 \\| 2047 ' /etc/ssh/moduli || true"
shell: "grep -Ec ' 1535 | 2047 ' {{ ssh_hardening_moduli }} || true"
changed_when: False
register: ssh_hardening_moduli_small
- name: 'Moduli: Remove small Diffie-Hellman moduli'
shell: "TMPF=$(mktemp) && awk '$5 >= 3071' /etc/ssh/moduli >${TMPF} && mv ${TMPF} /etc/ssh/moduli"
shell: "TMPF=$(mktemp) && awk '$5 >= 3071' {{ ssh_hardening_moduli }} >${TMPF} && mv ${TMPF} {{ ssh_hardening_moduli }}"
when: ssh_hardening_moduli_small.stdout|int > 0

View file

@ -1,6 +1,6 @@
---
- name: Check for Include directory
shell: "awk '/Include/ { print $2; }' /etc/ssh/sshd_config"
shell: "awk '/^[^#]*Include/ { print $2; }' /etc/ssh/sshd_config"
changed_when: False
register: ssh_hardening_includedir

3
vars/os_freebsd.yml Normal file
View file

@ -0,0 +1,3 @@
---
ssh_hardening_root_group: wheel

6
vars/os_netbsd.yml Normal file
View file

@ -0,0 +1,6 @@
---
ssh_hardening_root_group: wheel
ssh_hardening_moduli: /etc/moduli
ssh_hardening_moduli_backup: /etc/moduli.not-hardened

6
vars/os_openbsd.yml Normal file
View file

@ -0,0 +1,6 @@
---
ssh_hardening_root_group: wheel
ssh_hardening_moduli: /etc/moduli
ssh_hardening_moduli_backup: /etc/moduli.not-hardened

1
vars/ssh_6.7.yml Symbolic link
View file

@ -0,0 +1 @@
ssh_6.6.yml