- Com o [Open OSCAR Server], é possível montar um servidor AIM/ICQ em um servidor Debian e reconectar vários clientes de ambientes antigos, incluindo Windows 98
- Para uma operação pequena, até um VPS modesto é suficiente, mas, para usar com amigos externos, é preciso ter a porta padrão 5190, um IP fixo ou DNS dinâmico, e configurações de firewall adequadas para exposição à internet
- Ajuste
OSCAR_LISTENERS e OSCAR_ADVERTISED_LISTENERS_PLAIN em settings.env conforme o modo LAN ou WAN, e altere o cliente AIM para se conectar ao seu próprio servidor em vez dos servidores AOL desativados
- Por padrão, é possível fazer login com qualquer nome de tela e senha, então é necessário ativar a autenticação por senha com
DISABLE_AUTH=false e gerenciar as contas pela API
- Como o estado do servidor é salvo em um banco de dados SQLite e em arquivos de configuração, é possível manter um ambiente AIM recuperável com backups completos noturnos ou copiando via
rsync após parar o servidor
Por que voltei a operar AIM em vez de Discord
- Antes de celulares e mensagens de texto se popularizarem, muitas atividades, de projetos escolares a relações pessoais, aconteciam em janelas do AIM, e essa experiência levou à nostalgia pelo AIM
- Depois de experiências recentes ruins com o Discord, testei o Open OSCAR Server e consegui conectar vários clientes antigos a um servidor AIM/ICQ próprio
- O processo de configuração também foi abordado em um vídeo no YouTube e em um vídeo no PeerTube, enquanto um vídeo separado do Macintosh Librarian apresenta o próprio AIM em mais detalhes
Preparando um servidor Debian Trixie
- O alvo da instalação é o Debian Trixie, e o processo de instalação do próprio sistema operacional não é abordado
- Se você não pretende conversar com centenas de pessoas, dá para operar até em um VPS modesto
- No início, hospedei em casa, mas, quando comecei a compartilhar com amigos, migrei para um VPS no plano mais básico
- É possível que funcione também em um Raspberry Pi, mas não testei diretamente
- Se for operar em casa ou atrás de um firewall, é preciso abrir a porta padrão 5190, pela qual os clientes AIM vão se conectar
- Em alguns clientes, mudar a porta não é fácil, então é melhor manter a porta padrão
- Em ambientes domésticos sem IP fixo, é necessário usar DNS dinâmico
- O serviço que usei foi o No-IP, e fiquei satisfeito com o resultado
- Se você não estiver familiarizado com DNS dinâmico, pode usar um servidor em nuvem de 5 a 10 dólares por mês para ter IP fixo e uma configuração mais simples
- Seja qual for a opção, o servidor precisa ser acessível por um IP fixo ou domínio, e a porta 5190 deve estar aberta
- Os padrões do Open OSCAR Server são convenientes para testes em uma rede doméstica, mas não são adequados para exposição à internet
- Até travar as configurações, recomenda-se permitir apenas o seu próprio tráfego e negar no firewall conexões vindas de outras origens
Instalando o Open OSCAR Server
wget [RELEASE URL]
- Substitua
[RELEASE URL] pelo endereço real do arquivo da release
- Extraia o arquivo baixado com
tar
tar -zxvf open_oscar_server.X.XX.X.linux.x86_64.tar.gz
- Substitua
X.XX.X pelo número real da versão baixada
Configurando o modo de escuta e o endereço do servidor
- Se for executar apenas na máquina local, entre no subdiretório extraído e rode diretamente
- Para conectar clientes de outras máquinas, é preciso editar
settings.env
- O Open OSCAR Server oferece suporte a três modos de escuta de clientes
LOCAL: valor padrão, usado quando o cliente AIM e o servidor estão na mesma máquina
LAN: usado quando o servidor e os clientes AIM estão na mesma rede interna e não passam pela internet
WAN: usado para conectar clientes AIM de amigos externos pela internet
- Em
settings.env, configure duas variáveis em conjunto
OSCAR_LISTENERS: especifica como o Open OSCAR Server recebe conexões
OSCAR_ADVERTISED_LISTENERS_PLAIN: especifica o endereço do servidor que será informado a clientes como o AIM
- Para um VPS público cujo domínio seja
example.domain, a configuração pode ser assim
OSCAR_LISTENERS=WAN://0.0.0.0:5190
OSCAR_ADVERTISED_LISTENERS_PLAIN=WAN://example.domain:5190
- Em uma rede interna, troque
WAN por LAN e use o endereço IP atribuído ao servidor no lugar do domínio
- Os modos das duas variáveis devem necessariamente corresponder, como
LAN e LAN, ou WAN e WAN
- Também é possível configurar os dois modos em ambas as variáveis
- Depois de concluir as configurações, teste a execução do servidor com o comando a seguir
./open_oscar_server
Conectando o cliente AIM
- Em várias versões do AIM, é possível trocar o servidor de login padrão
login.oscar.aol.com, hoje desativado, por outro endereço
- No AIM 5.1, o endereço do servidor é alterado pelo grande botão
Configuration em Setup
- Basta substituir o endereço do servidor de login padrão pelo endereço especificado em
OSCAR_ADVERTISED_LISTENERS_PLAIN
- Antes de reforçar a autenticação, é possível fazer login inserindo qualquer nome de tela e senha
- As condições de acesso de outros usuários dependem do modo do servidor
- No modo
LAN, eles precisam estar na mesma rede do servidor
- No modo
WAN, é necessário fornecer acesso para que usuários externos consigam passar pelo firewall
Mantendo o servidor sempre ativo com systemd
- O Open OSCAR Server também fornece um serviço systemd que permite manter o servidor em execução mesmo depois que a conexão SSH é encerrada
- Para instalar e configurar o serviço, siga a documentação de SYSTEMD do projeto
Ativando a autenticação por senha
- Por padrão, senhas reais não são verificadas, então é preciso alterar
DISABLE_AUTH no arquivo de serviço do systemd
- Edite o arquivo de serviço completo no editor padrão com o comando a seguir
sudo systemctl edit --full ras.service
- Em
[Service], defina a variável de ambiente assim
Environment="DISABLE_AUTH=false"
- Como o nome da variável usa uma dupla negação, para exigir autenticação o valor deve ser
false
- Depois de salvar o arquivo de serviço, recarregue a configuração do daemon do systemd
sudo systemctl daemon-reload
- Teste novamente o login com o nome de tela e a senha existentes; se falhar, você pode criar um novo usuário pela API
Gerenciando usuários e senhas pela API
- Depois de ativar a autenticação, gerencie usuários e senhas com a API do Open OSCAR Server e
curl
-
Adicionar usuário
curl -d'{"screen_name":"NEWUSERNAME", "password":"NEWPASSWORD"}' http://localhost:8080/user
- A opção
-d do curl envia dados POST
- O corpo JSON inclui as chaves
screen_name e password
- O destino da requisição é o endpoint
http://localhost:8080/user do servidor local
-
Alterar a senha de um usuário existente
curl -X PUT -d'{"screen_name":"NEWUSERNAME", "password":"NEWPASSWORD"}' http://localhost:8080/user/password
- Para atualizar um usuário existente, use
-X PUT em vez de POST
- Em
screen_name, especifique um nome de tela que já exista
- O endpoint de alteração de senha é
http://localhost:8080/user/password
- A API também oferece suporte a excluir usuários, adicionar salas de chat e outras funções; consulte a documentação do projeto para ver os demais recursos
Backup e recuperação
- O estado principal do Open OSCAR Server consiste em um banco de dados SQLite e arquivos de configuração, o que torna o backup simples
- Faço backup de todo o sistema do VPS todas as noites, e os testes de restauração funcionaram como esperado
- Antes de grandes alterações, paro o servidor e copio todo o diretório de trabalho para a máquina de backup com
rsync
- Com o Borgmatic, é possível simplificar ainda mais o processo de backup, e pretendo abordar isso em detalhes em um post futuro
1 comentários
Comentários no Lobste.rs
Foi divertido de ler, mas achar que no passado não havia muitos tipos de mensageiro é um engano. Muita gente passou muito tempo no AIM ou no MSN, mas eu e meus amigos da escola não usávamos nenhum dos dois e migramos do ICQ para o IRC; a fragmentação dos serviços também não era particularmente melhor do que hoje
https://nugget.livejournal.com/97081.html
Um mês depois, também houve um post de acompanhamento escrito após a resposta do Google
https://nugget.livejournal.com/103322.html
Também existe um vídeo sobre esse tema. Eu quase o enviei, mas fiquei em dúvida entre manter o título original, meio caça-cliques, ou usar o título fornecido pelo DeArrow
É interessante, mas, ao ler o texto, a resposta que eu esperava era: “e depois?”. Se não houver federação com outros servidores, fiquei curioso se todo mundo com quem você quer conversar precisa estar no mesmo servidor, ou se isso serve para falar sozinho
O texto não deixou de fora a captura de tela clássica que tinha de aparecer logo no começo. A praticidade e utilidade daquele software da época eram realmente muito bem lapidadas
Não tenho interesse no AIM em si, mas é divertido ver pessoas mexendo novamente em tecnologias antigas. Acabei olhando também outros textos do autor e parece que vou cair em mais vários buracos de exploração, o que também não parece ruim
Não sinto nenhuma saudade da era de ICQ e AIM em si, mas no fim daquele período houve uma breve era de ouro no setor. Graças ao XMPP, com federação entre servidores, e a gateways que ligavam a outros protocolos, você podia montar seu próprio servidor ou ter conta no servidor de outra pessoa e conversar com qualquer um
Ainda era preciso manter as contas nas redes conectadas pelos gateways, mas na maioria dos casos bastava mexer nelas muito de vez em quando, e com uma única conta dava para falar com usuários de Google Talk, Facebook Messenger, ICQ e MSN. Só o Skype se recusava teimosamente a ser compatível
Agora a cultura mudou de forma impressionante, a ponto de até o Signal, que é open source, bloquear clientes externos sem provocar a reação negativa que seria esperada; isso chega até a ser aceito como uma exigência razoável em certo grau. Parece que perdemos a era de ouro por não merecermos mais desfrutá-la.