- Con [Open OSCAR Server], puedes montar un servidor AIM/ICQ en un servidor Debian y volver a conectar varios clientes de entornos antiguos, incluido Windows 98
- Para una operación pequeña, incluso un VPS de bajos recursos es suficiente, pero si lo vas a usar con amigos externos, necesitas el puerto predeterminado 5190, una IP fija o DNS dinámico, y una configuración de firewall adecuada para exponerlo a Internet
- Ajusta
settings.env con OSCAR_LISTENERS y OSCAR_ADVERTISED_LISTENERS_PLAIN según el modo LAN o WAN, y haz que el cliente AIM se conecte a tu propio servidor en lugar de a los servidores cerrados de AOL
- En el estado predeterminado se puede iniciar sesión con cualquier nombre de pantalla y contraseña, así que hay que activar la autenticación por contraseña con
DISABLE_AUTH=false y administrar las cuentas mediante la API
- Como el estado del servidor se guarda en una base de datos SQLite y archivos de configuración, puedes mantener un entorno AIM recuperable con respaldos completos nocturnos o copias con
rsync tras detener el servidor
Por qué volví a usar AIM en lugar de Discord
- Antes de que los teléfonos móviles y los mensajes de texto se volvieran universales, muchas actividades, desde proyectos escolares hasta relaciones personales, ocurrían en la ventana de AIM, y esa experiencia terminó generando nostalgia por AIM
- Como mi experiencia reciente con Discord no ha sido buena, probé Open OSCAR Server y pude conectar varios clientes antiguos a mi propio servidor AIM/ICQ
- El proceso de instalación también se cubre en este video de YouTube y este video de PeerTube, mientras que este video aparte de Macintosh Librarian presenta AIM con más detalle
Preparación del servidor Debian Trixie
- El objetivo de instalación es Debian Trixie, y aquí no se cubre el proceso de instalación del sistema operativo en sí
- Si no planeas chatear con cientos de personas, puede funcionar incluso en un VPS de bajos recursos
- Al principio lo alojé en casa, pero cuando empecé a compartirlo con amigos, lo migré al plan VPS más básico
- Es posible que también funcione en una Raspberry Pi, aunque no lo he probado personalmente
- Si lo operas desde casa o detrás de un firewall, debes abrir el puerto predeterminado 5190 al que se conectarán los clientes AIM
- En algunos clientes no es fácil cambiar el puerto, así que conviene mantener el predeterminado
- En un entorno residencial sin IP fija, necesitas DNS dinámico
- El servicio que usé personalmente fue No-IP y quedé satisfecho con el resultado
- Si no estás familiarizado con el DNS dinámico, puedes usar un servidor en la nube de 5 a 10 dólares al mes con IP fija y una configuración más simple
- Elijas la opción que elijas, el servidor debe ser accesible mediante una IP fija o dominio, y el puerto 5190 debe estar abierto
- La configuración predeterminada de Open OSCAR Server es cómoda para probar en una red doméstica, pero no es adecuada para exponerlo a Internet
- Hasta asegurar la configuración, se recomienda permitir solo tu propio tráfico y rechazar en el firewall las conexiones desde otros orígenes
Instalación de Open OSCAR Server
wget [RELEASE URL]
- Debes reemplazar
[RELEASE URL] por la dirección real del archivo de la versión
- Extrae el archivo descargado con
tar
tar -zxvf open_oscar_server.X.XX.X.linux.x86_64.tar.gz
- Sustituye
X.XX.X por el número de versión real que descargaste
Configurar el modo de recepción y la dirección del servidor
- Si solo lo vas a ejecutar en la máquina local, puedes entrar al subdirectorio descomprimido y ejecutarlo de inmediato
- Si vas a conectar clientes desde otras máquinas, debes editar
settings.env
- Open OSCAR Server admite tres modos de recepción de clientes
LOCAL: es el valor predeterminado y se usa cuando el cliente AIM y el servidor están en la misma máquina
LAN: se usa cuando el servidor y los clientes AIM están en la misma red interna y no pasan por Internet
WAN: se usa para conectar por Internet a los clientes AIM de amigos externos
- En
settings.env, debes configurar dos variables en conjunto
OSCAR_LISTENERS: especifica cómo Open OSCAR Server recibirá conexiones
OSCAR_ADVERTISED_LISTENERS_PLAIN: especifica la dirección del servidor que se anunciará a clientes como AIM
- Si tienes un VPS público con el dominio
example.domain, puedes configurarlo así
OSCAR_LISTENERS=WAN://0.0.0.0:5190
OSCAR_ADVERTISED_LISTENERS_PLAIN=WAN://example.domain:5190
- En una red interna, cambia
WAN por LAN y usa la dirección IP asignada al servidor en lugar del dominio
- El modo de ambas variables debe coincidir obligatoriamente, por ejemplo
LAN y LAN, o WAN y WAN
- También es posible una configuración que especifique ambos modos en ambas variables
- Cuando termines de configurar, prueba ejecutar el servidor con el siguiente comando
./open_oscar_server
Conectar un cliente AIM
- En varias versiones de AIM, puedes reemplazar la dirección del servidor de inicio de sesión predeterminado
login.oscar.aol.com, que hoy ya está cerrado, por otra dirección
- En AIM 5.1, puedes cambiar la dirección del servidor mediante el gran botón
Configuration en Setup
- Solo tienes que reemplazar la dirección del servidor de inicio de sesión predeterminado por la dirección definida en
OSCAR_ADVERTISED_LISTENERS_PLAIN
- Antes de reforzar la autenticación, puedes iniciar sesión introduciendo cualquier nombre de pantalla y contraseña
- Las condiciones de acceso para otros usuarios cambian según el modo del servidor
- En modo
LAN, deben estar en la misma red que el servidor
- En modo
WAN, debes dar acceso a usuarios externos para que puedan atravesar el firewall
Mantener el servidor siempre activo con systemd
- Open OSCAR Server también incluye un servicio systemd que permite mantener el servidor en ejecución incluso después de que se cierre la conexión SSH
- Para instalar y configurar el servicio, sigue la documentación de SYSTEMD del proyecto
Activar la autenticación por contraseña
- En el estado predeterminado no se valida la contraseña real, así que debes cambiar
DISABLE_AUTH en el archivo del servicio systemd
- Edita el archivo completo del servicio con el editor predeterminado usando este comando
sudo systemctl edit --full ras.service
- Configura la variable de entorno bajo
[Service] de esta forma
Environment="DISABLE_AUTH=false"
- Como el nombre de la variable está en forma de doble negación, para exigir autenticación el valor debe ser
false
- Después de guardar el archivo del servicio, vuelve a cargar la configuración del daemon de systemd
sudo systemctl daemon-reload
- Vuelve a probar el inicio de sesión con el nombre de pantalla y contraseña existentes, y si falla, puedes crear un usuario nuevo mediante la API
Administrar usuarios y contraseñas con la API
- Después de activar la autenticación, administra usuarios y contraseñas con la API de Open OSCAR Server y
curl
-
Agregar usuario
curl -d'{"screen_name":"NEWUSERNAME", "password":"NEWPASSWORD"}' http://localhost:8080/user
- Con la opción
-d de curl se envían datos POST
- En el cuerpo JSON debes incluir las claves
screen_name y password
- El destino de la solicitud es el endpoint
http://localhost:8080/user del servidor local
-
Cambiar la contraseña de un usuario existente
curl -X PUT -d'{"screen_name":"NEWUSERNAME", "password":"NEWPASSWORD"}' http://localhost:8080/user/password
- Para actualizar un usuario existente se usa
-X PUT en lugar de POST
- En
screen_name debes indicar un nombre de pantalla que ya exista
- El endpoint para cambiar la contraseña es
http://localhost:8080/user/password
- La API también admite eliminar usuarios y agregar salas de chat, entre otras funciones; puedes revisar más opciones en la documentación del proyecto
Respaldo y recuperación
- El estado principal de Open OSCAR Server está compuesto por una base de datos SQLite y archivos de configuración, así que hacer respaldos es sencillo
- Estoy respaldando todo el sistema del VPS cada noche, y en pruebas de restauración funcionó como se esperaba
- Antes de cambios grandes, detengo el servidor y copio todo el directorio de trabajo a una máquina de respaldo con
rsync
- Con Borgmatic, el proceso de respaldo puede simplificarse aún más, y planeo tratarlo en detalle en una publicación posterior
1 comentarios
Comentarios en Lobste.rs
Fue una lectura entretenida, pero es un error pensar que antes no había muchos tipos de mensajeros. Mucha gente pasaba mucho tiempo en AIM o MSN, pero mis amigos de la escuela y yo no usábamos ninguno de los dos y pasamos de ICQ a IRC; la fragmentación de servicios tampoco era particularmente mejor que ahora.
https://nugget.livejournal.com/97081.html
También hay una publicación de seguimiento que escribí un mes después, tras recibir la respuesta de Google.
https://nugget.livejournal.com/103322.html
También hay un video sobre este tema. Estuve a punto de publicarlo yo, pero dudé entre conservar el título original, algo clickbait, o usar el título que proponía DeArrow.
Es interesante, pero mientras leía el artículo la respuesta que esperaba era: “¿y después qué?”. Si no se federa con otros servidores, me pregunto si todos los que quieren conversar tienen que estar en el mismo servidor, o si es solo para hablar con uno mismo.
No se les pasó el screenshot clásico que debía ir sí o sí al comienzo del artículo. La practicidad y utilidad del software de esa época estaban realmente muy bien pulidas.
AIM en sí no me interesa, pero disfruto ver a la gente volver a tocar tecnologías antiguas. Al curiosear otros textos del autor, siento que podría terminar cayendo en otro pantano de exploraciones, y eso tampoco suena mal.
No extraño en absoluto la era de ICQ y AIM, pero hacia el final de esa etapa hubo una breve época dorada en la industria. Gracias a XMPP, que permitía federación entre servidores, y a gateways que lo conectaban con otros protocolos, podías montar tu propio servidor o tener una cuenta en el servidor de otra persona y hablar con cualquiera.
Había que mantener también las cuentas de las redes conectadas mediante gateways, pero en la mayoría de los casos bastaba con revisarlas muy de vez en cuando, y con una sola cuenta podías hablar con usuarios de Google Talk, Facebook Messenger, ICQ y MSN. Skype fue el único que se negó obstinadamente a ser compatible.
Ahora la cultura cambió de forma sorprendente: incluso Signal, que es open source, bloquea clientes externos, y en vez de generar una oposición clara, se acepta hasta cierto punto como una exigencia razonable. Parece que perdimos la época dorada porque ya no merecíamos disfrutarla.