1 votes

Ouvrir le port UFW à une IP spécifique avec Ansible

J'ai exécuté la tâche suivante copiée directement de l'Ansible 2.9  docs :

- name: Allow all access from RFC1918 networks to this host
  ufw:
    rule: allow
    src: '{{ item }}'
  loop:
    - 10.0.0.0/8
    - 172.16.0.0/12
    - 192.168.0.0/16

Bien sûr, avec mes propres IP.

Le problème est que, bien qu'elle boucle sur les IP comme le montre le résultat ci-dessous, la règle UFW reste ouverte à Anywhere.

TASK [Allow 5431] ***********************************************************************************************
changed: [database3] => (item=my_ip1)
changed: [database1] => (item=my_ip2)
changed: [database2] => (item=my_ip3)
ok: [database3] => (item=my_ip1)
ok: [database1] => (item=my_ip2)
ok: [database2] => (item=my_ip3)

J'ai essayé avec succès de supprimer la règle d'autorisation et de relancer celle avec la boucle comme ceci, mais cela ne fonctionne pas :

tasks:
    - name: Allow 5431
      ufw:
        rule: allow
        port: "5431"
        delete: yes

La question est : comment utiliser le module ufw pour limiter l'accès IP d'un port ?

UPDATE

Je tourne en boucle à travers une série d'adresses IP qui ressemblent à ceci :

  loop:
    - 10.0.0.0/0
    - 172.16.0.0/0
    - 192.168.0.0/0

0voto

RicarHincapie Points 121

En allant directement sur le serveur et en exécutant la commande UFW, j'ai obtenu

WARN: Rule changed after normalization
Rule added

UFW changeait mes IPs car elles se terminaient toutes par xxx.xx.xxx.xxx. /0

En retirant l'indicateur de sous-masque, tout a fonctionné correctement.

Le problème est que le opération ET binaire sous-masque défini à /0 transforme tous les binaires en Faux ou en 0, donc les normalisation dans ce cas, transforme toute IP en 0.0.0.0

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X