Mange av oss bruker Gtalk o Facebook Chat uten å vite at protokollen vi bruker for å kommunisere er ingen ringere enn XMPP (Utvidbar protokoll for meldinger og tilstedeværelse) som også er åpen.
En GNU / Linux vi har flere applikasjoner for å sette opp vår egen server XMPP o Jabber som det også er kjent, noen mer kompliserte enn andre når de konfigureres. For eksempel har vi ejabberd, som er ganske enkelt og lett, men hvis vi vil optimalisere mye mer, har vi det prosodi.
Så forlater jeg deg en artikkel publisert i GUTL av en av brukerne våre (Hugo) og hvor han viser oss hvordan vi konfigurerer vår egen server XMPP med prosodi.
Innledning
Når du installerer en XMPP (Jabber) -server for interne meldinger i et lokalt nettverk, velger mange jabber, ejabberd eller openfire, men selv om disse funksjonene er funksjonelle, kan disse applikasjonene kreve mye ressurser.
Hvis du har et lite eller middels nettverk og bare vil ha en enkel chat-tjeneste, er det heldigvis et lett serveralternativ kalt prosody, som selv om det er programmert i LUA som er et tolket språk, ifølge utviklerne fungerer det veldig bra takk. til luajit.
Denne korte opplæringen vil forklare hvordan du installerer og konfigurerer prosody på Debian stabil.
Forberedelser og installasjon
Prosody-pakker er i Debian-depotet, men utviklerne av denne programvaren har utarbeidet et depot for Debian og derivater som inneholder nylige pakker og tilleggsmoduler, som vi kan bruke som følger:
ekko "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 oppdatering
Når depotet er lagt til, kan vi fortsette å installere prosody (i tillegg legge til moduler som skal brukes sasl
som en autentiseringsmekanisme hvis nødvendig, som gjør det mulig å integrere prosody med pam
, LDAPOsv.).
sudo aptitude installer sasl2-bin libsasl2-modules-ldap prosody liblua5.1- {sec0, cyrussasl0, event-prosody0}
Vi fortsetter deretter med å generere selvsignerte sertifikater for domenet vårt:
cd / etc / prosody / certs sudo openssl req -ny -x509-dager 1095 -noder -out "mydomain.cu.cert" -keyout "mydomain.cu.key"
Veiviseren vil be oss om en serie med data, der det viktigste er “Vanlig navn (f.eks. Server FQDN eller DITT navn) ”der vi må plassere domenet vårt, slik vi vil bruke det i seksjonen VirtualHost konfigurasjonsfil.
I tillegg, hvis vi er konfigurert på serveren der vi installerer prosody iptables
Med standard avvisningsretningslinjer, må vi åpne de nødvendige portene for nettverket vårt, for eksempel:
sudo iptables -A INPUT -i lo -j ACCEPT sudo iptables -A INPUT -i eth1 -s 192.168.0.0/24 -p tcp -m tcp -m state --state ESTABLISHED, RELATED -j ACCEPT sudo iptables -A INPUT - i eth1 -s 192.168.0.0/24 -p tcp -m tcp -m multiport --dports 5222,5223,5269 -m state --state NEW -j ACCEPT
Konfigurasjon
Deretter fortsetter vi med å endre noen linjer i konfigurasjonsfilen, som vi må redigere for /etc/prosody/prosody.cfg.lua
så det ser slik ut:
-
porter = {5222, 5269} ssl_ports = {5223} admins = {"juan@mydomain.cu", "pedro@mydomain.cu"} use_libevent = true; - standardalternativet er basert på select () -funksjonen, i stedet bruker libevent epoll (), som er mer effektiv og skalerbar. modules_enabled = {"liste"; "saslauth"; "tls"; "tilbakering"; "disk"; "privat"; "vcard"; "personvern"; "komprimering"; "legacyauth"; "versjon"; "oppetid"; "tid"; "ping"; "pep"; "registrere"; - ikke deaktiver denne modulen, det tillater ikke bare å registrere, men også å endre "adhoc" passord; "admin_adhoc"; "posix"; "bosh"; - legg til denne linjen hvis du vil aktivere jabber over http}; allow_registration = false; - deaktivert for sikkerhet - endre til sant hvis du vil aktivere opprettelse av kontoer fra selve klienten ssl = {key = "/etc/prosody/certs/localhost.key"; sertifikat = "/etc/prosody/certs/localhost.cert"; } lagring = "intern"; - standardlagringen er en xml-fil - valgfritt kan vi bruke "sql" -lagringsmetoden - dette gjør det mulig å bruke SQLite, MySQL eller PostgreSQL som en backend (selv om visse parametere må legges til) authentication = "internal_hashed"; - vi kan bruke "internal_plain" hvis klienten ikke støtter SCRAM-SHA-1 - hvis vi vil bruke sasl-metoden for senere å bruke LDAP, må vi bruke "cyrus" log = {error = "/ var / log / prosody / prosody. 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"; sertifikat = "/etc/prosody/certs/mydomain.cu.crt"; }
Når konfigurasjonsfilen er endret, starter vi tjenesten på nytt:
sudo service prosody trekke fra
Nå fortsetter vi med å opprette kontoene. I dette tilfellet, som i konfigurasjonsfilen, deaktiverer vi registreringen fra klientene, må kontoene opprettes manuelt på serveren. Autentiseringsmetoden som vi velger i konfigurasjonen (internal_hashed) gjør at passordene ikke lagres tydelig, men med mekanismen SCRAM-SHA-1
. Hvis meldeklienten vi har tenkt å bruke ikke støtter denne mekanismen, kan "internal_plain" -metoden brukes i konfigurasjonen.
Først oppretter vi kontoene til administratorene av tjenesten som vi erklærer i konfigurasjonen (å erklære dem innebærer ikke at de blir opprettet automatisk):
sudo prosodyctl adduser juan@mydomain.cu sudo prosodyctl adduser pedro@mydomain.cu
Vi kan bruke den samme kommandoen for en hvilken som helst annen konto vi vil opprette.
Til slutt sjekker vi at tjenesten kjører:
sudo prosodyctl -status
Vi bør få en melding som følgende:
Prosody kjører med PID 1310
Klientkonfigurasjon
Konfigurasjonen avhenger av hver klient, men generelt er detaljene enkle. For eksempel for Pidgin:
"Grunnleggende" -fanen
Brukernavn: Juan
domene: mydomain.cu
funksjonen: pc-john
Fanen "Avansert"
Tilkoblingssikkerhet: Bruk kryptering hvis mulig
Tilkoblingsport: 5222
Koble til server: myserver.mydomain.cu
notater
Mer informasjon kan bli funnet (inkludert bruk av Cyrus SASL med LDAP og hvordan du lager oppføringer fra DNS) På denne artikkelen fra Debian Wiki.
En bruker kommenterer via DesdeLinux for å virkelig stoppe tjenesten du trengte å utføre pkill lua5.1
Jeg liker det ... la oss se om jeg en gang for alle endrer OpenFire for ejabberd eller denne Prosody 🙂
Jeg gjør allerede testene i VirtualBox nettopp for det .. for hvis vi venter på deg min sønn .. ¬¬
^ - ^ U ... hehe ...
Nå sender jeg en billett til vertsleverandøren og spør om DNS-posten som vi trenger for å fjerne "jabber."
Greit. Jabber, IRC, Facebook, Gtalk, jeg vet ikke hvordan eller hvor, men koble til ..
Hvordan er integrasjonen med LDAP av Prosody? og BD?
Slik gjør du det: http://blog.marc-seeger.de/2009/12/30/setting-up-prosody-to-authenticate-against-ldap/
et par bilder for mindre kunnskapsrike ville ikke være dårlig ^. ^
Hjemme har jeg prosodi, jeg installerte den for å teste, og jeg likte den for sin enkelhet. En detalj når jeg stopper serveren, må jeg gjøre en luk5.1 for å virkelig stoppe den.
Wow, dette er interessant. Er det en måte som andre mennesker kan opprette brukere gjennom en GUI (kan være på nettet)? Hvordan vil du gjøre for å få et domene til å bruke det? 😛
Du aktiverer registreringen i konfigurasjonen og fra samme klientjabber blir de registrert ved å merke av for alternativet for å opprette konto på serveren.
tillate_registrering = sant;
Jeg leter etter prosodipakker i slackware, utmerket opplæring. Jubel
Hvordan kan jeg bekrefte om en bruker klarte å godkjenne? eller hvordan kan jeg vite om en bruker er koblet til serveren?
Jeg lyktes 😀 Jeg klarte å installere og konfigurere det riktig. Installer serveren på en PC, og klienten er en annen PC. men jeg har et problem. For at klienten skal vite at serveren min med domenet (medellinlibre.org) er LOKAL. Jeg må legge til vertsfilen IPDELSERVIDOR medellinlibre.org. Hvis ikke, kobles det ikke av åpenbare grunner. Spørsmålet mitt er om det ikke er noen måte for alle PCene i nettverket å vite som standard at dette domenet er på LAN ved en gitt IP?
samme tvil! visste du på slutten ?? Jeg begynner med prosodi ...
Veldig enkelt, i pidgin spesifiser ip til serveren i avanserte alternativer, det andre alternativet er å montere en dns på LAN.
Dette emnet er veldig interessant, og jeg ville vite om Prosody støtter websockets. Jeg er interessert i å lage en xmpp-webklient
Du kunne se dette. http://code.google.com/p/xmppwebchat/
Hei, har du ikke en versjon av opplæringen med en konfigurasjon som bare er for et innenlandsk intranett? Ingen domene eller noe sånt. neppe slik at bare én datamaskin med Liñux er en server og de andre datamaskinene som kobles til den
Det er utelukkende å kunne chatte mellom intranettdatamaskinene gjennom pidgin.