Saltar al contenido principal

Configuración del firewall

Utilice esta información para establecer la configuración del firewall.

Establecer firewall predeterminado

La sección de valores predeterminados establece los valores globales del firewall que no pertenecen a zonas específicas.

Tabla 1. Establecer firewall predeterminado
Sintaxis
  • sudo uci set firewall.@defaults[0].input=<input>
  • sudo uci set firewall.@defaults[0].output=<output>
  • sudo uci set firewall.@defaults[0].forward=<forward>
  • sudo uci set firewall.@defaults[0].syn_flood=<syn_flood>
  • sudo uci set firewall.@defaults[0].drop_invalid=<drop_invalid>
Tabla 2. Parámetros
NombreTipoObligatorioPredeterminadoDescripción

input

cadena

no

RECHAZAR

Establece directiva para la cadena de ENTRADA de la tabla de filtros.

output

cadena

no

RECHAZAR

Establece directiva para la cadena de SALIDA de la tabla de filtros.

forward

cadena

no

RECHAZAR

Establece directiva para la cadena de REENVÍO de la tabla de filtros.

syn_flood

booleano

no

0

Habilita la protección contra ataques SYN (obsoleta por el valor synflood_protect).

drop_invalid

booleano

no

0

Suelta paquetes no válidos (por ejemplo, cuando no coinciden con ninguna conexión activa).

Ejemplo de comandos:

Tabla 3. Ejemplo de comandos
  • sudo uci set firewall.@defaults[0].input=ACCEPT
  • sudo uci set firewall.@defaults[0].output= ACCEPT
  • sudo uci set firewall.@defaults[0].forward= ACCEPT
  • sudo uci set firewall.@defaults[0].syn_flood=1
  • sudo uci set firewall.@defaults[0].drop_invalid=1
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart

Añade una zona nueva

Esta sección define las propiedades comunes de la prueba. Las opciones de entrada y salida establecen las políticas predeterminadas para el tráfico que entra y sale de esta zona, mientras que la opción de reenvío describe la política del tráfico reenviado entre distintas redes dentro de la zona. Las redes cubiertas especifican qué redes disponibles son miembros de esta zona.

Tabla 4. Añade una zona nueva
Sintaxis
  • sudo uci add firewall zone
  • sudo uci set firewall.@zone[-1].name=<name>
  • sudo uci set firewall.@zone[-1].input=<input>
  • sudo uci set firewall.@zone[-1].output=<output>
  • sudo uci set firewall.@zone[-1].forward=<forward>
  • sudo uci set firewall.@zone[-1].masq=<masq>
  • sudo uci set firewall.@zone[-1].mtu_fix=<mtu_fix>
  • sudo uci set firewall.@zone[-1].network=<network>
  • sudo uci set firewall.@zone[-1].family=<family>
  • sudo uci set firewall.@zone[-1].masq_src=<masq_src>
  • sudo uci set firewall.@zone[-1].masq_dest=<masq_dest>
  • sudo uci set firewall.@zone[-1].conntrack=<conntrack>
  • sudo uci set firewall.@zone[-1].log=<log>
  • sudo uci set firewall.@zone[-1].log_limit=<log_limit>
  • udo uci commit firewall
Tabla 5. Parámetros

Parámetro

Tipo

Obligatorio

Predeterminado

Descripción

name

nombre de zona

ninguno

Nombre de zona único. La longitud máxima del nombre de la zona de firewall en funcionamiento es de 11 caracteres.

input

cadena

no

RECHAZAR

Establece directiva para la cadena de ENTRADA de la tabla de filtros.

output

cadena

no

RECHAZAR

Establece directiva para la cadena de SALIDA de la tabla de filtros.

forward

cadena

no

RECHAZAR

Establece directiva para la cadena de REENVÍO de la tabla de filtros.

masq

booleano

no

0

Especifica si se debe enmascarar el tráfico saliente de la zona: esto suele estar habilitado en la zona wan.

mtu_fix

booleano

no

0

Habilita fijación del MSS para el tráfico saliente de la zona.

