Enmascarar ip con Firewalld

Vemos como enmascarar una ip usando el firewalld de centos7 y derivados.

Enmascarar ip con Firewalld 1

 

Primero modificamos  la zona de las interfaces.

# show current setting
[root@yo ~]# firewall-cmd --get-active-zone 
public
  interfaces: eth0 eth1

# change zone
[root@yo ~]# nmcli c mod eth0 connection.zone internal 
[root@yo ~]# nmcli c mod eth1 connection.zone external
[root@yo ~]# firewall-cmd --get-active-zone 
internal
  interfaces: eth0
external
  interfaces: eth1

 

Establecemos la ip enmascarada en la zona externa.

# set IP Masquerading
[root@yo ~]# firewall-cmd --zone=external --add-masquerade --permanent 
success
[root@yo ~]# firewall-cmd --reload 
success
# show setting
[root@yo ~]# firewall-cmd --zone=external --query-masquerade 
yes
# ip_forward is enabled automatically if masquerading is enabled.
[root@yo ~]# cat /proc/sys/net/ipv4/ip_forward 
1

 

En el ejemplo configuraremos que todos los paquetes entrantes en el puerto 22 de la zona externa sean reenviados al puerto 1234 de nuestro servidor.  Recuerda agregar la opción «–permanent» si quieres que el cambio sea permanente.

[root@yo ~]# firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=1234 
success
[root@yo ~]# firewall-cmd --list-all --zone=external 
external (active)
  interfaces: eth1
  sources:
  services: ssh
  ports:
  masquerade: yes
  forward-ports: port=22:proto=tcp:toport=1234:toaddr=
  icmp-blocks:
  rich rules:

 

Otro ejemplo sería que los paquetes entrantes al puerto 22 de la zona externa, sean reenviados a otro Host (192.168.0.31) y al puerto 22.

[root@yo ~]# firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=22:toaddr=192.168.0.31 
success
[root@yo ~]# firewall-cmd --list-all --zone=external 
external (active)
  interfaces: eth1
  sources:
  services: ssh
  ports:
  masquerade: yes
  forward-ports: port=22:proto=tcp:toport=22:toaddr=10.0.0.31
  icmp-blocks:
  rich rules:

 

Y como ultimo ejemplo lo configuramos para que todos los paquetes salientes del servidor  (10.0.0.0/24) sean permitidos y a la vez sean reenviados por la zona externa.

# set masquerading to internal zone
[root@yo ~]# firewall-cmd --zone=internal --add-masquerade --permanent 
success
[root@yo ~]# firewall-cmd --reload 
success
[root@yo ~]# firewall-cmd --direct --add-rule ipv4 nat POSTROUTING 0 -o eth1 -j MASQUERADE 
[root@yo ~]# firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i eth0 -o eth1 -j ACCEPT 
[root@yo ~]# firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

 

 

Agregar comentario