Todas las colecciones
Redes Wi-Fi
Ubiquiti UniFi – ¿Cómo personalizar aún más la configuración de USG con config.gateway.json?
Ubiquiti UniFi – ¿Cómo personalizar aún más la configuración de USG con config.gateway.json?
Orlando Robles avatar
Escrito por Orlando Robles
Actualizado hace más de una semana

Este artículo describe cómo crear el  archivo config.gateway.json y cómo usarlo. El archivo config.gateway.json se usa para la configuración avanzada del USG. Este archivo le permite hacer personalizaciones constantes a través de los provisionamientos.

¿Cómo personalizar la configuración del USG con config.gateway.json?

Al realizar personalizaciones a través del archivo config.gateway.json, es mejor extraer solo las personalizaciones que no se pueden realizar a través de la Interfaz de Usuario (UI) del controlador. Esto puede necesitar un poco de paciencia, porque si se formatea mal, activará un bucle de inicio en el USG.

Algunos usuarios pueden darse por vencidos al descargar las configuraciones completas, pero es posible que esto pueda causar problemas en el futuro. Podría causar un boot loop (bucle de arranque) cuando se cambie una configuración a través de la UI del controlador.

Por default, no hay tal archivo, un usuario tiene que crear este archivo para poder usarlo. El archivo config.gateway.json se ubica en el  directorio  <unifi_base>/data/sites/the_site almacenado en el controlador.

Nota: La ubicación <unifi_base> variará según su sistema operativo. Vea este artículo para más información.

Para cada sitio, usted encontrará una cadena aleatoria única que asigna al sitio. En el caso anterior, la cadena aleatoria ceb1m27d es el nombre de la carpeta que se usará en <unifi_base>/data/sites/.  Por lo tanto, en este caso, se creará una carpeta debajo llamada ceb1m27d , y luego se colocará dentroconfig.gateway.json.

Antes de personalizar cualquier cosa, debe verificar el config.boot existente para asegurarse de que no está usando un número de regla existente (si corresponde). Puedes hacer esto de varias maneras. En este caso se usará SSH para conectarse al USG y emitir:

cat/config/config.boot

Entonces, para este ejemplo, se va a crear una regla DNAT para DNS (esto es solo un ejemplo, puede que no sea el mejor caso de uso). Se configurará usando el formato EdgeOS:

configureset service nat rule 1 type destinationset service nat rule 1 inbound-interface eth0set service nat rule 1 protocol tcp_udpset service nat rule 1 source port 53set service nat rule 1 inside-address address 10.0.0.1set service nat rule 1 inside-address port 53commit;save;exit

Una vez que haya terminado, se exporta la configuración a través de:

mca-ctrl -t dump-cfg

Tenga en cuenta que no se toma la  molestia en exportar al archivo. Si se desea se puede hacer lo siguiente:

mca-ctrl -t dump-cfg > config.txt

Así que se encuentra la salida apropiada en esta configuración de salida:

                "nat": {                        "rule": {
                               "1": {
                                       "destination": {
                                               "port": "53"
                                       },
                                       "inbound-interface": "eth0",
                                       "inside-address": {
                                               "address": "10.0.0.1",
                                               "port": "53"
                                       },
                                       "protocol": "tcp_udp",
                                       "type": "destination"
                               },

Esa es una regla personalizada para este caso, pero no está del todo en el formato. Si se observa la configuración de salida desde el principio, hay un cierto formato. Si quisiera sólo esta regla en config.gateway.json, el archivo se vería así:

{
       "service": {
                "nat": {                        "rule": {
                               "1": {
                                       "destination": {
                                               "port": "53"
                                       },
                                       "inbound-interface": "eth0",
                                       "inside-address": {
                                               "address": "10.0.0.1",
                                               "port": "53"
                                       },
                                       "protocol": "tcp_udp",
                                       "type": "destination"
                               }
                       }
                 }
       }
}

Si tiene varias secciones para agregar, como por ejemplo, servicio y luego VPN, el paréntesis de cierre para esa sección iría seguido de una coma, luego comenzaría la siguiente sección. Por ejemplo, servicio y VPN serían dos secciones separadas.

Sería útil validar su código. Hay una serie de opciones gratuitas disponibles si busca el  validador jsona  través de su motor de búsqueda favorito.

Es de esperar que esto brinde alguna información sobre cómo crear un archivo config.gateway.json. Es importante observar aquí que el archivo personalizado json es un “reemplazo” en lugar de una “fusión” de las secciones de configuración. Debe tener esto en cuenta para incluir todos los artículos, y no solo los nuevos que desea agregar.

Notas y Tips

  • En una instalación de Ubuntu, la ruta del archivo .json es: /usr/lib/unifi/data/sites/[site name/default]/

  • Una manera fácil de probar la validez del archivo json es: python -m json.tool config.gateway.json

¿Ha quedado contestada tu pregunta?