1 puntos por GN⁺ 7 시간 전 | 1 comentarios | Compartir por WhatsApp
  • 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

 
GN⁺ 7 시간 전
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.

    • Aun así, en esa época había clientes unificados para usar varios mensajeros en un solo lugar.
    • Es cierto. Me recuerda a una publicación de LiveJournal que escribí en 2005 sobre cómo el servidor Jabber de Google Talk no tenía un plan adecuado de federación entre servidores, y que terminó apareciendo en Slashdot.
      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
    • Creo que había grandes diferencias por región. Según recuerdo, en Estados Unidos se usaba AIM y en Europa se usaba principalmente ICQ.
  • 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.

    • El título del video no me pareció necesariamente clickbait, pero en general prefiero artículos de blog antes que videos.
  • 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 veo cuál es el problema con registrarse en varios servidores. De hecho, esa es básicamente la estructura que Discord dice ofrecer.
  • 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.