add SSH server configuration playbook and templates

This commit is contained in:
2025-06-18 15:36:36 -05:00
parent 2137509901
commit 577a6c024e
4 changed files with 74 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
---
- name: Deploy complete SSH server configuration
hosts: all
become: true
gather_facts: false
tasks:
- name: Deploy base /etc/ssh/sshd_config file
template:
src: templates/sshd/sshd_config.j2
dest: /etc/ssh/sshd_config
owner: root
group: root
mode: "0644"
notify: Reload SSH
- name: Deploy hardened global ssh config include
template:
src: templates/sshd/00-global.conf.j2
dest: /etc/ssh/sshd_config.d/00-global.conf
owner: root
group: root
mode: "0644"
notify: Reload SSH
- name: Deploy LAN password bypass config include
template:
src: templates/sshd/99-lan-bypass.conf.j2
dest: /etc/ssh/sshd_config.d/99-lan-bypass.conf
owner: root
group: root
mode: "0644"
notify: Reload SSH
- name: Validate sshd configuration syntax
command: sshd -t
changed_when: false
handlers:
- name: Reload SSH
service:
name: ssh
state: reloaded

View File

@@ -0,0 +1,25 @@
Port 22
AddressFamily inet
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
ChallengeResponseAuthentication no
PermitEmptyPasswords no
UsePAM yes
AllowGroups {{ ssh_access_group | default('sshusers') }}
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
X11Forwarding no
PrintMotd no
PrintLastLog yes
LoginGraceTime 30s
MaxAuthTries 3
MaxSessions 2
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server

View File

@@ -0,0 +1,2 @@
Match Address 10.0.0.0/8
PasswordAuthentication yes

View File

@@ -0,0 +1,4 @@
# Base sshd_config — managed by Ansible
# Delegates all settings to config fragments
Include /etc/ssh/sshd_config.d/*.conf