Servidor hosting público
Última actualización
Última actualización
Para ubuntu server 22.04
Vamos a usar LEMP stack (Linux, nginx, MySQL, PHP)
cloudfare con tunel VPN
Webmin + Virtualmin como gestores
El dominio es básico para comenzar con el servidor, es nuestro paso previo a trabajar de cara al "público" así que primero de todo regístrate con el plan gratuito a Cloudfare.
Para comprar dominio, te recomiendo el propio registro de pero tienes mas en (donde son a veces más baratos) o en (más nacional). En cualquier caso, si ya tuvieras un dominio podrías .
Vamos con la parte interesante, la del DNS público.
Anteriormente hemos trabajado con nuestro propio DNS de BIND9 pero ahora con Cloudfare lo interesante es que este DNS es público por lo que podemos crear los registros que nos interese que se muestren de nuestro dominio.
Para empezar debemos acceder a DNS>Registros
En "servidores de nombres" aparecen los nombres de nuestros DNS públicos que deberemos añadir a nuestro servidor para que funcionen los registros, vamos a crear algunos:
A
@ (raiz)
IP local
MX
example.org
Dejemoslo así por el momento...
Para instalar Webmin debemos seguir la documentación oficial que podemos encontrar aquí. Si has instalado mas servicios o aplicaciones en Linux (como puede ser un wordpress) verás que no tiene mucha complicación.
Empieza por descargar el script de bash (si no tienes la utilidad curl
instálala con sudo apt install
):
Ejecuta el script descargado que añadirá webmin al repositorio de aplicaciones oficial:
Instala webmin con apt:
Para acceder a Webmin es tan sencillo como ir al navegador y escribir https://<Your-Server-IP>:10000
. Revisa que tu firewall te permita conexiones a través del puerto 10000.
Por ahora verás que no tiene certificado SSL por lo que no tiene mucho sentido usar https pero funcionará igual. Para entrar usa el usuario y contraseña del propio servidor.
En caso de que quisieras parar el servicio es tan sencillo como systemctl stop webmin
Antes de instalar Virtualmin, debemos pasar a la parte de registro de dominio en nuestro servidor, para ello tenemos dos posibles metodos:
Con un DDNS que nos permita registrar la IP pública activa para que se vaya reenviando según cambie
Con un tunel VPN que conecte directamente con el dominio público
Enseñaré ambas:
(Esto esta en construcción, tengo que mirar como hacerlo sin depender de docker)
Debemos crear la API key necesaria de cloudfare (perfil>API tokens), revisate el enlace de docker hub que te da mas información.
Debemos dar permisos, lanzar el docker que actualizará los registros, siempre que este activo el docker, funcionara el DDNS.
El método para conseguir un tunel VPN es a través de la aplicación zerotrust dentro de nuestra interfaz de Cloudfare que encontrarás en la columna izquierda.
Al entrar te pedirá crear un equipo, este nombre debe ser único, a continuación te harán elegir un plan, elige el gratuito que nos ofrece:
limite de 50 asientos
Controles de Zero Trust
Hasta 3 localizaciones de redes (para trabajos con DNS de oficina)
Reglas de filtrado de capa 7 (HTTP)
Soporte de Roaming para usuarios vía WARP
Hasta 24h de logs
Con esto veremos la siguiente pantalla:
Desde aquí accedemos a Networks>Tunnels>Add tunnel
Seleccionamos "cloudfared" (tengo que investigar WARP por que parece una buena solución). Sigue los pasos ahora:
Ponle un nombre para identificarlo (Por ejemplo galaxy-edge)
Elegimos la plataforma de Debian (Ubuntu cof cof) de 64 bits
Ahí verás las instrucciones de lo que tienes que hacer, simplemente copia el comando de la izquierda y pégalo en tu terminal de Linux.
Una vez ejecutado el comando correctamente, abajo deberia aparecer la nueva conexión creada con el token:
Continua con el proceso de autenticación de dominio:
Rellena el formulario con los siguiente:
subdominio: www por ejemplo
dominio: el registrado previamente
path: por si quieres añadirle el acceso a un recurso o carpeta concreta
type: el tipo de túnel, en nuestro caso http pero luego crearemos un ssh también
URL: la IP local del servidor.
Sigue los pasos:
Obtenemos el script de bash que es la forma más sencilla y fácil de hacerlo, para ello descargatelo con:
Una vez descargado deberemos instalarlo ejecutando el script, en nuestro caso trabajaremos con la pila LEMP así que le especificaremos ese stack:
Nos pedirá una serie de requisitos
Espacio disponible de 2GB
Un FQDN (nuestro dominio www en este caso)
Y si todo ha ido bien ahora deberia mostrar el siguiente mensaje:
Y al acceder al enlace:
Ahora solo nos falta crear el host.
Para instalar virtualmin tambien debemos recurrir a la , como siempre (RTFM!).
Recuerda que uno de los requisitos de uso de Virtualmin es tener un FQDN de nuestro servidor y que, a ser posible, no sea el mismo que el de la web (por ejemplo ns1.example.org y el de la web www.example.org) tal y como dice la .
Documentación oficial webmin:
Instalación webmin+virtualmin:
Tutorial webmin con cloudfare:
Configuración DDNS con cloudfare:
Configuración tunel con cloudfare:
Configurar host web con virtualmin:
Guía virtualmin: