Configuración del módulo firewall de Vyatta. Parte 3 – Configuración de firewall en VLAN 20
En esta parte del tutorial de configuración del firewall de Vyatta vamos a crear las reglas de firewall necesarias para poder llevar a cabo la política de conexiones diseñada en la parte 1 y que implica a la parte de la VLAN 20 (departamento de Marketing según el esquema ejemplo) gestionada por la interfaz virtual bond0.20 de Vyatta.
A modo de resumen:
-
Departamento de Marketing (VLAN 20):
-
Al igual que el departamento de Ventas, el de Marketing, en cuanto al tráfico local que será gestionado por la maquina Vyatta le vamos a permitir las consultas DHCP de cliente (puerto 68 TCP y UDP), las consultas DNS (puerto 53 TCP y UDP), este tráfico será local (con destino a la propia maquina Vyatta y administrado por ella), con lo que tendremos que crear un grupo de reglas con las conexiones permitidas para asignar a la interfaz VLAN 10 (bond0.10) como tráfico local.
-
Acceso permitido a los servidores de la empresa (VLAN 80) solo para los servicios http (puerto 80), https (puerto 443), Microsoft SQL (puerto 1433 TCP), MySQL (puerto 3306 TCP).
-
Permitiremos también que tengan acceso a servidores de correo seguros POP, SMTP e IMAP (puertos 995, 465 y 993 TCP) de cualquier sitio de internet (podríamos limitar el acceso solo a los servidores de correo corporativos, luego veremos cómo hacerlo).
-
El acceso permitido a páginas web será a páginas de servicios de marketing online (páginas amarillas, google analitycs, google adwords…) y acceso de administración al servidor web corporativo.
-
En primer lugar vamos a crear las reglas que van a regular el tráfico que entra por la interfaz bond0.20 y que está destinado al propio sistema Vyatta, esto se llama tráfico con sentido local:
openredes@openredesR1# edit firewall name vlan20-local rule 5
[edit firewall name vlan20-local rule 5]
openredes@openredesR1# set action reject
[edit firewall name vlan20-local rule 5]
openredes@openredesR1# set state invalid enable
[edit firewall name vlan20-local rule 5]
openredes@openredesR1# up
[edit firewall name vlan20-local]
openredes@openredesR1# commit
[edit firewall name vlan20-local]
openredes@openredesR1# edit rule 10
[edit firewall name vlan20-local rule 10]
openredes@openredesR1# set action accept
[edit firewall name vlan20-local rule 10]
openredes@openredesR1# set destination port domain,bootpc
[edit firewall name vlan20-local rule 10]
openredes@openredesR1# set protocol tcp_udp
[edit firewall name vlan20-local rule 10]
openredes@openredesR1# up
[edit firewall name vlan20-local]
openredes@openredesR1# commit
[edit firewall name vlan20-local]
openredes@openredesR1# show
rule 5 {
action reject
state {
invalid enable
}
}
rule 10 {
action accept
destination {
port domain,bootpc
}
protocol tcp_udp
}
[edit firewall name vlan20-local]
openredes@openredesR1#
Lo siguiente es crear el grupo de reglas que van a permitir o rechazar las conexiones provenientes de los equipos alojados en la VLAN 20 y que pertenecen al departamento de Marketing, este grupo de reglas se aplicara a la interfaz bond0.20 como reglas de trafico entrante (in):
openredes@openredesR1# edit firewall name vlan20-in
[edit firewall name vlan20-in]
openredes@openredesR1# edit rule 2
[edit firewall name vlan20-in rule 2]
openredes@openredesR1# set action accept
[edit firewall name vlan20-in rule 2]
openredes@openredesR1# set destination group port-group puertos-vlan10-20-30-40
[edit firewall name vlan20-in rule 2]
openredes@openredesR1# set state established enable
[edit firewall name vlan20-in rule 2]
openredes@openredesR1# set state related enable
[edit firewall name vlan20-in rule 2]
openredes@openredesR1# commit
[edit firewall name vlan20-in rule 2]
openredes@openredesR1# up
[edit firewall name vlan20-in]
openredes@openredesR1# edit rule 5
[edit firewall name vlan20-in rule 5]
openredes@openredesR1# set action reject
[edit firewall name vlan20-in rule 5]
openredes@openredesR1# set state invalid enable
[edit firewall name vlan20-in rule 5]
openredes@openredesR1# commit
[edit firewall name vlan20-in rule 5]
openredes@openredesR1# up
[edit firewall name vlan20-in]
openredes@openredesR1# edit rule 10
[edit firewall name vlan20-in rule 10]
openredes@openredesR1# set action accept
[edit firewall name vlan20-in rule 10]
openredes@openredesR1# set destination address 192.168.1.192/26
[edit firewall name vlan20-in rule 10]
openredes@openredesR1# set destination port 80,443,1433,3306
[edit firewall name vlan20-in rule 10]
openredes@openredesR1# set protocol tcp
[edit firewall name vlan20-in rule 10]
openredes@openredesR1# set state new enable
[edit firewall name vlan20-in rule 10]
openredes@openredesR1# commit
[edit firewall name vlan20-in rule 10]
openredes@openredesR1# up
[edit firewall name vlan20-in]
openredes@openredesR1# edit rule 20
[edit firewall name vlan20-in rule 20]
openredes@openredesR1# set action accept
[edit firewall name vlan20-in rule 20]
openredes@openredesR1# set destination port 995,465,993
[edit firewall name vlan20-in rule 20]
openredes@openredesR1# set protocol tcp
[edit firewall name vlan20-in rule 20]
openredes@openredesR1# set state new enable
[edit firewall name vlan20-in rule 20]
openredes@openredesR1# commit
[edit firewall name vlan20-in rule 20]
openredes@openredesR1# top
[edit]
openredes@openredesR1# nslookup www.web1.com
Server: 8.8.8.8
Address 1: 8.8.8.8 dns.google.com
Name: www.web1.com
Address 1: 198.51.100.52
[edit]
openredes@openredesR1# nslookup www.web2.com
Server: 8.8.8.8
Address 1: 8.8.8.8 dns.google.com
Name: www.web2.com
Address 1: 198.51.100.53
[edit]
openredes@openredesR1# nslookup www.banco1.com
Server: 8.8.8.8
Address 1: 8.8.8.8 dns.google.com
Name: www.banco1.com
Address 1: 198.51.100.22
[edit]
openredes@openredesR1# nslookup www.banco2.com
Server: 8.8.8.8
Address 1: 8.8.8.8 dns.google.com
Name: www.banco2.com
Address 1: 198.51.100.23
[edit]
openredes@openredesR1# edit firewall group address-group webs-vlan20
[edit firewall group address-group webs-vlan20]
openredes@openredesR1# set address 198.51.100.52
[edit firewall group address-group webs-vlan20]
openredes@openredesR1# set address 198.51.100.53
[edit firewall group address-group webs-vlan20]
openredes@openredesR1# set address 198.51.100.22
[edit firewall group address-group webs-vlan20]
openredes@openredesR1# set address 198.51.100.23
[edit firewall group address-group webs-vlan20]
openredes@openredesR1# top
[edit]
openredes@openredesR1# edit firewall name vlan20-in rule 30
[edit firewall name vlan20-in rule 30]
openredes@openredesR1# set action accept
[edit firewall name vlan20-in rule 30]
openredes@openredesR1# set destination group address-group webs-vlan20
[edit firewall name vlan20-in rule 30]
openredes@openredesR1# set destination port 80,443
[edit firewall name vlan20-in rule 30]
openredes@openredesR1# set protocol tcp
[edit firewall name vlan20-in rule 30]
openredes@openredesR1# set state new enable
[edit firewall name vlan20-in rule 30]
openredes@openredesR1# commit
[edit firewall name vlan20-in rule 30]
openredes@openredesR1# up
[edit firewall name vlan20-in]
openredes@openredesR1# edit rule 40
[edit firewall name vlan20-in rule 40]
openredes@openredesR1# set action accept
[edit firewall name vlan20-in rule 40]
openredes@openredesR1# set destination address 192.168.0.226
[edit firewall name vlan20-in rule 40]
openredes@openredesR1# set destination port 443
[edit firewall name vlan20-in rule 40]
openredes@openredesR1# set protocol tcp
[edit firewall name vlan20-in rule 40]
openredes@openredesR1# set state new enable
[edit firewall name vlan20-in rule 40]
openredes@openredesR1# commit
[edit firewall name vlan20-in rule 40]
openredes@openredesR1# up
[edit firewall name vlan20-in]
openredes@openredesR1# show
rule 2 {
action accept
destination {
group {
port-group puertos-vlan10-20-30-40
}
}
state {
established enable
related enable
}
}
rule 5 {
action reject
state {
invalid enable
}
}
rule 10 {
action accept
destination {
address 192.168.1.192/26
port 80,443,1433,3306
}
protocol tcp
state {
new enable
}
}
rule 20 {
action accept
destination {
port 995,465,993
}
protocol tcp
state {
new enable
}
}
rule 30 {
action accept
destination {
group {
address-group webs-vlan20
}
port 80,443
}
protocol tcp
state {
new enable
}
}
rule 40 {
action accept
destination {
address 192.168.0.226
port 443
}
protocol tcp
state {
new enable
}
}
[edit firewall name vlan20-in]
openredes@openredesR1# save
Saving configuration to '/opt/vyatta/etc/config/config.boot'...
Done
[edit]
openredes@openredesR1#
En caso de querer limitar el acceso únicamente al servidor de email de la empresa se puede configurar en la regla 20 un destino único prefijado o un grupo de destino creando un grupo de direcciones y asignarlo con el comando set firewall name vlan20-in rule 20 destination address IP_server_mail_corporativo.
Una vez configurados los grupos de reglas para la interfaz bond0.20 solo queda aplicarlos a dicha interfaz en el sentido correcto:
openredes@openredesR1# set interfaces bonding bond0 vif 20 firewall in name vlan20-in
[edit]
openredes@openredesR1# set interfaces bonding bond0 vif 20 firewall local name vlan20-local
[edit]
openredes@openredesR1# commit
[edit]
openredes@openredesR1# save
Saving configuration to '/opt/vyatta/etc/config/config.boot'...
Done
[edit]
openredes@openredesR1#
Ahora los equipos pertenecientes a la VLAN 20 solo tendrán los accesos descritos en la primera parte del tutorial.













