Servidor NodeJs con pfSense ¿ se puede ?
-
@smokescreen Leo y hay cosas que me confunden como: Decís que la WAN está por la tarjeta física inalambrica (no importa modelo mientras funcione), la cual asignaste a una interfaz de red del virtualbox. Hasta ahí, todo está claro, pero la duda es si realmente está la WAN tomando la IP de tu router principal por DHCP o luego de instalado le pusiste una IP fija a la WAN. Pregutnto esto, porque por un lado pones que lo toma por DHCP y por otro escribís que tiene un IP 192.168.1.103 ¿?
Ahora la cosa es la LAN, está claro que le activaste el DHCP, que el rango asignado es de 192.168.7.X y el rango que va a manejar, lo cual, si la interfaz Ethernet ligada a la tarjeta virtual está conectada a un router que configuraste en modo puente, pues aquí puede estar un posible error porque NO colocas qué IP le asignaste al router, si lo conectaste a alguno de los puertos LAN del mismo o al WAN/Internet, si es un router NORMAL o modificado con algún firmware como DD-WRT, etc. No escribís si al conectar un equipo a ese router por cable o wireless (porque tampoco indicas eso), le es asignado al equipo una IP.
Para la WAN, si le asignaste una IP FIJA, debes configurar bien la Puerta de Enlace (Gateway) y DNSs para que tenga internet.
Para la LAN, mientras no expliques detalles ni muestres las pruebas hechas, no te podría decir nada. Es más conecta un cable de red normal o cruzado (cross over) de la LAN a un equipo, a ver si te funciona y si es así, luego hacelo conectando la LAN al router y del router a ese equipo. Si no funciona, la sabes por dónde anda el problema.
Por último, pones de un servidor web Apache con NodeJs que tiene una IP 107.0.0.1, dónde está ese equipo? En la LAN o en la red de la WAN?
-
@brujonic hola, gracias por responder.
te voy a describir mis configuraciones de los equipos y programas que dispongo, según el orden de tu respuesta.
- La WAN si te pude confundir, a lo que iba escribiendo no me cercioré de ese tema, veras tengo una Lapto donde me conecto a un router el cual no tengo acceso como administrador, te podrás imaginar, un vecino comparte el wifi conmigo por pagar la mitad del recibo mensualmente, (tranquilo todo legal ya todos sabemos que estoy trabajando en esto, mientras no le perjudique) y el router le asigna una ip a mi interfaz WAN de 192.168.1.101.
Despues de configurar el VirtualBox con las interfaces WAN y LAN e iniciar, pfSense configura por DHCP la WAN (de pfSense), y queda así v4 /DHCP4: 192.168.1.103.
https://i.ibb.co/6g5vr1R/Captura-de-pantalla-2020-12-24-133353.png la verdad no sé porque se da así, y tampoco si me perjudica.
- La LAN el router (no es el router que me da internet) está conectado por cable RJ45 > a la laptop por ethernet. Al router si le asigné una ip y es el 192.168.8.10, lo cual no me va a dar acceso a menos que configure la red ethernet de la laptop, pero la dejo en "obtener dirección IP automáticamente".
El router es uno normal de casa, el modelo especifico es este: ZXHN H108N V2.5.
- La WAN está por DHCP, tengo que ponerla fija?
https://i.ibb.co/8snn7Wz/Screenshot-20201224-135812.jpg
-
El servidor NodeJs está en el mismo equipo (la laptop), al iniciar por cmd el servidor, puedo ver mi pagina por localhost:80 o bien 127.0.0.1:80 (puedo configurar el puerto si es necesario), pero no sé como configurar en el entorno de pfSense para hacer que se vea mi servidor web NodeJs en portal cautivo o después de autenticarme en el.
-
- A todo esto hasta ahora he conseguido solo abrir el portal cautivo desde mi teléfono android, me da una notificación que me manda al portal, pero en el navegador tengo que colocar la ip, con google.com me dice que "se agoto el tiempo de espera".
ahora desde la laptop cuando ingreso el 192.168.7.10 parece que hace algo o hay un conflicto, pero me desconecta el internet y al buscar alguna pagina ahí si me lleva al portal cautivo, que debería ser así en mi telefono y otros dispositivos que se conecten al router (que está en modo bridge).
https://i.ibb.co/b2MGPdT/Portal-pf.png
Aquí dejo unas capturas de la interfaz del router:
https://i.ibb.co/c8WH0nS/router-1.png
https://i.ibb.co/NtBv5NG/router-2.png
https://i.ibb.co/WB9B6QY/router.png.Te agradezco tu respuesta, voy a seguir probando y cualquier novedad lo voy a publicar aquí.
-
Muy buenas y feliz 24, por fin pude arreglar lo del internet del pfSense.
resulta que en el protocolo de ipv4 de la wireless en la laptop lo tenia en "obtener una dirección IP automáticamente", lo que por alguna razón el pfSense no me dejaba conectarme a internet aún cuando el status de gateways me decía lo contrario. Creo que es a lo que se referia el amigo @BrujoNic, lo configuré de esta manera:
https://i.ibb.co/Dfcdj99/protocolol-ipv4-wireless.png
Ahora si puedo hacer ping a google.com.
https://i.ibb.co/4df0kwS/ping.png
Y actualizar el pfSense por consola, para despues instalar el paquete de Squid y SquidGuard.
https://i.ibb.co/4dk1CNy/updating-pf-Sense.png
Ahora solo me queda averiguar como puedo hacer que mi servidor web de NodeJs se pueda ver en el portal cautivo o si hay otra alternativa de usar Squid para restringir todas las paginas y redireccionarlas a mi servidor web.
Felices fiestas.
-
@smokescreen Buenas noches y feliz 24 igual... Me puse a revisar tus respuestas y hay (para mí) errores que debes arreglar.
-
En la LAN, el cable que conectar al router ZXHN, a mi parecer, está mal configurado. La IP a asignar ese router, debería estar en el rango FUERA del que reparte la LAN, o sea, el rango que reparte es de la 192.178.7.100 hasta la 150. Yo le pondría 192.168.7.2 ya que la 192.168.7.1 correspondería al pfSense y el 2 al router. Vos lo tenes en 192.168.8.10, nada que ver a mi parecer.
-
Aunque creo NO es necesario. También le pondría DNSs al router ZXHN que podría ser los que te asigna tu vecino, o los de google. Veo que usas los de Cloudflare del cual no he probado y no sé, qué tal es su rendimiento.
Haciendo esos cámbios, tendrías tu LAN configurada adecuadamente.
Ahora vamos con la WAN. Como decís que quien te comparte internet es tu vecino, NO tenes control del mismo y yo no le pondría una IP fija a la WAN del pfSense y menos al equipo, ya que si lo haces, puede que el router del vecino, le asigne esa IP que dejaste fija en tu laptop ocasionando colisión en los dispositivos con la misma IP y por consiguiente caídas. Dejalo como DHCP. Además, una cosa es que le pongas IP a tu laptop manualmente, pero la WAN del pfSense, será una IP que le mande el router y esta puede cambiar, así que no te fíes que simpre será 192.168.1.103.
Donde sí metería mano, sería en los DNS del pfSense que creo es la razón por la cuan NO podes navegar.
Como último punto y dependiendo del procesador y memoria de tu laptop, virtualizaría con un Linux, si tenes conocimiento, para instalar por ejemplo Ubuntu Server, instalar los servicios de servidor web, montar ahí tu proyecto de Node.js, asignarle en la tarjeta de red, la ethernet, para que cuando entre pfSense, este la asigne la IP y no tengas más problemas para acceder porque estará en la misma LAN del pfSense.
-
-
@brujonic Hola, mil gracias por la respuesta.
Seguí tus recomendaciones hasta lo de configurar los DNS (ya digo porque), me fue perfecto.
-
Cambié la IP de mi router a 192.168.7.2
-
La LAN del pfSense la dejé en 192.168.7.1 con el servicio DHCP activado (192.168.7.100 - 102.168.7.150)
-
La WAN del pfSense se configura por DHCP y queda igual en
v4 /DHCP4: 192.168.1.103 también le puse los DNS 1.1.1.1 y 1.0.0.1 que reo que así los puso el vecino en su router, porque cuando me conecto por DHCP aparecen así. -
En la laptop la IP del wireless está fija junto con los DNS.
jaja no sabia que se podía copiar y pegar imágenes aquí.
A todo eso pude arreglar el tema del internet y el comportamiento del portal cautivo en los dispositivos que se conectan a mi router.
-
- El ultimo punto y por el que empezado el tema, el servidor web supongo no podré usar los dos servidores pfSense y NodeJs en el mismo equipo. Es buena la idea de virtualizar otro sistema que me corra aparte el NodeJs, pero creo que mi laptop no aguantaría otro sistema ya solo dispongo de 2GB de Ram y 1.4GHz x2 de procesador, el pfSense le asigne apenas 580mb de RAM en el VirtualBox, y hasta ahora no he tenido problemas con el Windows 10, puedo hacer otros trabajos mínimos como abrir el navegador y visual Studio Code.
Supongo que tendré que buscar otro equipo y trabajar el servidor web y dejar el pfSense independiente.
-
-
Lee lo que te puse, NO debe tener IP fija tu laptop porque obtiene la IP por DHCP, no controlas el router y si el router de la persona quien te comparte internet, le da la misma IP a otro dispositivo, van a presentarse problemas.
Si pusiste pfSense, quiere decir que tenes tu propia red con LAN interna y por lo tanto, hay otros dispositivos. Ahí te quedan 2 opciones:
- Si vas a usar una red aparte, es mejor separes tu proyecto en un equipo dentro de la LAN tal y como te lo dije SIN VIRTUALIZAR para que se acaben tus problemas.
- Jugar con el firewall del pfSense para crear una regla de apertura para la WAN e igual con el firewall de windows donde está tu proyecto, para que entren de la LAN a por la WAN, lo cual servirá siempre y cuando la IP de la laptop se mantenga y eso es variable.
Por lo tanto, es mejor usar la opción 1.
-
@brujonic Oye, con "Si vas a usar una red aparte, es mejor separes tu proyecto en un equipo dentro de la LAN", quieres decir que le de una IP a ese equipo con el servidor que esté dentro del rango del DHCP del pfSense? ósea 192.168.7.105.
-
@smokescreen CORRECTO.
-
Muy buenas espero que estén pasando bien estas navidades, le doy las gracias a @BrujoNic por su gran ayuda con respecto al funcionamiento del software pfSense que ha mejorado con su orientación, pero aún de mi parte no he podido concluir la idea que plantee desde un principio.
He estado buscando tutoriales en YouTube que son muy buenos, pero no creo que alguno lo pueda poner en practica, pienso que será porque me falta los equipos como los swicth y maquinas adicionales para que puedan correr los servidores, que a ser diferente mi situación económica actual sería correcto ir adquiriéndolos, en mi caso solo dispongo de una laptop (2GB ram y 1.4GHz x2 de procesador) y un router hogareño.
También he visto muchas otras preguntas relacionadas (con temas de servidores web algo parecidas a mi caso) en este foro, tal vez en su mayoría son ya de hace 8 a 10 años atrás, donde usuarios ya experimentados aconsejan y aseguran que es mejor dejar el pfSense trabajado independiente en una maquina por "temas de seguridad en la red o porque es una mala practica para un proyecto en entorno de producción", pero no dan orientación de como se podría trabajar lo planteado sin importar x razón o simplemente no se puede dando explicación de porque no.
Sugerencias de usar TurnKey Linux un sistema que tiene todo lo necesario para correr únicamente servicios como NodeJs y se puede virtualizar, viéndolo parece que me viene como anillo al dedo, sin embargo algo que nunca mencioné es que mi proyecto en NodeJs trabaja también con MySql y al parecer TurnKey solo puede ser instalado un servicio, no se si se puede instalar mySql junto con NodeJs, voy a probarlo y les comento.
Hasta ahora pienso que debería seguir buscando alternativas porque todavía nadie me ha dicho que es imposible.
A todo esto voy a poner aquí abajo un esquema de mis equipos y configuraciones, donde pregunto.
-
¿que otras configuraciones debo hacer para que mi servidor web que está alojado en la misma laptop pueda accederse desde el router 2?.
-
se puede usar el dispositivo que marqué en rojo para este fin? lo instala el virtualbox por defecto y no tiene ninguna entrada física en la laptop.
Si se puede , ¿cual sería el procedimiento para configurar ese dispositivo y el pfSense?.
- mi servidor web tiene el puerto 4000 (el cual puedo cambiar si es necesario), debo crear alguna regla en el pfSense para poder acceder a mi servidor web desde el router 2?
-
-
Buenos días gente, he logrado hacer que mi servidor web pueda ser accedido.
https://www.youtube.com/watch?v=Ma2G_9PXS5I&t=1621s
Aunque está en portugués pude comprender un poco, usé el mismo procedimiento como si fuese de una maquina virtual solo que usé como equipo a parte el adaptador que instala el VirtualBox por defecto.
- Le asigné una ip al adaptador (como si de una maquina independiente fuese).
La puerta de enlace y la DNS son la misma IP que se le va a asignar a la nueva interface del pfSense.
- Creé un tercer adaptador en el VirtualBox para el pfSense
- Al iniciar el pfSense activé la nueva interfaz.
Ahora en la interfaz grafica del pfSense agregué nuevas reglas a esa interfaz (DMZ) tal como indica en el video.
-
Creé primero un alias DMZ_web_server de tipo host, en "Ip o IQDN" coloqué la IP del dispositivo que configuré en un principio (172.17.0.11).
-
Una regla de protocolo ICMP, "source" single host or alias, "source address" DMZ_web_server, "Destination" DMZ address.
cloné la regla
- Regla de protocolo UDP, "Destination" (activé el invert match) LAN net, "destination port range" DNS(53)
volví a clonar
- Regla de protocolo TCP (No sé nada pero yo lo coloque en Any, porque pienso que podría bloquear alguna función interactiva del fontend con el backend de mi web)
La regla de HTTPs yo no la puse porque mi web es local y todavía no he estudiado mucho sobre los certificados SSL/TLS.
Ordené las reglas como en el video por si hay alguna interferencia por jerarquía.
Lo ultimo que hice fue cambiar el puerto de mi servidor a 80 ya que en el 4000 tengo que indicarlo en el navegador para que pueda ingresar.
Ahora si puedo ingresar la ip de mi servidor web que sería la 127.17.0.11 y ver mi pagina.
Voy a buscar mas a ver porque en el portal cautivo al autenticarse no me redirecciona a la pagina, si no que me dice que no ha sido encontrado 404 not found, me imagino que debe ser algo del servidor DNS.
-
@smokescreen Gracias por el agradecimiento, pero estamos para ayudarnos en lo que podamos. Además, los consejos que te he dado, no han sido de pfSense y puede que te dé una mejor solución, pero tendrías que olvidarte del pfSense por completo.
Viendo tu esquema de red, te podría dar 3 soluciones FUNCIONALES al 100% y económico. Esto implicaría comprar un router al que le podas alterar el firmware con DD-WRT para obtener mayores funcionalidades o dejarlo con su firmware pero que sea ROUTER con su entrada WAN/Internet y no como en tu caso que es un CPE Router porque el internet lo toma por línea ADSL y antes no se le podía desactivar eso, por lo que SIEMPRE pasaba buscando internet cargando el procesador.
Haciendo eso, tu escenario podría ser el siguiente:
-
Si quien te comparte internet, es de pared a pared o muy cerca y no te va a dar problema por conectar más de un equipo, podrías usar tu actual router ZXHN H108N, le pones cualquier IP como 10.0.0.1 y le desactivas el DHCP. Pasas un cable desde tu vecino al router y en el resto de los puertos ethernet o por la red inalámbrica de tu router, conectas otros equipos. De esta forma, tendrías una sola red y con sólo el nombre de tu laptop:puerto, deberías poder entrar al NodeJs o con la IP: Puerto.
-
Comprar un repetidor básico que tenga conexión ethernet para que lo ligues al router de tu vecino por wireless y por medio del cable de red del repetidor, lo conectes a tu router para tener la red de tus equipos.
-
Comprarte un router que permita la alteración del firmware que trae de fábrica por alguno como el DD-WRT, para que cuando tenga el DD-WRT, lo configures para que por medio de 1 antena se conecte al router de tu vecino por red inalámbrica y por medio de la otra antena, tengas tu propia red con tu rango de IPs diferente. De esa forma, le pones una IP fija a tu laptop dentro de tu rango de IPs interna y al estar los otros equipos en la misma red, podrías hacer las pruebas de tu NodeJs.
Todo lo anterior involucra NO usar el pfSense, es simple y funcional. En mi caso, utilizo un Linksys Cisco E900 con DD-WRT para tener una red de pruebas aparte.
Espero te sirva estos consejos, ya que tu problema y dudas, se podrían resolver con pfSense, pero al ver lo limitado que estas de recursos, creo que lo mejor es que hagas lo que te sugiero.
Saludos.
-
-
Hola @BrujoNic, creo que no me has entendido lo que quiero hacer, lo que me propones es para poder acceder a mi pagina web desde mi router wifi, cosa que ya he hecho simplemente dándole a mi laptop la IP y la puerta de enlace de mi router y con ello consigo acceder a mi pagina web desde cualquier dispositivo que se conecte por WIFI, de hecho hasta he configurado las DNS de mi router para poder darle un dominio, el aparato si es adsl pero también es un router, cumple las dos funciones y si se le puede deshabilitar el adsl y funcionar por ethernet.
ahí seguro que me dirás "¿Entonces cual es el problema?", el problema es que yo no quiero probar mi proyecto, para eso hago lo anterior, quiero presentar mi proyecto a otras personas de una forma intuitiva:
conectarse a mi wifi > entrar al navegador > buscar algo.com (o cualquier pagina, de hecho todo lo que tipeen en el buscador) > y que esto lo redireccione a mi pagina web.
Eso es todo, sin internet, seguridad, ni como está formado los equipos de la red, por ahora es solo para presentar un proyecto de backend y frontend así que nada de eso importa.
Pienso que el pfSense me puede ayudar porque con el portal cautivo consigo que cualquier dispositivo que se conecte a mi wifi lo redireccione al portal, ahora que tengo que hacer para que haga lo mismo con mi pagina web? ya mi servidor web esta en la red de pfSense y cuando busco el 172.17.0.11 me lleva a el, pero no consigo como el portal cautivo me redireccione a esa dirección.
-
@smokescreen Te comprendí muy bien, sólo estoy tomando en cuenta tus recursos que son pocos. Pero si no comprendes lo que te digo y te funciona lo que has hecho, entonces obvia lo que te dije.
Saludos. -
Feliz fin de año a todos y que la pasen bien.
Después de investigar mas sobre las reglas del firewall, el portal cautivo, dns resolver y sobre las Zonas desmilitarizadas (DMZ), pude solucionar el problema de la redirección del portal hacia mi servidor web, tuve que borrar algunas reglas anteriores que en mi caso no son importantes.
Luego de configurar la interfaz de la DMZ, darle acceso a la red LAN con las reglas del firewall, le di un dominio a la ip del servidor WEB con el DNS resolver y en el portal cautivo en "after authentication redirect" colocar ese dominio, tuve como resultado que cada usuario que se conecte a mi router pueda ser redireccionado al portal cautivo y de ahí autenticarse con solo hacer click al botón que está por defecto del pfsense (Que con un poco de css, html y no puede faltar javascript voy a cambiarle el estilo con respecto a mi proyecto) de ahí ser redireccionado a mi pagina web al fin.
Bueno no del todo, mis pruebas se limitaron a dispositivos móviles en el cual no me ha dado el resultado que pienso que debería dar, ya que por lo menos en android al conectase de manera intuitiva (no por el navegador si no por un programa que desconozco) me lleva al portal para autenticarme, clikeo el botón y me redirecciona automáticamente a mi pagina web pero al pasar 1 o 2 segundos se cierra el programa que abre el portal cautivo y claro por ende ya me deja navegar e ingresar de nuevo a mi pagina web, pero ya saben tengo que abrir el navegador y tipear la url, la idea es que se quede en la pagina que me redireccionó ósea en mi pagina web.
Me imagino que en otros sistemas operativos diseñados para computadoras eso no debería pasar ya que el usuario tendría que abrir el navegador, buscar algo y por naturaleza del pfsense ser redireccionado al portal cautivo, y como ya está en el navegador este no tiene porque cerrarse como me pasó a mi en el celular.
Solo me queda arreglar eso y bueno, tal vez me aventure a buscar manera que los usuarios no busquen otra cosa fuera de mi servidor web, que ya con una regla de firewall les quito el acceso a internet pero me gustaría que fuesen redireccionados al mismo si eso pasa.
Buenas noches.