{"id":81073,"date":"2022-10-05T14:09:45","date_gmt":"2022-10-05T14:09:45","guid":{"rendered":"https:\/\/www.redeszone.net\/?post_type=marcas&amp;p=615393"},"modified":"2022-10-05T14:09:45","modified_gmt":"2022-10-05T14:09:45","slug":"accede-a-tu-nuclias-connect-de-forma-remota-y-segura-con-traefik","status":"publish","type":"post","link":"http:\/\/cordobadirecto.com\/index.php\/2022\/10\/05\/accede-a-tu-nuclias-connect-de-forma-remota-y-segura-con-traefik\/","title":{"rendered":"Accede a tu Nuclias Connect de forma remota y segura con Traefik"},"content":{"rendered":"<div id>\n<h2>\u00bfQu\u00e9 formas tenemos de conectarnos remotamente?<\/h2>\n<p>La <strong>gesti\u00f3n de Nuclias Connect<\/strong> est\u00e1 basada en un servidor web, por lo tanto, debemos <strong>acceder a una URL con nuestro navegador web<\/strong> y accederemos a la web de administraci\u00f3n general de todos los puntos de acceso, sedes y redes que tengamos dadas de alta. De esta forma tan sencilla, podemos <strong>monitorizar, administrar y gestionar toda la red de puntos de acceso<\/strong> de manera centralizada. En el caso de que tengas Nuclias Connect para PC, tambi\u00e9n podr\u00e1s gestionar los switches de forma centralizada.<\/p>\n<p>Lo ideal es que <strong>Nuclias Connect fuera accesible a trav\u00e9s de Internet<\/strong>, tanto v\u00eda web con el navegador como tambi\u00e9n con la aplicaci\u00f3n para smartphones Android y iOS, con la cual podemos monitorizar de forma r\u00e1pida y f\u00e1cil todas las redes y puntos de acceso WiFi configurados. Otros fabricantes lo que hacen es utilizar conexiones inversas para no tener problemas de seguridad, en el caso de Nuclias Connect tenemos un panel de control centralizado en la nube desde donde podemos pinchar e ir a cada controlador, ya sea software o hardware (con el DNH-100), sin embargo, es obligatorio que el router tenga abierto un puerto a la web de administraci\u00f3n del Nuclias, lo que puede ser bastante peligroso.<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter size-full wp-image-616047\" src=\"http:\/\/cordobadirecto.com\/wp-content\/uploads\/2022\/10\/accede-a-tu-nuclias-connect-de-forma-remota-y-segura-con-traefik.jpg\" alt width=\"1200\" height=\"856\"><\/p>\n<\/div>\n<div id>\n<h3>Abrir puerto y acceso directo<\/h3>\n<p>La forma <strong>m\u00e1s sencilla de acceder de forma remota<\/strong> al panel de control v\u00eda web, es abriendo un puerto en nuestro router en la secci\u00f3n de \u00ab<strong>reenv\u00edo de puertos<\/strong>\u00bb o \u00abport forwarding\u00bb. Aunque es la soluci\u00f3n m\u00e1s simple y f\u00e1cil, tambi\u00e9n <strong>es la m\u00e1s peligrosa<\/strong>, porque estamos exponiendo a Internet el men\u00fa de administraci\u00f3n web del Nuclias Connect. Un posible atacante no solamente podr\u00eda intentar acceder probando credenciales de usuario, sino que podr\u00eda encontrar una vulnerabilidad en el servidor web y explotarla, para hacerse con el control total del dispositivo.<\/p>\n<p>No os recomendamos abrir un puerto y acceder directamente a la web de administraci\u00f3n, porque cualquier ciberdelincuente podr\u00eda hacer un escaneo de puertos, ver que el puerto est\u00e1 abierto y accesible, y comenzar a probar diferentes ataques para intentar entrar en la gesti\u00f3n del Nuclias.<\/p>\n<h3>Usar una VPN<\/h3>\n<p>Esta es la forma m\u00e1s segura sin lugar a dudas, pero tambi\u00e9n la m\u00e1s complicada de configurar y la m\u00e1s molesta de utilizar una vez que est\u00e1 todo montado. Con esta opci\u00f3n, tendr\u00e1s que <strong>montar un servidor VPN<\/strong> con protocolos como <strong>IPsec, OpenVPN o Wireguard<\/strong>. Este servidor debe estar en el router o bien en un servidor NAS o PC que tengas en la organizaci\u00f3n, si ya tienes un servidor VPN montado, entonces solamente debes asegurarte que desde la subred de la VPN puedes tener acceso al Nuclias Connect.<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter size-full wp-image-277352\" src=\"http:\/\/cordobadirecto.com\/wp-content\/uploads\/2022\/10\/accede-a-tu-nuclias-connect-de-forma-remota-y-segura-con-traefik-1.jpg\" alt width=\"1200\" height=\"664\"><\/p>\n<p>La parte negativa de esta opci\u00f3n es que siempre tendr\u00e1s que estar conectado al servidor VPN si quieres acceder al Nuclias, no tienes acceso directo, ni con el PC v\u00eda web ni tampoco con la app m\u00f3vil. Siempre tendr\u00e1s que tener en funcionamiento el servicio de VPN antes de intentar acceder, por lo que podr\u00eda convertirse en algo bastante tedioso.<\/p>\n<h3>Montar un Proxy inverso<\/h3>\n<p>Esta es una forma muy segura y muy f\u00e1cil de conectarnos, aunque <strong>la configuraci\u00f3n en un primer momento pueda resultar complicada<\/strong>, despu\u00e9s agradeces haber puesto un proxy inverso. El objetivo de esto es que podemos acceder a nuestro Nuclias a trav\u00e9s de un subdominio de nuestro dominio principal, solamente los usuarios que sepan ese dominio podr\u00e1n acceder a la web de administraci\u00f3n, adem\u00e1s, funciona con <strong>HTTPS utilizando Let\u2019s Encrypt como CA<\/strong>, y podemos <strong>utilizar TLS 1.3<\/strong> para proteger la conexi\u00f3n al m\u00e1ximo.<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter size-full wp-image-424833\" src=\"http:\/\/cordobadirecto.com\/wp-content\/uploads\/2022\/10\/accede-a-tu-nuclias-connect-de-forma-remota-y-segura-con-traefik.png\" alt width=\"1200\" height=\"662\"><\/p>\n<p>Otras opciones de seguridad que podemos implementar son que solamente tengan <strong>acceso los clientes con IP de Espa\u00f1a<\/strong>, tambi\u00e9n podemos configurar a que la configuraci\u00f3n de seguridad sea la m\u00e1s segura, por \u00faltimo, tambi\u00e9n podr\u00edamos <strong>limitar el n\u00famero de paquetes para evitar ataques de fuerza bruta<\/strong>. Por \u00faltimo, tambi\u00e9n podr\u00edamos poner diferentes plugins para a\u00f1adir m\u00e1s seguridad de forma opcional, por ejemplo, podr\u00edamos <strong>a\u00f1adir un OAuth<\/strong> para autenticarnos con nuestra cuenta de Google para a\u00f1adir un segundo factor de autenticaci\u00f3n, no obstante, si pones esto no podr\u00e1s acceder con la app m\u00f3vil ya que no lo soportar\u00eda.<\/p>\n<h2>C\u00f3mo configurar Traefik para Nuclias<\/h2>\n<p>El <strong>proxy inverso Traefik<\/strong> se puede instalar a trav\u00e9s de un contenedor Docker, ya sea en nuestro servidor con Windows, Linux e incluso un servidor NAS. A continuaci\u00f3n, os proporcionamos el docker-compose que se encarga de instalar Traefik, pod\u00e9is modificarlo en base a vuestra configuraci\u00f3n general. En este Docker-Compose tambi\u00e9n instalamos Portainer para la gesti\u00f3n de todos los contenedores, pero si ya lo tienes instalado, puedes obviarlo. Si quer\u00e9is acceder con un dominio comprado, tendr\u00e9is que configurarlo para que apunte a nuestra direcci\u00f3n IP p\u00fablica o al dominio DDNS, en nuestro caso<\/p>\n<p><code class=\"code-section\">version: '3.7'<br \/>#Directorio Docker ${DOCKER_CARPETA} en el archivo .ENV<br \/>networks:<br \/>redeszone:<br \/>name: redeszone<br \/>driver: bridge<br \/>ipam:<br \/>config:<br \/>- subnet: 172.30.1.0\/24<br \/>services:<br \/>## Portainer - Gestor Dockers<br \/>portainer:<br \/>container_name: portainer<br \/>image: portainer\/portainer-ce:latest<br \/>restart: always<br \/>networks:<br \/>redeszone:<br \/>ipv4_address: 172.30.1.2<br \/>ports:<br \/>- ${PORTAINER_PUERTO}:9000<br \/>security_opt:<br \/>- no-new-privileges:true<br \/>volumes:<br \/>- ${DOCKER_CARPETA}\/portainer:\/data<br \/>- \/var\/run\/docker.sock:\/var\/run\/docker.sock<br \/>- \/etc\/localtime:\/etc\/localtime:ro<br \/>environment:<br \/>- PUID=${PUID}<br \/>- PGID=${PGID}<br \/>- TZ=${TZ}<br \/>labels:<br \/>- \"traefik.enable=true\"<br \/>## HTTP Routers<br \/>- \"traefik.http.routers.portainer-rtr.entrypoints=web-secure\"<br \/>- \"traefik.http.routers.portainer-rtr.rule=Host(`portainer.${NOMBREDOMINIO}`)\"<br \/>## Middlewares<br \/>- \"traefik.http.routers.portainer-rtr.middlewares=simpleAuth@file\"<br \/>## HTTP Services<br \/>- \"traefik.http.routers.portainer-rtr.service=portainer-svc\"<br \/>- \"traefik.http.services.portainer-svc.loadbalancer.server.port=${PORTAINER_PUERTO}\"<br \/>## Traefik proxy inverso<br \/>traefik:<br \/>container_name: traefik<br \/>image: traefik:v2.5.4<br \/>restart: always<br \/>networks:<br \/>redeszone:<br \/>ipv4_address: 172.30.1.3<br \/>ports:<br \/>- 80:80<br \/>- 443:443<br \/>- 8082:8082<br \/>security_opt:<br \/>- no-new-privileges:true<br \/>volumes:<br \/>- \/var\/run\/docker.sock:\/var\/run\/docker.sock:ro<br \/>- ${DOCKER_CARPETA}\/traefik\/traefik.yml:\/etc\/traefik\/traefik.yml<br \/>- ${DOCKER_CARPETA}\/traefik:\/etc\/traefik<br \/>- ${DOCKER_CARPETA}\/traefik\/letsencrypt:\/letsencrypt<br \/>environment:<br \/>- PUID=${PUID}<br \/>- PGID=${PGID}<br \/>- TZ=${TZ}<br \/>labels:<br \/>- \"traefik.enable=true\"<br \/># HTTP-to-HTTPS Redirect<br \/>- \"traefik.http.routers.http-catchall.entrypoints=web\"<br \/>- \"traefik.http.routers.http-catchall.rule=HostRegexp(`{host:.+}`)\"<br \/>- \"traefik.http.routers.http-catchall.middlewares=redirect-to-https\"<br \/>- \"traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=web-secure\"<br \/># HTTP Routers<br \/>- \"traefik.http.routers.traefik-rtr.entrypoints=web-secure\"<br \/>- \"traefik.http.routers.traefik-rtr.rule=Host(`traefik.${NOMBREDOMINIO}`)\"<br \/>## Services - API<br \/>- \"traefik.http.routers.traefik-rtr.service=api@internal\"<br \/>## Middlewares<br \/>- \"traefik.http.routers.traefik-rtr.middlewares=simpleAuth@file\"<\/code><\/p>\n<p>El c\u00f3digo fuente del archivo .env para todas las contrase\u00f1as ser\u00eda el siguiente:<\/p>\n<p><code class=\"code-section\">##### PUERTOS<br \/>PORTAINER_PUERTO=9000<br \/>##### SISTEMA<br \/>PUID=1000<br \/>PGID=1000<br \/>TZ=Europe\/Madrid<br \/>DOCKER_CARPETA=\/share\/Container\/Docker<\/code><\/p>\n<p>Una vez que est\u00e1 instalado Traefik en el contenedor Docker, ahora tenemos que poner la siguiente configuraci\u00f3n en el archivo traefik.yml (el archivo est\u00e1tico):<\/p>\n<p><code class=\"code-section\">global:<br \/>checkNewVersion: true<br \/>sendAnonymousUsage: true<br \/>entryPoints:<br \/>web:<br \/>address: ':80'<br \/>http:<br \/>redirections:<br \/>entryPoint:<br \/>to: web-secure<br \/>scheme: https<br \/>web-secure:<br \/>address: ':443'<br \/>http:<br \/>tls:<br \/>certResolver: lets-encrypt<br \/>traefik:<br \/>address: ':8082'<br \/>log:<br \/>level: DEBUG<br \/>filePath: \/etc\/traefik\/logs\/traefik.log<br \/>accessLog:<br \/>filePath: \/etc\/traefik\/logs\/access.log<br \/>api:<br \/>insecure: true<br \/>dashboard: true<br \/>debug: true<br \/>#pilot:<br \/># token: \"TOKEN QUE CONSEGUIMOS DESDE LA WEB\"<br \/>experimental:<br \/>plugins:<br \/>GeoBlock:<br \/>moduleName: \"github.com\/PascalMinder\/GeoBlock\"<br \/>version: \"v0.1.6\"<br \/>ping: {}<br \/>providers:<br \/>docker:<br \/>endpoint: unix:\/\/\/var\/run\/docker.sock<br \/>exposedByDefault: false<br \/>watch: true<br \/>swarmMode: false<br \/>file:<br \/>filename: \/etc\/traefik\/dynamic-conf.yml<br \/>watch: true<br \/>certificatesResolvers:<br \/>lets-encrypt:<br \/>acme:<br \/>email: \"sergio.deluz@grupoadslzone.com\"<br \/>storage: \"\/letsencrypt\/acme.json\"<br \/>httpChallenge:<br \/>entryPoint: web<\/code><\/p>\n<p>En el caso del archivo de configuraci\u00f3n din\u00e1mico, la configuraci\u00f3n que os recomendamos es la siguiente:<\/p>\n<p><code class=\"code-section\">#Configuracion dinamica de Traefik<br \/>#Configuracion de TLS<br \/>tls:<br \/>options:<br \/>default:<br \/>minVersion: VersionTLS12<br \/>sniStrict: true<br \/>cipherSuites:<br \/>- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256<br \/>- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384<br \/>- TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305<br \/>- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256<br \/>- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384<br \/>- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305<br \/>- TLS_AES_128_GCM_SHA256<br \/>- TLS_AES_256_GCM_SHA384<br \/>- TLS_CHACHA20_POLY1305_SHA256<br \/>curvePreferences:<br \/>- CurveP521<br \/>- CurveP384<br \/>#HTTP routers para el Traefik, listado:<br \/># - D-Link Nuclias Connect<br \/>http:<br \/>routers:<br \/>router-https-nuclias-connect:<br \/>rule: Host(`nuclias-connect.redeszone.net`)<br \/>entrypoints:<br \/>- web-secure<br \/>middlewares: chain-sin-autenticacion<br \/>service: service-https-nuclias-connect<br \/>tls:<br \/>certResolver: lets-encrypt<br \/>services:<br \/>service-https-nuclias-connect-dnh-100:<br \/>loadBalancer:<br \/>servers:<br \/>- url: \"https:\/\/IP:443\"<br \/>#Middlewares HTTP para Traefik<br \/>middlewares:<br \/>chain-sin-autenticacion:<br \/>chain:<br \/>middlewares:<br \/>- GeoBloqueo<br \/>- limitePaquetes<br \/>- seguridadCabeceras<br \/>#Seguridad para las cabeceras de la comunicaci\u00f3n HTTPS.<br \/>seguridadCabeceras:<br \/>headers:<br \/>accessControlAllowMethods:<br \/>- GET<br \/>- OPTIONS<br \/>- PUT<br \/>accessControlMaxAge: 100<br \/>addVaryHeader: true<br \/>browserXssFilter: true<br \/>contentTypeNosniff: true<br \/>forceSTSHeader: true<br \/>frameDeny: true<br \/>sslRedirect: true<br \/>sslForceHost: true<br \/>stsPreload: true<br \/>customFrameOptionsValue: SAMEORIGIN<br \/>referrerPolicy: \"same-origin\"<br \/>featurePolicy: \"camera 'none'; microphone 'none'; payment 'none'; usb 'none'; vr 'none'; vibrate 'self';\"<br \/>stsSeconds: 315360000<br \/>hostsProxyHeaders:<br \/>- \"X-Forwarded-Host\"<br \/>#Middlewares para poner un limite de datos intercambiados<br \/>limitePaquetes:<br \/>rateLimit:<br \/>average: 350<br \/>burst: 500<br \/>period: 1m<br \/>sourceCriterion:<br \/>ipStrategy:<br \/>depth: 2<br \/>#Middlewares para comprobar direcci\u00f3n IP de origen. Solo se permite Espa\u00f1a.<br \/>GeoBloqueo:<br \/>plugin:<br \/>GeoBlock:<br \/>allowlocalrequests: true<br \/>loglocalrequests: true<br \/>api: https:\/\/get.geojs.io\/v1\/ip\/country\/{ip}<br \/>countries:<br \/>- ES<\/code><\/p>\n<p>Una vez que est\u00e9 todo montado, podemos acceder a nuestro Nuclias Connect v\u00eda HTTPS usando el mismo puerto 443 de siempre, ya que la solicitud la realizamos al Traefik, y \u00e9l nos va a dirigir hacia el servidor web de Nuclias, pasando antes por los diferentes filtros o \u00abmiddlewares\u00bb que tenemos. Si somos integradores de sistemas y redes, podemos montar un proxy inverso en cada instalaci\u00f3n con el objetivo de acceder a la gesti\u00f3n de Nuclias v\u00eda web sin necesidad de VPN ni abrir puertos (que no es seguro).<\/p>\n<p>A continuaci\u00f3n, pod\u00e9is ver c\u00f3mo se acceder\u00eda desde Internet a nuestro Nuclias, usando un dominio:<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter size-full wp-image-616035\" src=\"http:\/\/cordobadirecto.com\/wp-content\/uploads\/2022\/10\/accede-a-tu-nuclias-connect-de-forma-remota-y-segura-con-traefik-2.jpg\" alt width=\"1200\" height=\"1040\"><\/p>\n<p>Podemos ver que el certificado de Let\u2019s Encrypt est\u00e1 perfectamente instalado y funcionando, adem\u00e1s, la conexi\u00f3n es TLS 1.3:<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter size-full wp-image-616038\" src=\"http:\/\/cordobadirecto.com\/wp-content\/uploads\/2022\/10\/accede-a-tu-nuclias-connect-de-forma-remota-y-segura-con-traefik-3.jpg\" alt width=\"1200\" height=\"1040\"><\/p>\n<p>Con la misma direcci\u00f3n URL donde accedemos a la web de administraci\u00f3n del Nuclias, podemos ponerla en la aplicaci\u00f3n para smartphones y tambi\u00e9n podemos acceder. Recuerda que si decides poner una autenticaci\u00f3n adicional para acceder, con el t\u00edpico nombre de usuario y clave, o una autenticaci\u00f3n tipo OAuth2, no podr\u00e1s acceder con el smartphone, solamente v\u00eda web con el navegador.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfQu\u00e9 formas tenemos de conectarnos remotamente? La gesti\u00f3n de Nuclias Connect est\u00e1 basada en un servidor web, por lo tanto, debemos acceder a una URL con nuestro navegador web y accederemos a la web de administraci\u00f3n general de todos los puntos de acceso, sedes y redes que tengamos dadas de alta. De esta forma tan [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":81074,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[42],"tags":[],"_links":{"self":[{"href":"http:\/\/cordobadirecto.com\/index.php\/wp-json\/wp\/v2\/posts\/81073"}],"collection":[{"href":"http:\/\/cordobadirecto.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/cordobadirecto.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/cordobadirecto.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/cordobadirecto.com\/index.php\/wp-json\/wp\/v2\/comments?post=81073"}],"version-history":[{"count":0,"href":"http:\/\/cordobadirecto.com\/index.php\/wp-json\/wp\/v2\/posts\/81073\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/cordobadirecto.com\/index.php\/wp-json\/wp\/v2\/media\/81074"}],"wp:attachment":[{"href":"http:\/\/cordobadirecto.com\/index.php\/wp-json\/wp\/v2\/media?parent=81073"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/cordobadirecto.com\/index.php\/wp-json\/wp\/v2\/categories?post=81073"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/cordobadirecto.com\/index.php\/wp-json\/wp\/v2\/tags?post=81073"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}