Pingback: Configuración del módulo firewall de Vyatta. Parte 4 - Configuración de firewall en VLAN 30 y 40 | openredes - Networking Open Source
Pingback: Tutorial, manual de configuracion del modulo firewall en Vyatta | openredes - Networking Open Source
Pingback: Vyatta en español | openredes - Networking Open Source
Pingback: Configuración del módulo firewall de Vyatta. Parte 12 – Configuración de firewall en las interfaces VPN de acceso remoto vtun0 y vtun1 (VPN RA) de openredesR1. | openredes - Networking Open Source
Hola!
Estoy intentando seguir este tutorial sobre firewall pero no consigo ponerlo en marcha.
Mi lab tiene 3 interfaces eth0(Lan), eth3(Servers) y eth2(Wan)
He aplicado una zona en el interfaz eth0 para el trafico in y funciona correctamente, pero cuando aplico una regla para el trafico in en el interfaz eth3 pierdo comunicación con los servidores.
¿Tengo configurar las misma reglas que he configurado en la zona in del eth0 ne la zona out del eth3 para permitir el acceso entre estas maquinas?
Vengo del mundillo Cisco y esto no me habia ocurrido hasta ahora.
Muchas gracias!
Hola rokkhan,
La respuesta a tu pregunta es no, no es necesario configurar las mismas reglas in para una interfaz como out para otra. Personalmente uso siempre reglas in para cada interfaz unicamente (y local) la conexion con los servidores la pierdes al configurar reglas in en eth3 porque no contemplas las respuestas de los servidores a conexiones iniciadas desde equipos de la LAN.
Para evitar esto tienes que manejar los estados de las conexiones, echa un vistazo a las reglas 2 y 5 de este mismo ejemplo. Esas reglas permiten el tráfico marcado como establecido o relacionado, es decir, conexiones que ya han sido iniciadas (no son nuevas).
Esta entrada puede serte útil.
Si por ejemplo añades estas reglas al inicio de tu grupo de reglas in para eth3 las conexiones contra tus servers te funcionarán:
rule 2 {
action accept
state {
established enable
related enable
}
}
rule 5 {
action reject
state {
invalid enable
}
}
Comenta resultados.