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
Eu gosto ... vamos ver se de uma vez por todas eu troco OpenFire por ejabberd ou esta Prosódia 🙂
Já estou fazendo os testes no VirtualBox justamente pra isso .. porque se esperarmos meu filho .. ¬¬
^ - ^ U ... hehe ...
Agora, envio um tíquete ao provedor de hospedagem perguntando sobre o registro DNS de que precisamos para remover o 'jabber .'______
OK. Jabber, IRC, Facebook, Gtalk, não sei como nem onde, mas conecte ..
Como é feita a integração com o LDAP da Prosódia? e o BD?
Veja como fazer: http://blog.marc-seeger.de/2009/12/30/setting-up-prosody-to-authenticate-against-ldap/
algumas imagens para os menos conhecedores não seriam ruins ^. ^
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.
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? 😛
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;
Estou procurando pacotes de prosódia no slackware, excelente tutorial. Felicidades
Como posso verificar se um usuário pode se autenticar? ou como posso saber se um usuário está conectado ao servidor?
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?
mesma dúvida! você sabia no final ?? Estou começando com a prosódia ...
Muito simples, no pidgin especifique o ip do servidor nas opções avançadas, a outra opção é montar um dns na sua LAN.
Este tópico é muito interessante e eu queria saber se Prosody suporta websockets. Estou interessado em fazer um cliente web xmpp
Você pode ver isso. http://code.google.com/p/xmppwebchat/
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.