ernestas-poskus.iptables

ansible-iptables para la configuración de firewall de red interna y externa

Estado de Construcción RHEL Fedora Ubuntu Debian Licencia BSD

Instalación

ansible-galaxy install ernestas-poskus.iptables

Requisitos

Ninguno.

Dependencias

Ninguna.

Variables de Rol

---
# archivo de valores predeterminados para ansible-iptables

##########################
# Configuración IPv4
##########################

# Acción predeterminada para: :INPUT DROP
iptables_initial_input_action: DROP

# Acción predeterminada para: :FORWARD ACCEPT
iptables_initial_forward_action: ACCEPT

# Acción predeterminada para: :OUTPUT ACCEPT
iptables_initial_output_action: ACCEPT

# Permitir interfaz de loopback (localhost)
iptables_allow_loopback: true

# Permitir conexiones establecidas y relacionadas
iptables_allow_established_connections: true

# Permitir resolución de DNS
iptables_allow_dns: false

# Permitir tráfico NTP para sincronización de tiempo
iptables_allow_ntp: true

# Permitir solicitudes de ping ICMP
iptables_allow_icmp: true

# Lista de soportes para red interna:
# - IP's
# - HOSTS (iptables_internal_ips_from_hosts debe estar habilitado)
iptables_internal_network: []

# Resolver IP internamente desde el host dado
iptables_internal_ips_from_hosts: false

# Interfaz de hosts internos
iptables_internal_hosts_interface: "{{ ansible_default_ipv4.interface }}"

# Configuración de la red interna
iptables_internal_ports:
  - '1024:65535'
  - '111' # Portmapper
  - '161:162' # Protocolo simple de gestión de red (SNMP).
  - '22' # ssh

# Protocolos de red interna
iptables_internal_protocols:
  - 'tcp'
  - 'udp'

# Configuración de la red externa
iptables_external_ports:
  - '22' # ssh

# Protocolos de red externa
iptables_external_protocols:
  - 'tcp'

# Reglas adicionales para iptables
iptables_additional_rules: []

# Registrar paquetes descartados
iptables_log_dropped_packets: false

# Límite de registro de paquetes descartados en minutos
iptables_log_dropped_limit: 15

# NIVEL DE REGISTRO de paquetes descartados
iptables_log_logging_level: 4

##########################
# Configuración IPv6
##########################

# Acción predeterminada para: :INPUT DROP
iptables6_initial_input_action: DROP

# Acción predeterminada para: :FORWARD ACCEPT
iptables6_initial_forward_action: ACCEPT

# Acción predeterminada para: :OUTPUT ACCEPT
iptables6_initial_output_action: ACCEPT

# Permitir interfaz de loopback (localhost)
iptables6_allow_loopback: true

# Permitir conexiones establecidas y relacionadas
iptables6_allow_established_connections: true

# Permitir resolución de DNS
iptables6_allow_dns: false

# Permitir tráfico NTP para sincronización de tiempo
iptables6_allow_ntp: true

# Permitir solicitudes de ping ICMP
iptables6_allow_icmp: true

# Lista de soportes para red interna:
# - IP's
# - HOSTS (iptables6_internal_ips_from_hosts debe estar habilitado)
iptables6_internal_network: []

# Resolver IP internamente desde el host dado
iptables6_internal_ips_from_hosts: false

# Interfaz de hosts internos
iptables6_internal_hosts_interface: "{{ ansible_default_ipv4.interface }}"

# Configuración de la red interna
iptables6_internal_ports:
  - '1024:65535'
  - '111' # Portmapper
  - '161:162' # Protocolo simple de gestión de red (SNMP).
  - '22' # ssh

# Protocolos de red interna
iptables6_internal_protocols:
  - 'tcp'
  - 'udp'

# Configuración de la red externa
iptables6_external_ports:
  - '22' # ssh

# Protocolos de red externa
iptables6_external_protocols:
  - 'tcp'

# Reglas adicionales para iptables
iptables6_additional_rules: []

