chore:: update
This commit is contained in:
@@ -26,22 +26,106 @@
|
||||
ansible.builtin.iptables:
|
||||
chain: DOCKER-USER
|
||||
protocol: tcp
|
||||
match: multiport
|
||||
destination_ports: "80,443"
|
||||
destination_port: "{{ item }}"
|
||||
jump: DROP
|
||||
action: insert
|
||||
comment: "app-firewall: bloque 80/443 hors load-balancer"
|
||||
comment: "app-firewall: bloque {{ item }} hors load-balancer"
|
||||
loop:
|
||||
- "80"
|
||||
- "443"
|
||||
|
||||
- name: Autoriser les connexions 80/443 depuis le load-balancer (VPN)
|
||||
ansible.builtin.iptables:
|
||||
chain: DOCKER-USER
|
||||
protocol: tcp
|
||||
source: "{{ lb_vpn_ip }}/32"
|
||||
match: multiport
|
||||
destination_ports: "80,443"
|
||||
destination_port: "{{ item }}"
|
||||
jump: RETURN
|
||||
action: insert
|
||||
comment: "app-firewall: autorise 80/443 depuis le load-balancer"
|
||||
comment: "app-firewall: autorise {{ item }} depuis le load-balancer"
|
||||
loop:
|
||||
- "80"
|
||||
- "443"
|
||||
|
||||
- name: Sauvegarder les règles iptables (persistance au reboot)
|
||||
ansible.builtin.command: netfilter-persistent save
|
||||
changed_when: false
|
||||
|
||||
# Le load-balancer n'a besoin que de faire du reverse-proxy HTTP/HTTPS vers
|
||||
# prod/replica-prod : il n'a aucune raison de se connecter en SSH à quoi que
|
||||
# ce soit. On bloque donc son SSH sortant vers toutes les autres machines du
|
||||
# réseau (chaîne INPUT, en tête de chaîne pour passer avant les ACCEPT VPN
|
||||
# existants), afin de limiter le rayon d'action en cas de compromission du
|
||||
# load-balancer (seul hôte exposé publiquement sur 80/443).
|
||||
|
||||
- name: Empêcher le load-balancer de se connecter en SSH aux autres machines
|
||||
hosts: all:!load-balancer
|
||||
become: true
|
||||
gather_facts: false
|
||||
|
||||
vars:
|
||||
lb_vpn_ip: "{{ hostvars['load-balancer']['vpn_ip'] }}"
|
||||
lb_public_ip: "{{ hostvars['load-balancer']['ansible_host'] }}"
|
||||
|
||||
tasks:
|
||||
- name: Installer iptables-persistent
|
||||
ansible.builtin.apt:
|
||||
name: iptables-persistent
|
||||
state: present
|
||||
update_cache: yes
|
||||
|
||||
- name: Bloquer le SSH entrant depuis le load-balancer
|
||||
ansible.builtin.iptables:
|
||||
chain: INPUT
|
||||
protocol: tcp
|
||||
source: "{{ item }}/32"
|
||||
destination_port: "22"
|
||||
jump: DROP
|
||||
action: insert
|
||||
rule_num: 1
|
||||
comment: "app-firewall: bloque SSH depuis le load-balancer"
|
||||
loop:
|
||||
- "{{ lb_vpn_ip }}"
|
||||
- "{{ lb_public_ip }}"
|
||||
|
||||
- name: Sauvegarder les règles iptables (persistance au reboot)
|
||||
ansible.builtin.command: netfilter-persistent save
|
||||
changed_when: false
|
||||
|
||||
# Le replica n'a besoin de parler à bdd-redis-prod que sur le port Postgres
|
||||
# (5432, réplication). On bloque son SSH vers bdd-redis-prod (chaîne INPUT,
|
||||
# en tête de chaîne pour passer avant l'ACCEPT VPN existant sur dpt:22) sans
|
||||
# toucher au port 5432, déjà autorisé pour toute la plage VPN 10.0.0.0/24.
|
||||
|
||||
- name: Empêcher le replica de se connecter en SSH à bdd-redis-prod
|
||||
hosts: bdd-redis-prod
|
||||
become: true
|
||||
gather_facts: false
|
||||
|
||||
vars:
|
||||
replica_vpn_ip: "{{ hostvars['replica-prod-uber']['vpn_ip'] }}"
|
||||
replica_public_ip: "{{ hostvars['replica-prod-uber']['ansible_host'] }}"
|
||||
|
||||
tasks:
|
||||
- name: Installer iptables-persistent
|
||||
ansible.builtin.apt:
|
||||
name: iptables-persistent
|
||||
state: present
|
||||
update_cache: yes
|
||||
|
||||
- name: Bloquer le SSH entrant depuis le replica
|
||||
ansible.builtin.iptables:
|
||||
chain: INPUT
|
||||
protocol: tcp
|
||||
source: "{{ item }}/32"
|
||||
destination_port: "22"
|
||||
jump: DROP
|
||||
action: insert
|
||||
rule_num: 1
|
||||
comment: "app-firewall: bloque SSH depuis le replica"
|
||||
loop:
|
||||
- "{{ replica_vpn_ip }}"
|
||||
- "{{ replica_public_ip }}"
|
||||
|
||||
- name: Sauvegarder les règles iptables (persistance au reboot)
|
||||
ansible.builtin.command: netfilter-persistent save
|
||||
|
||||
Reference in New Issue
Block a user