Add playbook
This commit is contained in:
81
ssh_config.yml
Normal file
81
ssh_config.yml
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Configure SSH settings
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
tasks:
|
||||||
|
|
||||||
|
- name: Install SSH
|
||||||
|
ansible.builtin.apt:
|
||||||
|
name: openssh-server
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Create SSH directory for user pleb
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /home/pleb/.ssh
|
||||||
|
state: directory
|
||||||
|
owner: pleb
|
||||||
|
group: pleb
|
||||||
|
mode: '0700'
|
||||||
|
|
||||||
|
- name: Add SSH public key
|
||||||
|
ansible.posix.authorized_key:
|
||||||
|
user: pleb
|
||||||
|
state: present
|
||||||
|
key: "{{ lookup('file', '/home/pleb/.ssh/bikiniBottom.pub') }}"
|
||||||
|
|
||||||
|
- name: Configure SSH daemon settings
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: /etc/ssh/sshd_config
|
||||||
|
regexp: '{{ item.regexp }}'
|
||||||
|
line: '{{ item.line }}'
|
||||||
|
state: present
|
||||||
|
insertafter: EOF
|
||||||
|
loop:
|
||||||
|
- { regexp: '^#Port', line: 'Port 22' }
|
||||||
|
- { regexp: '^#PermitRootLogin', line: 'PermitRootLogin no' }
|
||||||
|
- { regexp: '^#PasswordAuthentication', line: 'PasswordAuthentication no' }
|
||||||
|
- { regexp: '^#ChallengeResponseAuthentication', line: 'ChallengeResponseAuthentication no' }
|
||||||
|
- { regexp: '^#UsePAM', line: 'UsePAM yes' }
|
||||||
|
- { regexp: '^#AllowUsers', line: 'AllowUsers pleb' }
|
||||||
|
- { regexp: '^#MaxAuthTries', line: 'MaxAuthTries 5' }
|
||||||
|
notify: restart ssh
|
||||||
|
|
||||||
|
handlers:
|
||||||
|
- name: restart ssh
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: ssh
|
||||||
|
state: restarted
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
- name: Configure Fail2Ban settings
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
tasks:
|
||||||
|
|
||||||
|
- name: Install Fail2Ban
|
||||||
|
ansible.builtin.apt:
|
||||||
|
name: fail2ban
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
|
||||||
|
- name: Configure Fail2Ban for SSH
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: /etc/fail2ban/jail.local
|
||||||
|
content: |
|
||||||
|
[sshd]
|
||||||
|
enabled = true
|
||||||
|
port = 22
|
||||||
|
filter = sshd
|
||||||
|
logpath = /var/log/auth.log
|
||||||
|
maxretry = 5
|
||||||
|
bantime = 3600
|
||||||
|
mode: '0644'
|
||||||
|
notify: restart fail2ban
|
||||||
|
|
||||||
|
handlers:
|
||||||
|
- name: restart fail2ban
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: fail2ban
|
||||||
|
state: restarted
|
||||||
|
enabled: true
|
||||||
Reference in New Issue
Block a user