Hola he convertido mi viejo portátil en un servidor y he puesto varios servicios usando docker por ejemplo un servidor multimedia, nube y demás lo que yo quiero es poder usar una VPN o un proxy inverso para acceder a eso desde fuera, alguien puede sintetizarlo. Los servicios han sido montados con Docker usando varias reded
He realizado algo parecido, aunque es un proyecto personal.
El problema principal es la necesidad de una IP fija si quieres realizar una
conexión externa. Si la obtienes procedes a abrir los puertos del router que requieras.
-
Para la vpn empleas un servidor, como
openvpn
. En la wiki de Gentoo hay una guia muy buena de crear los certificados y crear los archivos de configuración del servidor y cliente (openvpn). Ya depende de vos que incrustación y tamaño de las llaves que quieres usar. -
Con respecto al proxy inverso, lo puedes realizar con
ngnix
. La configuración es sencilla y cualquier guia de sirve. De esta forma puedes direccionar por la url a cada puerto expuesto de cada contenedor.
Como alternativa a la IP fija puedes usar tor. Creas un HiddenService y
obtienes una dirección publica .onion
. El problema es que es extremadamente lento. Apenas llega a transmitir música al emplear nfs
y mpd
.
Otra opción es conexión con Wireguard desde servidor casero hasta servidor VPS. Tiene la misma ventajas que conexion Tor al no necesitar IP fija, pero la velocidad es la mas alta que puedas conseguir con un enlace cifrado.
En ambos servidores se gestiona como una interfaz de red cualquiera. En el servidor VPS que actuaria de router tendrias que configurar IP Foowarding.
Hay bastante inrmación en Internet:
https://www.youtube.com/results?search_query=wireguard+vps
Espero que te sirva de ayuda.
De tanto probar y experimentar, la manera más sencilla que encontré fue la de instalar un MikroTik y aprender a configurarlo. El mismo servidor donde piensas alojar el servicio puede servir de servidor DHCP y el MikroTik puede crearte una red VPN de manera muy sencilla.
Otra forma es la de hacer port forwarding, que consiste en que tu router redirija el tráfico saliente de un puerto en específico de tu servidor por otro puerto de él mismo y lo abra públicamente. De esa manera te vas a poder conectar desde fuera de tu red, pero vas a necesitar contratar el servicio de IP pública estática.
De una forma u otra, no sólo vas a necesitar aprender algunas cosas relacionadas al networking, si no que también a la seguridad.
Mi nivel de paranoia recomienda tener control de todo si es posible. No es una
mala opción si la VPS esta cerca geográficamente.
No estoy seguro de las ventajas en términos de seguridad de ´´WireGuard´´. Se que es mas rápido y sencillo que ´´openvpn´´ pero soporta menos cifrados.
Claro es que yo tengo un portátil viejo en mi casa como servidor
@lefelipe cierto que Wireguard dispone de menos algoritmos de cifrado. Sin embargo, el número de algoritmos soportados no hace a Openvpn más seguro, en todo caso le hace más compatible.
De hecho , Openvpn dispone de algunos algoritmos que no se recomienda su uso. Están por criterios de compatibilidad.
Lo innovador de Wireguard es que no sigue un esquema cliente/servidor, se establece como una interfaz de red, encriptada por supuesto.
Como todo es cuestión de sopesar ventajas e inconvenientes. No hay que despreciar ninguna tegnología.
Wireguard
está en mi lista de programas por probar, por ello no tengo idea como funciona. Con respecto a openvpn
, ¿Cuales son los cifrados inseguros?, para evitarlos. También openvpn
me dio problemas con otros OS (android y windows), porque no todas las opciones son soportadas por todos.
@dedalo, como wireguard
es una interfaz de red, supongo que actuara como análoga a una vpn de capa 2, ¿alguna recomendación o cuidado que deba tener? . Porque openvpn
es la que empleo en para jugar en LAN y su lentitud en cifrar se nota.
Aqui tienes un ejemplo en español:
Como puedes ver en el ejemplo se puede usar para crear una VPN totalmente privada. También se puede hacer con OpenVPN o SSH pero añade algunas ventajas.
Si no tienes problemas con el idioma inglés, en su sitio web:
Wireguard se usa como un módulo del kernel y te permite configurar una interfaz de red cifrada, con la misma facilidad que eth0, wlan0, lo, en1sploquesea, etc.
Eso te facilita entre otras cosas crear reglas de cortafuegos para ese tráfico que de otro modo sería más complicado.
Se usa la terminología servidor/cliente para facilitar la compresión de los conceptos y para diferenciar configuraciones en diferentes nodos.
Espero que sea util.