iptables.yml 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. ---
  2. - name: Install iptables packages
  3. yum:
  4. name: "{{ item }}"
  5. state: present
  6. with_items:
  7. - iptables
  8. - iptables-services
  9. - name: Check if firewalld is installed
  10. command: rpm -q firewalld
  11. register: pkg_check
  12. failed_when: pkg_check.rc > 1
  13. changed_when: no
  14. - name: Ensure firewalld service is not enabled
  15. service:
  16. name: firewalld
  17. state: stopped
  18. enabled: no
  19. when: pkg_check.rc == 0
  20. - name: Start and enable iptables services
  21. service:
  22. name: "{{ item }}"
  23. state: started
  24. enabled: yes
  25. with_items:
  26. - iptables
  27. - ip6tables
  28. register: result
  29. - name: need to pause here, otherwise the iptables service starting can sometimes cause ssh to fail
  30. pause: seconds=10
  31. when: result | changed
  32. # TODO: submit PR upstream to add mask/unmask to service module
  33. - name: Mask firewalld service
  34. command: systemctl mask firewalld
  35. register: result
  36. changed_when: "'firewalld' in result.stdout"
  37. when: pkg_check.rc == 0
  38. - name: Add iptables allow rules
  39. os_firewall_manage_iptables:
  40. name: "{{ item.service }}"
  41. action: add
  42. protocol: "{{ item.port.split('/')[1] }}"
  43. port: "{{ item.port.split('/')[0] }}"
  44. with_items: os_firewall_allow
  45. when: os_firewall_allow is defined
  46. - name: Remove iptables rules
  47. os_firewall_manage_iptables:
  48. name: "{{ item.service }}"
  49. action: remove
  50. protocol: "{{ item.port.split('/')[1] }}"
  51. port: "{{ item.port.split('/')[0] }}"
  52. with_items: os_firewall_deny
  53. when: os_firewall_deny is defined