Skip to content

Commit bcdfaab

Browse files
authored
Merge pull request #1003 from konstruktoid/sshsocket
use ssh.socket and disable the service on ubuntu
2 parents 2bbdd14 + c055d62 commit bcdfaab

File tree

4 files changed

+50
-24
lines changed

4 files changed

+50
-24
lines changed

handlers/main.yml

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -78,29 +78,34 @@
7878
when:
7979
- ansible_facts.virtualization_type not in ["container", "docker", "podman"]
8080

81-
- name: Restart ssh service
81+
- name: Restart ssh socket
8282
become: true
8383
ansible.builtin.service:
84-
name: ssh
84+
name: "{{ 'ssh.socket' if ansible_facts.os_family == 'Debian' else 'sshd.socket' }}"
8585
state: restarted
86-
register: ssh_service
87-
failed_when:
88-
- ssh_service is not success
89-
- not 'Could not find the requested service' in ssh_service.msg
86+
enabled: true
9087
when:
9188
- ansible_facts.virtualization_type not in ["container", "docker", "podman"]
89+
- ansible_facts.distribution == "Ubuntu"
9290

93-
- name: Restart sshd service
91+
- name: Restart ssh service
9492
become: true
9593
ansible.builtin.service:
96-
name: sshd
94+
name: "{{ 'ssh.service' if ansible_facts.os_family == 'Debian' else 'sshd.service' }}"
9795
state: restarted
98-
register: sshd_service
99-
failed_when:
100-
- sshd_service is not success
101-
- not 'Could not find the requested service' in sshd_service.msg
96+
enabled: true
97+
when:
98+
- ansible_facts.virtualization_type not in ["container", "docker", "podman"]
99+
100+
- name: Disable ssh service
101+
become: true
102+
ansible.builtin.service:
103+
name: "{{ 'ssh.service' if ansible_facts.os_family == 'Debian' else 'sshd.service' }}"
104+
state: stopped
105+
enabled: false
102106
when:
103107
- ansible_facts.virtualization_type not in ["container", "docker", "podman"]
108+
- ansible_facts.distribution == "Ubuntu"
104109

105110
- name: Restart Postfix
106111
become: true

molecule/default/converge.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,16 @@
1111
when:
1212
- ansible_facts.distribution == 'AlmaLinux'
1313

14+
- name: Install acl on Debian
15+
become: true
16+
ansible.builtin.apt:
17+
name: acl
18+
state: present
19+
install_recommends: false
20+
update_cache: true
21+
when:
22+
- ansible_facts.os_family == 'Debian'
23+
1424
- name: Include Ansible role
1525
ansible.builtin.import_role:
1626
name: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }}"

molecule/default/verify.yml

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@
9999
become: true
100100
ansible.builtin.user:
101101
name: "{{ item }}"
102-
group: "{{ item }}"
103102
shell: /bin/bash
104103
create_home: true
105104
generate_ssh_key: true
@@ -118,9 +117,9 @@
118117
- name: Assert home directory permissions
119118
ansible.builtin.assert:
120119
that:
121-
- home_dir.stat.mode == "0700"
120+
- home_dir.stat.mode == login_defs.home_mode
122121
success_msg: "{{ home_dir.stat.path }} has correct permissions: {{ home_dir.stat.mode }}"
123-
fail_msg: "{{ home_dir.stat.path }} permissions are incorrect: {{ home_dir.stat.mode }}"
122+
fail_msg: "{{ home_dir.stat.path }} permissions are incorrect: {{ home_dir.stat.mode }}, expected {{ login_defs.home_mode }} or {{ umask_value }}"
124123
when:
125124
- home_dir.stat.exists
126125

@@ -144,17 +143,23 @@
144143
- sshd
145144
- sshd_config
146145

147-
- name: Ensure privilege separation directory exists
146+
- name: Ensure privilege separation directories exist
148147
become: true
149148
ansible.builtin.file:
150-
path: /run/sshd
149+
path: "{{ item.path }}"
151150
owner: root
152151
group: root
153152
state: directory
154-
mode: "0755"
155-
tags:
156-
- sshd
157-
- sshd_config
153+
mode: "{{ item.mode }}"
154+
register: privsep_dir
155+
failed_when:
156+
- privsep_dir is changed
157+
- not (item.path == '/run/sshd' and ansible_facts.distribution == 'Ubuntu')
158+
loop:
159+
- { path: /run/sshd, mode: "0755" }
160+
- { path: /usr/share/empty.sshd, mode: "0711" }
161+
- { path: /var/empty, mode: "0755" }
162+
- { path: /var/empty/sshd, mode: "0711" }
158163

159164
- name: Stat IPv6 status
160165
become: true

tasks/sshconfig.yml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,18 @@
1717
ansible.builtin.debug:
1818
msg: "{{ ssh_installed_version }}"
1919

20-
- name: Ensure privilege separation directory exists
20+
- name: Ensure privilege separation directories exist
2121
become: true
2222
ansible.builtin.file:
2323
path: "{{ item.path }}"
2424
owner: root
2525
group: root
2626
state: directory
2727
mode: "{{ item.mode }}"
28+
register: privsep_dir
29+
changed_when:
30+
- privsep_dir is changed
31+
- not (item.path == '/run/sshd' and ansible_facts.distribution == 'Ubuntu')
2832
loop:
2933
- { path: /run/sshd, mode: "0755" }
3034
- { path: /usr/share/empty.sshd, mode: "0711" }
@@ -250,7 +254,8 @@
250254
(not sshd_config_d.stat.exists) or
251255
(grep_include.rc != 0)
252256
notify:
253-
- Restart sshd service
257+
- Disable ssh service
258+
- Restart ssh socket
254259
- Restart ssh service
255260

256261
- name: Configure sshd using sshd_config.d
@@ -268,7 +273,8 @@
268273
- sshd_config_d.stat.exists
269274
- grep_include.rc == 0
270275
notify:
271-
- Restart sshd service
276+
- Disable ssh service
277+
- Restart ssh socket
272278
- Restart ssh service
273279

274280
- name: Remove possible Subsystem duplicate

0 commit comments

Comments
 (0)