Acceso al entorno de desarrollo local de ServBay en una red LAN
Para equipos de desarrollo pequeños o desarrolladores individuales que necesitan probar en varios dispositivos, poder acceder al entorno de desarrollo local de ServBay instalado en otros miembros o dispositivos dentro de la red local (LAN) es una necesidad común y fundamental. ServBay está diseñado para permitir el acceso a la mayoría de los servicios principales a través de la red LAN, aunque algunos requieren configuraciones adicionales para garantizar la seguridad y funcionalidad.
Este artículo detalla cómo configurar y acceder a sitios web y servicios de bases de datos de ServBay a través de una red LAN.
Requisitos previos
Antes de intentar acceder a los servicios de ServBay a través de la LAN, asegúrate de cumplir con los siguientes requisitos:
- Conexión de red: El ordenador que proporciona los servicios de ServBay (en adelante “máquina anfitriona”) y el ordenador desde el que accedes (“cliente”) deben estar en la misma red local.
- Dirección IP de la máquina anfitriona: Debes conocer la IP interna de la máquina anfitriona en la LAN. Esta información se encuentra en los ajustes de red del sistema.
- Configuración de firewall: Si el sistema operativo de la máquina anfitriona tiene activado un firewall, debes permitir que conexiones externas accedan a los puertos clave utilizados por ServBay (por ejemplo, HTTP suele ser 80, HTTPS es 443, MySQL 3306, PostgreSQL 5432, Redis 6379, etc.). Según los servicios que quieras compartir, abre los puertos necesarios y configura listas de control de acceso (ACL) para limitar el rango de IPs permitidas si es necesario.
Sitios web
Los sitios web configurados en ServBay localmente suelen escuchar, por defecto, en todas las interfaces de red de la máquina anfitriona (es decir, 0.0.0.0
o *
), lo que hace que estén naturalmente disponibles para otros dispositivos de la red local. ServBay utiliza Caddy o Nginx como servidores web, y sus configuraciones predeterminadas suelen estar listas para ese acceso.
Sin embargo, para acceder a estos sitios por dominio desde el navegador del cliente, es necesario configurar la resolución DNS del dominio en cada dispositivo. Además, si tus sitios usan certificados SSL generados por ServBay (altamente recomendado), los usuarios deben instalar el certificado raíz de ServBay para evitar advertencias del navegador.
Veamos un ejemplo práctico de configuración:
- IP de la máquina anfitriona en la LAN:
10.0.0.3
- Dominio del sitio en ServBay:
servbay.demo
- Directorio raíz del sitio:
/Applications/ServBay/www/servbay.demo
Configuración de la resolución de dominio (DNS)
El ordenador cliente debe asociar el dominio servbay.demo
con la IP de la máquina anfitriona 10.0.0.3
. Hay dos métodos habituales para hacerlo:
Modificar el archivo Hosts del cliente: Es la forma más sencilla, ideal para pocos clientes.
- Localiza el archivo Hosts en el ordenador cliente.
- macOS/Linux:
/etc/hosts
- Windows:
C:\Windows\System32\drivers\etc\hosts
- macOS/Linux:
- Ábrelo con permisos de administrador y añade al final:
10.0.0.3 servbay.demo
1 - Guarda el archivo. Ahora, al acceder a
servbay.demo
, el cliente se dirigirá a10.0.0.3
.
- Localiza el archivo Hosts en el ordenador cliente.
Configurar en el servidor DNS de la LAN: Si tu red tiene su propio servidor DNS (por ejemplo, el router o un servidor dedicado), puedes añadir un registro A para
servbay.demo
apuntando a la IP10.0.0.3
. Todos los dispositivos que usen ese DNS podrán resolver el dominio correctamente.
Distribución e instalación del certificado raíz de usuario ServBay (SSL)
ServBay ofrece una potente funcionalidad PKI, que incluye la generación de un certificado raíz propio (ServBay User CA) para firmar certificados SSL locales. Para que los ordenadores cliente confíen en estos sitios HTTPS sin advertencias, deben instalar y confiar en el ServBay User CA.
Debes exportar el certificado raíz de ServBay y distribuirlo entre los usuarios de la LAN, guiando su instalación en los sistemas operativos y/o navegadores de cada uno.
Para detalles sobre exportación e instalación, consulta la documentación de ServBay en la sección de gestión de SSL, específicamente sobre exportar certificados y instalar en el sistema operativo o navegador.
Bases de datos
ServBay soporta diversos servicios de bases de datos, como MySQL, MariaDB, PostgreSQL y MongoDB, así como bases de datos en memoria como Redis y Memcached. Cada servicio gestiona las conexiones y permisos de red de manera distinta.
MySQL / MariaDB
El valor predeterminado para MySQL y MariaDB en ServBay es escuchar en todas las interfaces de red (0.0.0.0
), permitiendo conexiones desde la LAN por defecto.
Sin embargo, MySQL/MariaDB cuenta con un estricto sistema de permisos de usuarios. Aun cuando la conexión de red está permitida, es necesario usar un usuario y contraseña autorizados específicamente para conectarse desde la IP en cuestión.
Por seguridad, el usuario root
suele estar restringido a 127.0.0.1
o localhost
. Para permitir acceso desde la LAN, crea un usuario nuevo o edita los permisos de uno existente para aceptar conexiones desde una IP específica o cualquier dirección de la red (%
).
Ejemplo: crear el usuario servbay-demo
con permisos desde cualquier IP de la LAN (%
), otorgando todos los privilegios sobre una base de datos:
sql
-- Supón que ya has iniciado sesión como root o como usuario con privilegios suficientes
CREATE USER 'servbay-demo'@'%' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON `your_database_name`.* TO 'servbay-demo'@'%';
FLUSH PRIVILEGES;
1
2
3
4
2
3
4
Recuerda sustituir 'your_strong_password'
y your_database_name
por valores adecuados.
Importante: Autorizar usuarios desde cualquier IP (%
) y otorgar privilegios amplios implica riesgos. En ambientes de producción o redes poco controladas, limita el acceso a IPs específicas (por ejemplo, 'servbay-demo'@'10.0.0.5'
), o usa VPN para conexiones más seguras.
ServBay permite resetear la contraseña de root
en MySQL/MariaDB y gestionar usuarios desde la propia interfaz o herramientas clientes.
Redis
Redis, por seguridad, suele estar configurado por defecto en ServBay para escuchar solo la dirección de loopback local (127.0.0.1
), impidiendo conexiones externas por defecto, ya que no tiene autenticación activada de inicio.
Para permitir conexiones desde la LAN, necesitas editar el archivo de configuración redis.conf
.
Puedes hacerlo de dos formas:
1. Desde la interfaz de ServBay
- Abre ServBay, ve a la sección
Bases de datos
-Redis
- Activa
Require Password
y pon la contraseña deseada - Haz clic en
Guardar
2. Modificando manualmente el archivo redis.conf
(no recomendado)
- Busca el archivo de configuración, normalmente en
/Applications/ServBay/etc/redis/redis.conf
. - Ábrelo con un editor de texto.
- Localiza la línea
bind 127.0.0.1
. - Cambia a
bind 0.0.0.0
o comenta la línea (# bind 127.0.0.1
). Así Redis escuchará todas las interfaces. - MUY IMPORTANTE: Busca la línea
requirepass
(quizá esté comentada). Descoméntala y pon una contraseña robusta:¡Nunca expongas Redis a la red sin autenticación, ni en LAN ni, mucho menos, en redes públicas!requirepass your_very_strong_redis_password
1 - Guarda el archivo.
- Reinicia el servicio Redis desde ServBay para aplicar los cambios.
Ahora, los clientes pueden conectarse a Redis usando la IP de la máquina anfitriona y la contraseña establecida.
PostgreSQL
Por defecto, PostgreSQL en ServBay también solo escucha conexiones en loopback local (127.0.0.1
), impidiendo el acceso desde la LAN.
Para habilitar el acceso LAN, debes modificar dos archivos clave: postgresql.conf
y pg_hba.conf
.
Localiza los archivos de configuración de PostgreSQL, normalmente en
/Applications/ServBay/etc/postgresql/postgresql.conf
y/Applications/ServBay/etc/postgresql/pg_hba.conf
.Editar
postgresql.conf
:- Ábrelo con un editor de texto.
- Busca la línea
listen_addresses
(puede estar comentada). - Descomenta y cámbiala a
'*'
para que escuche en todas las interfaces:listen_addresses = '*'
1 - Guarda el archivo.
Editar
pg_hba.conf
:- Ábrelo con un editor.
- Añade una línea para permitir conexiones de la LAN. Por ejemplo, para el rango
10.0.0.0/24
con autenticación por contraseña:# TYPE DATABASE USER ADDRESS METHOD host all all 10.0.0.0/24 md5
1
2TYPE
:host
indica conexión vía TCP/IP.DATABASE
:all
permite cualquier base de datos (puedes especificar una).USER
:all
para cualquier usuario (o uno concreto).ADDRESS
:10.0.0.0/24
cubre IPs de10.0.0.1
a10.0.0.254
(puedes restringir más o usar0.0.0.0/0
solo si cuentas con otra protección firewall).METHOD
:md5
requiere contraseña encriptada (lo recomendado). Evitatrust
ypassword
(sin cifrado).
- Guarda el archivo.
Reinicia PostgreSQL desde ServBay para aplicar los cambios.
Ahora, los clientes pueden conectarse a PostgreSQL usando la IP de la máquina anfitriona y el usuario y contraseña válidos.
ServBay permite restablecer la contraseña del usuario postgres
y gestionar usuarios según se requiera.
Memcached
Memcached es un sistema de caché en memoria distribuido de alto rendimiento que, por diseño, no incluye autenticación ni autorización.
Por ello, no se recomienda exponer Memcached en la LAN o en Internet a menos que la red esté estrictamente controlada y protegida por firewall.
En ServBay puedes configurar Memcached para escuchar en la IP LAN, pero acepta y asume los riesgos. Por defecto, escucha solo en loopback. Modificar esto es similar a Redis, editando el archivo de configuración, pero recuerda que no hay protección con contraseña.
Recomendaciones de seguridad
Exponer servicios del entorno de desarrollo en la LAN facilita la colaboración y pruebas, pero también añade riesgos de seguridad. Ten en cuenta lo siguiente:
- Firewall: Siempre utiliza un firewall para restringir los puertos abiertos de ServBay. Solo permite conexiones desde rangos de IP LAN en los que confíes.
- Contraseñas fuertes: Usa contraseñas robustas y cámbialas periódicamente en bases de datos (MySQL/MariaDB/PostgreSQL) y Redis.
- Principio de menor privilegio: Otorga a los usuarios de bases de datos solo los permisos estrictamente necesarios. Evita utilizar
root
opostgres
para conexiones remotas habituales. - Seguridad de Memcached: Como no tiene seguridad interna, accede a él solo desde redes muy restringidas y considera usar túneles SSH u opciones más seguras.
- Actualizaciones del SO: Mantén actualizado el sistema operativo de la máquina anfitriona, ServBay y los paquetes relacionados para recibir parches de seguridad.
Si sigues estos pasos y recomendaciones, podrás compartir y acceder al entorno de desarrollo local de ServBay en tu LAN de manera mucho más segura y eficiente.