red

lista

no

ninguno

Lista de interfaces asociadas a esta zona. Si se omite y no se especifican opciones, subredes o dispositivos adicionales*, el valor del nombre se usa de forma predeterminada. Las interfaces de alias definidas en la configuración de red no se pueden utilizar como redes 'independientes' válidas. Utiliza la sintaxis de la lista como se explica en uci.

family

cadena

no

0

Familia de protocolos (ipv4, ipv6 o cualquiera) para generar reglas de tablas de IP.

masq_src

lista de subredes

no

0.0.0.0/0

Limita el enmascaramiento a las subredes de origen indicadas. La negación es posible anteponiendo el prefijo ! a la subred; se permiten varias subredes.

masq_dest

lista de subredes

no

0.0.0.0/0

Limita el enmascaramiento a las subredes de destino indicadas. La negación es posible anteponiendo el prefijo ! a la subred; se permiten varias subredes.

conntrack

booleano

no

1 si se utiliza enmascaramiento, 0 de lo contrario

Fuerza el seguimiento de la conexión para esta zona (consulte la nota sobre seguimiento de conexiones).

log

booleano

no

0

Crea reglas de registro para el tráfico rechazado y caído en esta zona.

log_limit

cadena

no

10/minuto

Limita la cantidad de mensajes de registro por intervalo.

Ejemplo de comandos:

Tabla 6. Ejemplo de comandos
  • sudo uci add firewall zone
  • sudo uci set firewall.@zone[-1].name=test
  • sudo uci set firewall.@zone[-1].input=ACCEPT
  • sudo uci set firewall.@zone[-1].output= ACCEPT
  • sudo uci set firewall.@zone[-1].forward= ACCEPT
  • sudo uci set firewall.@zone[-1].masq=<masq>
  • sudo uci set firewall.@zone[-1].mtu_fix=<mtu_fix>
  • sudo uci set firewall.@zone[-1].network=<network>
  • sudo uci set firewall.@zone[-1].family=<family>
  • sudo uci set firewall.@zone[-1].masq_src=<masq_src>
  • sudo uci set firewall.@zone[-1].masq_dest=<masq_dest>
  • sudo uci set firewall.@zone[-1].conntrack=<conntrack>
  • sudo uci set firewall.@zone[-1].log=<log>
  • sudo uci set firewall.@zone[-1].log_limit=<log_limit>
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart

Añade un reenvío nuevo

Las secciones de reenvío controlan el flujo de tráfico entre las zonas y pueden habilitar la fijación del MSS para direcciones específicas. Una regla de reenvío cubre una dirección solamente. Para permitir flujos de tráfico bidireccional entre dos zonas, se requieren dos reenvíos, con src y dest invertidas en cada uno.

Tabla 7. Añade un reenvío nuevo
Sintaxis
  • sudo uci set firewall.@zone[-1].src=<src>
  • sudo uci set firewall.@zone[-1].dest=<dest>
  • sudo uci commit firewall
Tabla 8. Parámetros
ParámetroTipoObligatorioPredeterminadoDescripción

src

nombre de zona

ninguno

Especifica la zona de origen del tráfico. Debe hacer referencia a uno de los nombres de zona definidos.

dest

nombre de zona

ninguno

Especifica la zona de destino del tráfico. Debe hacer referencia a uno de los nombres de zona definidos.

Ejemplo de comandos:

Tabla 9. Ejemplo de comandos
  • sudo uci set firewall.@zone[-1].src=test
  • sudo uci set firewall.@zone[-1].dest=lan
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart

Añade un nuevo puerto de reenvío

Los reenvíos de puerto (DNAT) se definen por secciones de redirección. Todo el tráfico entrante en la zona de origen especificada que coincida con las reglas indicadas se dirigirá al host interno especificado. Los redireccionamientos también se conocen comúnmente como “reenvío de puerto” y “servidores virtuales”. Los rangos de puertos se especifican como start:stop, por ejemplo 6666:6670. Esto es similar a la sintaxis de las tablas de ip.

Tabla 10. Añade un nuevo puerto de reenvío
Sintaxis
  • sudo uci add firewall redirect
  • sudo uci set firewall.@redirect[-1].enabled=<enabled>
  • sudo uci set firewall.@redirect[-1].name=<name>
  • sudo uci set firewall.@redirect[-1].proto=<proto>
  • sudo uci set firewall.@redirect[-1].src=<src>
  • sudo uci set firewall.@redirect[-1].src_mac=<src_mac>
  • sudo uci set firewall.@redirect[-1].src_ip=<src_ip>
  • sudo uci set firewall.@redirect[-1].src_port=<src_port>
  • sudo uci set firewall.@redirect[-1].src_dip=<src_dip>
  • sudo uci set firewall.@redirect[-1].src_dport=<src_dport>
  • sudo uci set firewall.@redirect[-1].dest=<dest>
  • sudo uci set firewall.@redirect[-1].dest_ip=<dest_ip>
  • sudo uci set firewall.@redirect[-1].dest_port=<dest_port>
  • sudo uci set firewall.@redirect[-1].reflection=<reflection>
  • sudo uci commit firewall
Tabla 11. Parámetros
ParámetroTipoObligatorioPredeterminadoDescripción

enabled

cadena

no

1 o sí

Habilita la regla de redireccionamiento o no.

name

cadena

no

ninguno

Nombre de redireccionamiento único.

proto

nombre o número de protocolo

tcp udp

Hace coincidir el tráfico entrante utilizando el protocolo indicado.

src

nombre de zona

no

sí para DNAT de destino

Especifica la zona de origen del tráfico. Debe hacer referencia a uno de los nombres de zona definidos. Para reenvíos de puerto típicos suele ser wan.

src_mac

dirección mac

no

ninguno

Hace coincidir el tráfico entrante de la dirección mac especificada.

src_ip

dirección ip

no

ninguno

Hace coincidir el tráfico entrante de la dirección IP fuente especificada.

src_port

puerto o rango

no

ninguno

Hace coincidir el tráfico entrante que se originó en el puerto de origen o rango de puerto indicado (por ejemplo: '5000-5100') en el host cliente.

src_dip

dirección ip

sí para SNAT de destino

ninguno

Para DNAT, hace coincidir el tráfico entrante dirigido a la dirección IP de destino indicada. Para SNAT sustituye la dirección de origen por la dirección indicada.

src_dport

puerto o rango

no

ninguno

Para DNAT, hace coincidir el tráfico entrante dirigido al puerto o rango de puertos de destino indicado (por ejemplo: '5000-5100') en este host. Para SNAT sustituye los puertos de origen por el valor indicado.

dest

nombre de zona

sí para SNAT de destino

ninguno

Especifica la zona de destino del tráfico. Debe hacer referencia a uno de los nombres de zona definidos. Para DNAT de destino en ajuste de actitud, el reflejo de NAT solo funciona si este es igual a lan.

dest_ip

dirección ip

sí para DNAT de destino

ninguno

Para DNAT, redirige el tráfico entrante que coincide al host interno especificado. Para SNAT, hace coincidir el tráfico entrante dirigido a la dirección indicada. Para DNAT, si el valor dest_ip coincide con las direcciones ip locales del enrutador, como se muestra en ifconfig, la regla se traduce en una regla de 'aceptación' de DNAT + entrada. De lo contrario, se trata de una regla DNAT + reenvío.

dest_port

puerto o rango

no

ninguno

Para DNAT, redirige el tráfico entrante que coincide con el puerto indicado del host interno. Para SNAT, hace coincidir el tráfico entrante dirigido a los puertos indicados. Solo se puede especificar un solo puerto o rango (por ejemplo, '5000-5100'), no puertos dispares como con las reglas (a continuación).

reflection

booleano

no

1

Activa el reflejo de NAT para este redireccionamiento - se aplica a los destinos de DNAT.

Ejemplo de comandos:

