Wielu z nas korzysta Gtalk o Facebook Chat nie wiedząc, że protokół, którego używamy do komunikacji, to nic innego jak XMPP (Rozszerzony protokół przesyłania wiadomości i obecności) który jest również otwarty.
En GNU / Linux Mamy kilka aplikacji do skonfigurowania własnego serwera XMPP o paplanie jak wiadomo, niektóre bardziej skomplikowane niż inne podczas konfiguracji. Na przykład mamy ejabberd, co jest dość proste i lekkie, ale jeśli chcemy zoptymalizować znacznie więcej, mamy Prozodia.
Zostawiam cię poniżej artykuł opublikowane w GUTL przez jednego z naszych użytkowników (Hugo) i pokazuje nam, jak skonfigurować nasz własny serwer XMPP z Prozodia.
Wprowadzenie
Podczas instalowania serwera protokołu XMPP (Jabber) do wewnętrznej komunikacji w sieci lokalnej, wielu wybiera jabber, ejabberd lub openfire, ale chociaż aplikacje te działają, mogą wymagać sporo zasobów.
Jeśli masz małą lub średnią sieć i potrzebujesz prostego komunikatora, na szczęście istnieje lekka alternatywa dla serwera o nazwie prosody, która chociaż jest napisana w LUA, który jest językiem interpretowanym, według jej twórców działa bardzo dobrze dzięki luajit.
Ten krótki samouczek wyjaśni, jak zainstalować i skonfigurować prozodię w stabilnym Debianie.
Przygotowania i instalacja
Pakiety prosody znajdują się w repozytorium Debiana, ale twórcy tego oprogramowania przygotowali repozytorium dla Debiana i pochodnych, które zawiera najnowsze pakiety i dodatkowe moduły, których możemy użyć w następujący sposób:
echo "deb http://packages.prosody.im/debian stabilny główny" | sudo tee -a /etc/apt/sources.list wget http://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add -sudo aptitude update
Po dodaniu repozytorium możemy przystąpić do instalacji prozodii (dodatkowo dodając moduły do wykorzystania sasl
jako mechanizm uwierzytelniania, jeśli to konieczne, który umożliwia integrację prozodii pam
, LDAP, Etc.).
sudo aptitude zainstaluj sasl2-bin libsasl2-modules-ldap prosody liblua5.1-{sec0,cyrussasl0,event-prosody0}
Następnie przystępujemy do generowania samopodpisanych certyfikatów dla naszej domeny:
cd /etc/prosody/certs sudo openssl req -new -x509 -days 1095 -nodes -out "mydomain.cu.cert" -keyout "mydomain.cu.key"
Asystent poprosi nas o szereg danych, z których tak naprawdę istotne to „Nazwa zwyczajowa (np. server Nazwa FQDN lub TWOJE imię)”, w którym musimy umieścić naszą domenę, ponieważ będziemy jej używać w sekcji Wirtualny Host z pliku konfiguracyjnego.
Dodatkowo, jeśli na serwerze, na którym instalujemy prozodię mamy skonfigurowaną iptables
Przy domyślnych zasadach odmowy musimy otworzyć wymagane porty dla naszej sieci, na przykład:
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 tc p -m tcp -m wieloportowy --dports 5222,5223,5269 -m stan --stan NOWY -j AKCEPTUJ
konfiguracja
Następnie przystępujemy do modyfikacji niektórych linii pliku konfiguracyjnego, dla których musimy edytować /etc/prosody/prosody.cfg.lua
aby wyglądało to tak:
-
porty = { 5222, 5269 } ssl_ports = { 5223 } admins = { "john@midomain.cu", "pedro@midomain.cu" } use_libevent = true; -- domyślna opcja jest oparta na funkcji select(), zamiast tego libevent używa epoll(), która jest bardziej wydajna i skalowalna. module_enabled = { "lista"; "saslauth"; "tls"; „oddzwanianie”; "dysk"; "prywatny"; "vcard"; "Prywatność"; "kompresja"; "starsze uwierzytelnienie"; "wersja"; „czas pracy”; "czas"; "świst"; "energia"; "rejestr"; -- nie wyłączaj tego modułu, umożliwia on nie tylko rejestrację, ale także zmianę haseł „adhoc”; "admin_adhoc"; „posiks”; "brednie"; -- dodaj tę linię, jeśli chcesz włączyć jabber przez http }; Zezwól na rejestrację = fałsz; -- wyłączone ze względów bezpieczeństwa -- zmień na true, jeśli chcesz włączyć tworzenie konta z samego klienta ssl = { key = "/etc/prosody/certs/localhost.key"; certyfikat = "/etc/prosody/certs/localhost.cert"; } magazyn = "wewnętrzny"; -- domyślną pamięcią jest plik xml -- opcjonalnie możemy użyć metody "sql" -- pozwala to na użycie SQLite, MySQL lub PostgreSQL jako backendu (chociaż trzeba dodać pewne parametry) Authentication = "internal_hashed"; -- możemy użyć "internal_plain", jeśli klient nie obsługuje SCRAM-SHA-1 -- jeśli chcemy użyć metody sasl do późniejszego korzystania z LDAP, musimy użyć "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"; certyfikat = "/etc/prosody/certs/mojadomena.cu.crt"; }
Po zmodyfikowaniu pliku konfiguracyjnego zrestartujemy usługę:
sudo odejmowanie prozodii usługi
Teraz przystąpimy do tworzenia kont. W tym przypadku, ponieważ w pliku konfiguracyjnym wyłączyliśmy rejestrację od klientów, konta będą musiały zostać utworzone ręcznie na serwerze. Metoda uwierzytelniania, którą wybieramy w konfiguracji (internal_hashed) oznacza, że hasła nie są zapisywane w sposób jawny, ale z mechanizmem SCRAM-SHA-1
. Jeśli klient wiadomości, którego zamierzamy użyć, nie obsługuje tego mechanizmu, w konfiguracji można użyć metody „internal_plain”.
Najpierw utworzymy konta administratorów serwisu, które deklarujemy w konfiguracji (zadeklarowanie ich nie oznacza, że są tworzone automatycznie):
sudo prosodyctl adduser juan@midomain.cu sudo prosodyctl adduser pedro@midomain.cu
Możemy użyć tego samego polecenia dla dowolnego innego konta, które chcemy utworzyć.
Na koniec sprawdzamy, czy usługa działa:
sudo status prozodyczny
Powinniśmy otrzymać komunikat podobny do następującego:
Prosody działa z PID 1310
Konfiguracja klienta
Konfiguracja zależy od każdego klienta, ale generalnie szczegóły są proste. Na przykład dla Pidgin:
Zakładka „Podstawowe”.
Użytkownik: John
Domena: mojadomena.cu
Ratunek: PC-Juan
Zakładka „Zaawansowane”.
Bezpieczeństwo połączenia: Jeśli to możliwe, użyj szyfrowania
Port połączenia: 5222
Połącz się z serwerem: mojserwer.mojadomena.cu
Banknoty
Więcej informacji (w tym korzystanie z Cyrus SASL z LDAP i jak tworzyć wpisy DNS) W ten artykuł z Wiki Debiana.
Użytkownik komentuje za pośrednictwem DesdeLinux aby naprawdę zatrzymać usługę, którą musiałeś wykonać pkill lua5.1
Podoba mi się…zobaczymy, czy raz na zawsze zamienię OpenFire na ejabberd lub tę Prosody 🙂
Robię już testy w VirtualBox właśnie w tym celu... bo jeśli czekamy na ciebie mój synu... ¬¬
^-^ Ty… hehe…
Teraz wysyłam zgłoszenie do dostawcy usług hostingowych z pytaniem o rekord DNS potrzebny do usunięcia „jabbera”.______
Dobra. Jabber, IRC, Facebook, Gtalk, nie wiem jak i gdzie, ale połącz...
Jak przebiega integracja z LDAP firmy Prosody? a DB?
Oto jak to zrobić: http://blog.marc-seeger.de/2009/12/30/setting-up-prosody-to-authenticate-against-ldap/
Kilka obrazków dla mniej zorientowanych nie byłoby złe ^.^
W domu mam prozodię, zainstalowałem ją na próbę i spodobała mi się za jej prostotę. Szczegół podczas zatrzymywania serwera Muszę wykonać pkill lua5.1, aby naprawdę go zatrzymać.
To ciekawe. Czy istnieje sposób, w jaki inne osoby mogą tworzyć użytkowników za pomocą GUI (może to być sieć)? Jak by to zrobić, aby uzyskać domenę, aby z niej korzystać? 😛
Włączasz rejestrację w configu iz tego samego klienta jabber są rejestrowani poprzez zaznaczenie opcji utworzenia konta na serwerze.
Zezwól na rejestrację = prawda;
Szukam pakietów prozodii w slackware, świetny tutorial. Pozdrowienia
Jak mogę sprawdzić, czy użytkownikowi udało się uwierzytelnić? lub skąd mogę wiedzieć, czy użytkownik jest połączony z serwerem?
Udało się 😀 Udało mi się poprawnie zainstalować i skonfigurować. Zainstaluj serwer na jednym komputerze, a klientem jest inny komputer. ale mam problem. Aby klient wiedział, że mój serwer z domeną (medellinlibre.org) jest LOKALNY. Muszę dodać do pliku hosts IPDELSERVIDOR medellinlibre.org. W przeciwnym razie nie łączy się z oczywistych powodów. Martwię się, czy nie ma sposobu, aby wszystkie komputery w sieci wiedziały domyślnie, że wspomniana domena znajduje się w sieci LAN pod określonym adresem IP?
ta sama wątpliwość! wiedziałeś na końcu? Zaczynam od prozodii...
Bardzo proste, w pidgin określ ip serwera w zaawansowanych opcjach, drugą opcją jest ustawienie dns w twojej sieci LAN.
Ten temat jest bardzo interesujący i chciałem wiedzieć, czy Prosody obsługuje websockets. Jestem zainteresowany stworzeniem klienta sieciowego xmpp
Mogłeś to zobaczyć. http://code.google.com/p/xmppwebchat/
Cześć, czy nie masz wersji samouczka z konfiguracją, która jest przeznaczona tylko dla domowego intranetu?Bez domeny lub czegoś w tym rodzaju. prawie tak, że tylko 1 komputer z Linuksem jest serwerem i inne komputery, które się z nim łączą
Chodzi wyłącznie o możliwość czatowania między zespołami w intranecie za pośrednictwem pidgin.