# Registrar paquetes descartados
iptables6_log_dropped_packets: false

# Límite de registro de paquetes descartados en minutos
iptables6_log_dropped_limit: 15

# NIVEL DE REGISTRO de paquetes descartados
iptables6_log_logging_level: 4

# NAT
iptables_nat_prerouting: ACCEPT
iptables_nat_output: ACCEPT
iptables_nat_postrouting: ACCEPT

iptables4_nat_additional_rules: []

iptables6_nat_additional_rules: []

Ejemplo de Playbook

Creando red interna desde los hosts dados

- name: Configuración de iptables
  hosts: all
  sudo: yes
  roles:
    - role: ernestas-poskus.iptables
      iptables_internal_network: "{{ groups['all'] }}"
      iptables_internal_ips_from_hosts: true # cuando se usan hosts, esto debe estar habilitado
      iptables_log_dropped_packets: true
      iptables_log_dropped_limit: 1

Creando red interna desde una lista de IP's dada

- name: Configuración de iptables
  hosts: all
  sudo: yes
  roles:
    - role: ernestas-poskus.iptables
      iptables_internal_network:
       - 192.168.0.1
       - 192.168.0.2
       - 192.168.0.3
      iptables_log_dropped_packets: true
      iptables_log_dropped_limit: 1

Licencia

Derechos de autor (c) 2016, Ernestas Poskus Todos los derechos reservados.

La redistribución y uso en formas de código fuente y binario, con o sin modificación, están permitidos siempre que se cumplan las siguientes condiciones:

  • Las redistribuciones del código fuente deben conservar el aviso de derechos de autor anterior, esta lista de condiciones y el siguiente descargo de responsabilidad.

  • Las redistribuciones en forma binaria deben reproducir el aviso de derechos de autor anterior, esta lista de condiciones y el siguiente descargo de responsabilidad en la documentación y/o otros materiales proporcionados con la distribución.

  • Ni el nombre de ansible-iptables ni los nombres de sus contribuyentes pueden ser utilizados para respaldar o promover productos derivados de este software sin un permiso específico por escrito.

ESTE SOFTWARE SE PROPORCIONA POR LOS TITULARES DE DERECHOS DE AUTOR Y LOS CONTRIBUIDORES "TAL CUAL" Y CUALQUIER GARANTÍA EXPRESA O IMPLÍCITA, INCLUYENDO, PERO NO LIMITADA A, LAS GARANTÍAS IMPLÍCITAS DE COMERCIALIDAD Y ADECUACIÓN PARA UN PROPÓSITO PARTICULAR SON RECHAZADAS. EN NINGÚN CASO EL TITULAR DE LOS DERECHOS DE AUTOR O LOS CONTRIBUIDORES SERÁN RESPONSABLES POR CUALQUIER DAÑO DIRECTO, INDIRECTO, INCIDENTAL, ESPECIAL, EJEMPLAR O CONSECUENTE (INCLUDING, PERO NO LIMITADO A, LA ADQUISICIÓN DE BIENES O SERVICIOS; PÉRDIDA DE USO, DATOS O UTILIDADES; O INTERRUPCIÓN DEL NEGOCIO) DE CUALQUIER MANERA CAUSADOS Y EN CUALQUIER TEORÍA DE RESPONSABILIDAD, YA SEA EN CONTRATO, RESPONSABILIDAD ESTRICTA, O AGRAVIO (INCLUYENDO NEGLIGENCIA O DE OTRA FORMA) QUE SURJA DE CUALQUIER MANERA DEL USO DE ESTE SOFTWARE, AUN CUANDO SE HAYA ADVERTIDO DE LA POSIBILIDAD DE TALES DAÑOS.

Información del Autor

Twitter: @ernestas_poskus

Acerca del proyecto

iptables management role for configuring internal & external networks

Instalar
ansible-galaxy install ernestas-poskus.iptables
Licencia
bsd-3-clause
Descargas
81
Propietario
pragmatic & ambitious