Tabla 12. Reenvía el tráfico http (no HTTPS) al servidor web que se ejecuta en 192.168.1.10:
  • sudo uci add firewall redirect
  • sudo uci set firewall.@redirect[-1].enabled=1
  • sudo uci set firewall.@redirect[-1].proto=tcp
  • sudo uci set firewall.@redirect[-1].src=wan
  • sudo uci set firewall.@redirect[-1].src_dport=80
  • sudo uci set firewall.@redirect[-1].dest=lan
  • sudo uci set firewall.@redirect[-1].dest_ip=192.168.1.10
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart

Añade una nueva regla de tráfico

Los reenvíos de puerto (DNAT) se definen por secciones de redirección. Todo el tráfico entrante en la zona de origen especificada que coincida con las reglas indicadas se dirigirá al host interno especificado. Los redireccionamientos también se conocen comúnmente como reenvío de puerto y servidores virtuales. Los rangos de puertos se especifican como start:stop, por ejemplo 6666:6670. Esto es similar a la sintaxis de las tablas de ip.

Tabla 13. Añade una nueva regla de tráfico
Sintaxis
  • sudo uci add firewall rule
  • sudo uci set firewall.@rule[-1].enabled=<enabled>
  • sudo uci set firewall.@rule[-1].name=<name>
  • sudo uci set firewall.@rule[-1].family=<family>
  • sudo uci set firewall.@rule[-1].proto=<proto>
  • sudo uci set firewall.@rule[-1].src=<src>
  • sudo uci set firewall.@rule[-1].src_mac=<src_mac>
  • sudo uci set firewall.@rule[-1].src_ip=<src_ip>
  • sudo uci set firewall.@rule[-1].src_port=<src_port>
  • sudo uci set firewall.@rule[-1].dest=<dest>
  • sudo uci set firewall.@rule[-1].dest_ip=<dest_ip>
  • sudo uci set firewall.@rule[-1].dest_port=<dest_port>
  • sudo uci set firewall.@rule[-1].target=<target>
  • sudo uci set firewall.@rule[-1].weekdays=<weekdays>
  • sudo uci set firewall.@rule[-1].monthdays=<monthdays>
  • sudo uci set firewall.@rule[-1].start_time=<start_time>
  • sudo uci set firewall.@rule[-1].stop_time=<stop_time>
  • sudo uci set firewall.@rule[-1].start_date=<start_date>
  • sudo uci set firewall.@rule[-1].stop_date=<stop_date>
  • sudo uci set firewall.@rule[-1].utc_time=<utc_time>
  • uci commit firewall
Tabla 14. Parámetros
ParámetroTipoObligatorioPredeterminadoDescripción

enabled

booleano

no

Habilita o deshabilita la regla.

name

cadena

no

ninguno

Nombre de regla único.

family

cadena

no

cualquiera

Familia de protocolos (ipv4, ipv6 o cualquiera) para generar reglas de tablas de IP.

proto

nombre o número de protocolo

no

tcp udp

Hace coincidir el tráfico entrante utilizando el protocolo indicado. Puede ser tcp, udp, tcpudp, udplite, icmp, esp, ah, sctp o todos ellos o puede ser un valor numérico, que representa uno de estos protocolos o uno distinto. También se permite un nombre de protocolo de /etc/protocols. El número 0 equivale a todos.

src

nombre de zona

sí (opcional desde el Firewall v2, versión 58 y superior)

ninguno

Especifica la zona de origen del tráfico. Debe hacer referencia a uno de los nombres de zona definidos.

src_mac

dirección mac

no

ninguno

Hace coincidir el tráfico entrante de la dirección mac especificada.

src_ip

dirección ip

no

ninguno

Hace coincidir el tráfico entrante de la dirección IP fuente especificada.

src_port

puerto o rango

no

ninguno

Hace coincidir el tráfico entrante desde el puerto de origen o el rango de puerto especificado (por ejemplo, '5000:5100', el rango de puerto no se aplica a todos los protocolos), si se especifica el protocolo correspondiente. Se pueden especificar varios puertos, como '80 443 465' 1.

