Instale um servidor XMPP (Jabber) com Prosody [Atualizado]


Muitos de nós usamos gtalk o Facebook Chat sem saber que o protocolo que usamos para nos comunicar não é outro senão XMPP (Protocolo Extensível de Mensagens e Presença) que também está aberto.

En GNU / Linux temos vários aplicativos para configurar nosso próprio servidor XMPP o tagarelar como também é conhecido, alguns mais complicados do que outros na hora de configurar. Por exemplo, temos ejabber, que é bastante simples e leve, mas se quisermos otimizar muito mais, temos Prosódia.

Então eu deixo você um artigo publicado em GUTL por um de nossos usuários (Hugo) e onde ele nos mostra como configurar nosso próprio servidor XMPP com Prosódia.

Introdução

Ao instalar um servidor XMPP (Jabber) para mensagens internas em uma rede local, muitos escolhem o jabber, ejabberd ou openfire, mas embora funcionais, esses aplicativos podem exigir muitos recursos.

Se você tem uma rede pequena ou média e deseja apenas um serviço simples de mensagens instantâneas, felizmente existe uma alternativa de servidor leve chamada prosódia, que embora seja programada em LUA que é uma linguagem interpretada, segundo seus desenvolvedores funciona muito bem graças para luajit.

Este breve tutorial irá explicar como instalar e configurar o prosody no Debian estável.

Preparações e instalação

Os pacotes de prosódia estão no repositório Debian, mas os desenvolvedores deste software prepararam um repositório para o Debian e derivados contendo pacotes recentes e módulos adicionais, que podemos usar da seguinte maneira:

echo "deb http://packages.prosody.im/debian stable main" | sudo tee -a /etc/apt/sources.list wget http://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add - sudo aptitude update

Uma vez que o repositório é adicionado, podemos prosseguir com a instalação da prosódia (adicionando módulos adicionais sasl como um mecanismo de autenticação, se necessário, que permite integrar a prosódia com pam, LDAP, Etc.).

sudo aptitude install sasl2-bin libsasl2-modules-ldap prosody liblua5.1- {sec0, cyrussasl0, event-prosody0}

Em seguida, passamos a gerar certificados autoassinados para nosso domínio:

cd / etc / prosody / certs sudo openssl req -new -x509 -days 1095 -nodes -out "mydomain.cu.cert" -keyout "mydomain.cu.key"

O assistente irá nos pedir uma série de dados, dos quais o realmente essencial é “Nome comum (por exemplo, servidor FQDN ou SEU nome) ”onde devemos colocar nosso domínio, como iremos utilizá-lo na seção VirtualHost arquivo de configuração.

Além disso, se no servidor onde instalamos o Prosody configuramos iptables com políticas de negação padrão, precisamos abrir as portas necessárias para nossa rede, por exemplo:

sudo iptables -A ENTRADA -i lo -j ACEITAR sudo iptables -A ENTRADA -i eth1 -s 192.168.0.0/24 -p tcp -m tcp -m estado --estado ESTABELECIDO, RELACIONADO -j ACEITAR sudo iptables -A ENTRADA - i eth1 -s 192.168.0.0/24 -p tcp -m tcp -m multiport --porta 5222,5223,5269 -m state --state NOVO -j ACEITAR

configuração

A seguir, procedemos à modificação de algumas linhas do arquivo de configuração, para as quais devemos editar /etc/prosody/prosody.cfg.lua então fica assim:

ports = {5222, 5269} ssl_ports = {5223} admins = {"juan@mydomain.cu", "pedro@mydomain.cu"} use_libevent = true; - a opção padrão é baseada na função select (), ao invés do libevent usa epoll (), que é mais eficiente e escalável. modules_enabled = {"lista"; "saslauth"; "tls"; "dialback"; "disco"; "privado"; "vcard"; "privacidade"; "compressão"; "legacyauth"; "versão"; "tempo de atividade"; "Tempo"; "ping"; "vitalidade"; "registro"; - não desabilite este módulo, ele permite não só registrar, mas também alterar senhas "adhoc"; "admin_adhoc"; "posix"; "bosh"; - adicione esta linha se quiser habilitar o jabber sobre http}; allow_registration = false; - desabilitado para segurança - mude para verdadeiro se você quiser habilitar a criação de contas do próprio cliente ssl = {key = "/etc/prosody/certs/localhost.key"; certificado = "/etc/prosody/certs/localhost.cert"; } armazenamento = "interno"; - o armazenamento padrão é um arquivo xml - opcionalmente, podemos usar o método de armazenamento "sql" - isso permite usar SQLite, MySQL ou PostgreSQL como backend (embora certos parâmetros devam ser adicionados) autenticação = "internal_hashed"; - podemos usar "internal_plain" se o cliente não suportar SCRAM-SHA-1 - se quisermos usar o método sasl para usar o LDAP posteriormente, devemos usar "cyrus" log = {error = "/ var / log / prosódia / prosódia. err "; info = "/var/log/prosody/prosody.log"; } pidfile = "/var/run/prosody/prosody.pid"; VirtualHost "localhost" VirtualHost "mydomain.cu" ssl = {key = "/etc/prosody/certs/mydomain.cu.key"; certificado = "/etc/prosody/certs/mydomain.cu.crt"; }

