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_hostkeys_all`: `dsa`, `ecdsa`, `rsa`, `ed25519`
- `ssh_hardening_moduli`: `/etc/ssh/moduli` - `ssh_hardening_moduli`: `/etc/ssh/moduli`
- `ssh_hardening_moduli_backup`: `/etc/ssh/moduli.not-hardened` - `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` - `ssh_hardening_sshd_config`: `/etc/ssh/sshd_config`
Included via `vars/ssh_*`: Included via `vars/ssh_*`:
- `ssh_hardening_opts`: Parameter/Values to set for specific SSH version - `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): Command line variables (undefined):
- `ssh_hardening_force`: version/id to include, overwrites detected version! - `ssh_hardening_force`: version/id to include, overwrites detected version!
@ -40,29 +48,35 @@ SSH versions
------------ ------------
- 6.0: [_] Debian 7 "wheezy" - 6.0: [_] Debian 7 "wheezy"
- 6.5: (support for `curve25519-sha256@libssh.org`, `ssh-ed25519`, `chacha20-poly1305@openssh.com`) - 6.5: (support for `curve25519-sha256@libssh.org`, `ssh-ed25519`, `chacha20-poly1305@openssh.com`)
- 6.6: Ubuntu 14.04 "trusty" - 6.6: Ubuntu 14.04 "trusty"
- 6.7: [_] Debian 8 "jessie" - 6.7: Debian 8 "jessie"
- 7.0: - 7.0:
- 7.1: - 7.1:
- 7.2: Ubuntu 16.04 "xenial" - 7.2: Ubuntu 16.04 "xenial"
- 7.4: Debian 9 "stretch", RedHat 7 - (added `curve25519-sha256`) - 7.4: Debian 9 "stretch", RedHat 7 - (added `curve25519-sha256`)
- 7.6: Ubuntu 18.04 "bionic" - 7.6: Ubuntu 18.04 "bionic"
- 7.7: - 7.7:
- 7.8: - 7.8:
- 7.9: Debian 10 "buster" - 7.9: Debian 10 "buster"
- 8.0: RedHat 8 - 8.0: RedHat 8
- 8.1: Suse 15.2 - 8.1: Suse 15.2
- 8.2: Ubuntu 20.04 "focal" - 8.2: Ubuntu 20.04 "focal"
- 8.3: - 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.5: (added `sntrup761x25519-sha512@openssh.com`)
- 8.6: Alpine 3.14, Fedora 34 - 8.6: ✅ Alpine 3.14, ✅ Fedora 34
- 8.7: Fedora 35 - 8.7: ✅ Fedora 35
- 8.8: Alpine 3.15, Fedora 36, Fedora 37 - 8.8: ✅ Alpine 3.15, ✅ Fedora 36, ✅ Fedora 37
- 8.9: Ubuntu 22.04 "jammy" - 8.9: ✅ Ubuntu 22.04 "jammy"
- 9.0: Alpine 3.16, Ubuntu 22.10 "kinetic" - 9.0: ✅ Alpine 3.16, ✅ Fedora 38, ✅ Ubuntu 22.10 "kinetic", ✅ Ubuntu 23.04 "lunar"
- 9.1: Alpine 3.17 - 9.1: ✅ Alpine 3.17
- 9.2: Archlinux, Voidlinux, (Debian 12 "bookworm") - 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 License
------- -------

View file

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

View file

@ -2,11 +2,11 @@
- name: Set some variables - name: Set some variables
set_fact: set_fact:
ssh_hardening_backup_suffix: "42.{{ ansible_date_time.date }}@{{ ansible_date_time.time }}~" 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 - 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 changed_when: False
register: ssh_hardening_version register: ssh_hardening_version
@ -39,7 +39,7 @@
dest: "{{ ssh_hardening_sshd_config }}.{{ ssh_hardening_backup_suffix }}" dest: "{{ ssh_hardening_sshd_config }}.{{ ssh_hardening_backup_suffix }}"
remote_src: yes remote_src: yes
owner: root owner: root
group: root group: "{{ ssh_hardening_root_group }}"
mode: 0600 mode: 0600
#################### ####################
@ -62,6 +62,13 @@
notify: Restart SSH 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" - name: "Renew RSA hostkeys if too short"
openssh_keypair: openssh_keypair:
path: /etc/ssh/ssh_host_rsa_key path: /etc/ssh/ssh_host_rsa_key

View file

@ -11,13 +11,13 @@
- name: 'Moduli: Check for small Diffie-Hellman moduli' - 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 changed_when: False
register: ssh_hardening_moduli_small register: ssh_hardening_moduli_small
- name: 'Moduli: Remove small Diffie-Hellman moduli' - 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 when: ssh_hardening_moduli_small.stdout|int > 0

View file

@ -1,6 +1,6 @@
--- ---
- name: Check for Include directory - 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 changed_when: False
register: ssh_hardening_includedir 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