dest

nombre de zona

no

ninguno

Especifica la zona de destino del tráfico. Debe hacer referencia a uno de los nombres de zona definidos o * para cualquier zona. Si se especifica, la regla se aplica al tráfico reenviado; de lo contrario, se la trata como una regla de entrada.

dest_ip

dirección ip

no

ninguno

Hace coincidir el tráfico entrante dirigido a la dirección IP de destino especificada. Sin zona de destino, esta se trata como una regla de entrada.

dest_port

puerto o rango

no

ninguno

Hace coincidir el tráfico entrante dirigido en el puerto de destino o el rango de puerto indicado (por ejemplo, '5000:5100', el rango de puerto no se aplica a todos los protocolos), si se especifica el protocolo correspondiente. Se pueden especificar varios puertos, como '80 443 465' 1.

target

cadena

SOLTAR

Activa el reflejo de NAT para este redireccionamiento - se aplica a los destinos de DNAT.

weekdays

lista de días de la semana

no

(siempre)

Si se especifica, solo hace coincidir el tráfico de los días de la semana indicados, por ejemplo, dom lun jue vie para que solo coincida con los domingos, lunes, jueves y viernes. La lista puede invertirse anteponiendo un signo de exclamación, es decir, ! sab dom para que coincida siempre, excepto los sábados y domingos.

monthdays

lista de fechas

no

(siempre)

Si se especifica, solo hace coincidir el tráfico de los días indicados, por ejemplo, 2 5 30 para que solo coincidan los días 2, 5 y 30 del mes. La lista puede invertirse anteponiendo un signo de exclamación, es decir, ! 31 para que coincida siempre, excepto el 31 de cada mes.

start_time

hora (hh:mm:ss)

no

(siempre)

Si se especifica, solo hace coincidir el tráfico después de la hora indicada del día (inclusive).

stop_time

hora (hh:mm:ss)

no

(siempre)

Si se especifica, solo hace coincidir el tráfico antes de la hora indicada del día (inclusive).

start_date

fecha (aaaa-mm-dd)

no

(siempre)

Si se especifica, solo hace coincidir el tráfico después de la fecha indicada (inclusive).

stop_date

fecha (aaaa-mm-dd)

no

(siempre)

Si se especifica, solo hace coincidir el tráfico antes de la fecha indicada (inclusive).

utc_time

booleano

no

0

Trata todos los valores de hora indicados como hora UTC en lugar de la hora local.

Ejemplo de comandos:

Tabla 15. Bloquea todos los intentos de conexión para conectar la dirección de host especificada.
  • sudo uci add firewall rule
  • sudo uci set firewall.@rule[-1].enabled=1
  • sudo uci set firewall.@rule[-1].src=lan
  • sudo uci set firewall.@rule[-1].dest=wan
  • sudo uci set firewall.@rule[-1].dest_ip=123.45.67.89
  • sudo uci set firewall.@rule[-1].target=REJECT
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart

Añadir un NAT de origen nuevo

El NAT de origen cambia un paquete saliente de forma que parezca que el sistema de conmutador incorporado es el origen del paquete.

Ejemplo de comandos:
Tabla 16. Definir NAT de origen para el tráfico UDP y TCP

Definir el NAT de origen para el tráfico UDP y TCP dirigido al puerto 123 que se origina en el host con la dirección IP 10.55.34.85.

La dirección de origen se sustituye por 63.240.161.99:

  • sudo uci add firewall redirect
  • sudo uci set firewall.@redirect[-1].enabled=1
  • sudo uci set firewall.@redirect[-1].src=lan
  • sudo uci set firewall.@redirect[-1].src_ip=10.55.34.85
  • sudo uci set firewall.@redirect[-1].src_dip=63.240.161.99
  • sudo uci set firewall.@redirect[-1].dest=wan
  • sudo uci set firewall.@redirect[-1].dest_port=123
  • sudo uci set firewall.@redirect[-1].target=SNAT
  • sudo uci commit firewall
  • sudo /etc/init.d/firewall restart