Assim que o arquivo de configuração for modificado, reiniciamos o serviço:

sudo serviço prosódia subtrair

Agora vamos prosseguir com a criação das contas. Neste caso, como no arquivo de configuração desabilitamos o registro dos clientes, as contas deverão ser criadas manualmente no servidor. O método de autenticação que escolhemos na configuração (internal_hashed) faz com que as senhas não sejam salvas de forma clara, mas com o mecanismo SCRAM-SHA-1. Se o cliente de mensagens que pretendemos usar não suportar esse mecanismo, o método "internal_plain" pode ser usado na configuração.

Primeiro, criaremos as contas dos administradores do serviço que declaramos na configuração (declará-los não significa que sejam criados automaticamente):

sudo prosodyctl adduser juan@mydomain.cu sudo prosodyctl adduser pedro@mydomain.cu

Podemos usar o mesmo comando para qualquer outra conta que quisermos criar.

Por fim, verificamos se o serviço está em execução:

status do sudo prosodyctl

Devemos receber uma mensagem como a seguinte:

Prosódia está sendo executado com PID 1310

Configuração do cliente

A configuração depende de cada cliente, mas em geral os detalhes são simples. Por exemplo, para Pidgin:

Guia "Básico"

Nome de usuário: banheiro
Domínio: mydomain.cu
Recurso: pc-john

Guia "Avançado"

Segurança de conexão: Use criptografia se possível
Porta de conexão: 5222
Conecte-se ao servidor: myserver.mydomain.cu

Notas

Mais informações (incluindo o uso de Cyrus SASL com LDAP e como criar entradas de DNS) On este artigo do Debian Wiki.

Um usuário comenta via DesdeLinux que para realmente interromper o serviço que você precisava executar pkill lua5.1


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   KZKG ^ Gaara dito

    Eu gosto ... vamos ver se de uma vez por todas eu troco OpenFire por ejabberd ou esta Prosódia 🙂

    1.    elav. dito

      Já estou fazendo os testes no VirtualBox justamente pra isso .. porque se esperarmos meu filho .. ¬¬

      1.    KZKG ^ Gaara dito

        ^ - ^ U ... hehe ...
        Agora, envio um tíquete ao provedor de hospedagem perguntando sobre o registro DNS de que precisamos para remover o 'jabber .'______

        1.    elav. dito

          OK. Jabber, IRC, Facebook, Gtalk, não sei como nem onde, mas conecte ..

  2.   Ernesto Infante dito

    Como é feita a integração com o LDAP da Prosódia? e o BD?

  3.   apodrece87 dito

    algumas imagens para os menos conhecedores não seriam ruins ^. ^

  4.   caçador dito

    Em casa tenho prosódia, instalei para testar e gostei da simplicidade. Um detalhe ao parar o servidor eu tenho que fazer um pkill lua5.1 para realmente pará-lo.

  5.   Auros Zx dito

    Uau, isso é interessante. Existe uma maneira de outras pessoas criarem usuários por meio de uma GUI (pode ser a web)? Como você faria para obter um domínio para usá-lo? 😛

    1.    caçador dito

      Você habilita o cadastro no config e a partir do mesmo cliente jabber eles são cadastrados marcando a opção de criar conta no servidor.

      permitir_registro = verdadeiro;

  6.   Ferran dito

    Estou procurando pacotes de prosódia no slackware, excelente tutorial. Felicidades

  7.   Arthur Molina dito

    Como posso verificar se um usuário pode se autenticar? ou como posso saber se um usuário está conectado ao servidor?

  8.   @Jlcmux dito

    Consegui 😀 Consegui instalar e configurar corretamente. Instale o servidor em um PC e o cliente em outro PC. mas eu tenho um problema. Para que o cliente saiba que o meu servidor com o domínio (medellinlibre.org) é LOCAL. Devo adicionar ao arquivo hosts IPDELSERVIDOR medellinlibre.org. Caso contrário, ele não se conecta, por razões óbvias. Minha pergunta é se não há como todos os PCs da rede saberem por padrão que esse domínio está na LAN em um determinado IP?

    1.    ltd dito

      mesma dúvida! você sabia no final ?? Estou começando com a prosódia ...

    2.    caçador dito

      Muito simples, no pidgin especifique o ip do servidor nas opções avançadas, a outra opção é montar um dns na sua LAN.

  9.   Francisco dito

    Este tópico é muito interessante e eu queria saber se Prosody suporta websockets. Estou interessado em fazer um cliente web xmpp

    1.    @Jlcmux dito
  10.   Inukaze dito

    Olá, você não tem uma versão do tutorial com uma configuração que é apenas para uma intranet doméstica? Sem domínio ou algo parecido. mal para que apenas 1 computador com Liñux seja servidor e os demais computadores que se conectam a ele

    É apenas para poder bater papo entre os computadores da intranet através do pidgin.