domingo, 6 de agosto de 2017

Firewalld Centos7

Esta vez vamos a comprender conceptos principales  del firewall en centos 7

En centos 7 el manejador del firewall es el servicio del firewalld

Para iniciar el firewall

# systemctl  start  firewalld
# systemctl enable firewalld

Cabe indicar que en CentOS 7 para la configuración del firewall existen las denominas zonas y estas están diseñadas para activar reglas dependiendo el nivel de confianza con la red.

Por defecto las distintas zonas admiten distintos servicios de red y tipos distintos tipos de tráfico entrante o saliente. Una vez que es activado el llamado servicio del  FirewallD por primera vez en el equipo, se activara por defecto la llamada zona Public o "pública" y esta será su zona predeterminada para configuraciones posteriores.

Una de las características de las zonas es que permiten ser aplicadas sobre diferentes interfaces de red. Por ejemplo, con interfaces separadas tanto para una intranet así como otra que tenga acceso al Internet, en las cuales se puede permitir en una red los servicios de DHCP, DNS, FTP en una zona interna pero solo HTTP en una zona externa, cabe señalar que cualquier interfaz que no esté establecida explícitamente en una zona especificada esta será añadida a la zona predeterminada.

A diferencia de versiones anteriores de firewall en las que se manejaban sobre un solo archivo de configuración de reglas, el firewalld se maneja a través de archivos xml donde se guardan las configuraciones de las reglas para las diferentes zonas.

Estos archivos se guardan en la siguiente ruta:

# cd /usr/lib/firewalld/

Dentro de este directorio se encuentran sub directorios que permitirán realizar la configuración dependiendo de las reglas que se creen.


Para ver la zona predeterminada ejecute:

# sudo firewall-cmd --get-default-zone

Para cambiar la zona predeterminada puede utilizar:

# sudo firewall-cmd --set-default-zone=internal

Para ver las zonas utilizadas por su(s) interfaz o interfaces de red:

# sudo firewall-cmd --get-active-zones

Ejemplo de una salida:
public
  interfaces: eth0

Para obtener todas las configuraciones para una zona específica:

#sudo firewall-cmd --zone=public --list-all

Ejemplo de salida:

public (default, active)
  interfaces: ens160
  sources:
  services: dhcpv6-client http ssh
  ports: 12345/tcp
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

Para obtener todas las configuraciones para todas las zonas:

# sudo firewall-cmd --list-all-zones
Salida de ejemplo:

block
  interfaces:
  sources:
  services:
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

  ...

work
  interfaces:
  sources:
  services: dhcpv6-client ipp-client ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

Como es de conocimiento que los servicios y los puertos se encuentran en el archivo de configuracion /etc/services se puede acudir a este archivo para realizar consultas de los puertos que utiliza un servicio al momento de definir reglas en zonas del firewalld. 

El firewalld puede admitir tráfico con base en reglas predefinidas según servicios de red específicos y se encuentran en el directorio /usr/lib/firewalld/services 

El firewalld puede crear sus propias reglas personalizadas para un servicio y agregarlas a cualquier zona y los archivos para los servicios creados por el usuario estarían en /etc/firewalld/services.

Para ver los servicios disponibles de forma predeterminada:

# sudo firewall-cmd --get-services

Por ejemplo, para habilitar o deshabilitar el servicio HTTP:

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --remove-service=http --permanent

Una de las características que presenta el firewalld al momento de la re-dirección de puertos es la simplicidad con la cual se hace esta configuración, a continuación un ejemplo de como se realizaría

La siguiente regla de ejemplo redirige el tráfico entrante en la zona de public al puerto 80 al puerto 445 del mismo servidor:

# sudo firewall-cmd --zone="public" --add-forward-port=port=80:proto=tcp:toport=445

Eñ siguiente ejemplo indica como se redirige el tráfico entrante al servidor en un puerto especifico a otro a otro puerto especifico en un segundo servidor de la red, para lo cual primero se debe activar la opcion del enmascarado de la zona deseada:

# sudo firewall-cmd --zone=public --add-masquerade

Se procede añadir la regla de re-dirección, en este caso se quiere redirigir el tráfico sel servidor 1 en el puerto 80 al segundo servidor en el puerto 8080 con la dirección IP: 192.168.56.10

sudo firewall-cmd --zone="public" --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.56.10

En el caso para remover las reglas establecidas, se debe reemplzar la opcion del  --add con la opcion de --remove.

sudo firewall-cmd --zone=public --remove-masquerade

No hay comentarios:

Publicar un comentario