Prosody를 사용하여 XMPP (Jabber) 서버 설치 [업데이트 됨]


우리 중 많은 사람들이 GTALK o 페이스 북 채팅 우리가 통신하는 데 사용하는 프로토콜이 다름 아닌 XMPP (확장 가능한 메시징 및 프레즌스 프로토콜) 그것도 열려 있습니다.

En GNU / 리눅스 자체 서버를 설정하기위한 여러 애플리케이션이 있습니다. XMPP o 지껄이다 또한 알려진대로 구성 할 때 다른 것보다 더 복잡합니다. 예를 들어, 우리는 Ejabberd, 매우 간단하고 가볍지 만 훨씬 더 최적화하고 싶다면 작시법.

그럼 너를 떠나 기사 출판 구틀 사용자 중 한 명 (Hugo)이 직접 서버를 구성하는 방법을 보여줍니다. XMPP작시법.

소개

로컬 네트워크에서 내부 메시징을 위해 XMPP (Jabber) 서버를 설치할 때 많은 사람들이 jabber, ejabberd 또는 openfire를 선택하지만 기능적이지만 이러한 애플리케이션은 많은 리소스를 요구할 수 있습니다.

중소 규모의 네트워크가 있고 간단한 인스턴트 메시징 서비스 만 원하는 경우 운 좋게도 prosody라는 경량 서버 대안이 있는데, 이는 통역 언어 인 LUA로 프로그래밍되었지만 luajit 덕분에 매우 잘 작동합니다.

이 짧은 튜토리얼은 Debian stable에서 prosody를 설치하고 구성하는 방법을 설명합니다.

준비 및 설치

Prosody 패키지는 Debian 저장소에 있지만이 소프트웨어의 개발자는 최근 패키지와 추가 모듈이 포함 된 Debian 및 파생 제품 용 저장소를 준비했으며 다음과 같이 사용할 수 있습니다.

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 추가-sudo aptitude 업데이트

저장소가 추가되면 prosody 설치를 진행할 수 있습니다 (사용할 모듈 추가 sasl 필요한 경우 인증 메커니즘으로 prosody를 pam, LDAP등).

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

그런 다음 도메인에 대한 자체 서명 된 인증서를 생성합니다.

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

마법사는 일련의 데이터를 묻습니다. 그 중 가장 중요한 것은“일반 이름 (예 : 서버 FQDN 또는 귀하의 이름) "섹션에서 사용할 도메인을 입력해야하는 위치 가상 호스트 구성 파일.

또한 우리가 프로 소디를 설치 한 서버에서 구성한 경우 iptables 기본 거부 정책을 사용하면 네트워크에 필요한 포트를 열어야합니다. 예를 들면 다음과 같습니다.

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

구성

다음으로 구성 파일의 몇 줄을 수정합니다. /etc/prosody/prosody.cfg.lua 그래서 다음과 같이 보입니다 :

포트 = {5222, 5269} ssl_ports = {5223} 관리자 = { "juan@mydomain.cu", "pedro@mydomain.cu"} use_libevent = true; -기본 옵션은 select () 함수를 기반으로합니다. 대신 libevent는 더 효율적이고 확장 가능한 epoll ()을 사용합니다. modules_enabled = { "명단"; "saslauth"; "tls"; "다이얼 백"; "디스크"; "은밀한"; "vcard"; "은둔"; "압축"; "legacyauth"; "버전"; "가동 시간"; "시각"; "핑"; "원기"; "레지스터"; -이 모듈을 비활성화하지 마십시오. 등록 할 수있을뿐만 아니라 "임시"암호도 변경할 수 있습니다. "admin_adhoc"; "posix"; "보쉬"; -http}를 통해 Jabber를 활성화하려면이 줄을 추가하십시오. allow_registration = 거짓; -보안을 위해 비활성화 됨-클라이언트 자체에서 계정 생성을 활성화하려면 true로 변경하십시오. ssl = {key = "/etc/prosody/certs/localhost.key"; 인증서 = "/etc/prosody/certs/localhost.cert"; } 저장 = "내부"; -기본 저장소는 xml 파일입니다. 선택적으로 "sql"저장소 방법을 사용할 수 있습니다.이를 통해 SQLite, MySQL 또는 PostgreSQL을 백엔드로 사용할 수 있습니다 (특정 매개 변수를 추가해야 함). authentication = "internal_hashed"; -클라이언트가 SCRAM-SHA-1을 지원하지 않는 경우 "internal_plain"을 사용할 수 있습니다.-나중에 LDAP를 사용하기 위해 sasl 방법을 사용하려면 "cyrus"를 사용해야합니다. log = {error = "/ var / log / prosody / prosody. 오류 "; 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"; 인증서 = "/etc/prosody/certs/mydomain.cu.crt"; }

구성 파일이 수정되면 서비스를 다시 시작합니다.

sudo 서비스 운율 빼기

이제 계정 생성을 진행합니다. 이 경우 구성 파일에서와 같이 클라이언트에서 레지스트리를 비활성화하므로 계정은 서버에서 수동으로 생성해야합니다. 구성에서 선택한 인증 방법 (internal_hashed)은 암호가 명확하게 저장되지 않고 메커니즘을 사용하도록합니다. SCRAM-SHA-1. 사용하려는 메시징 클라이언트가이 메커니즘을 지원하지 않는 경우 "internal_plain"메서드를 구성에 사용할 수 있습니다.

먼저 구성에서 선언하는 서비스 관리자의 계정을 만듭니다 (선언한다고해서 자동으로 생성된다는 의미는 아님).

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

생성하려는 다른 계정에 대해 동일한 명령을 사용할 수 있습니다.

마지막으로 서비스가 실행 중인지 확인합니다.

sudo prosodyctl 상태

다음과 같은 메시지를 받아야합니다.

Prosody는 PID 1310으로 실행됩니다.

클라이언트 구성

구성은 클라이언트에 따라 다르지만 일반적으로 세부 사항은 간단합니다. 예를 들어 피진:

"기본"탭

아이디 : 요한 복음
도메인 : mydomain.cu
자원: PC 후안

"고급"탭

연결 보안 : 가능하면 암호화 사용
연결 포트 : 5222
서버에 연결 : myserver.mydomain.cu

NOTES

더 많은 정보를 찾을 수 있습니다 (Cyrus SASL 사용 포함). LDAP 및 항목을 만드는 방법 DNS)에서 이 문서는 데비안 위키에서.

Un usuario comenta via DesdeLinux que para detener realmente el servicio ha necesitado ejecutar pkill lua5.1


18 코멘트, 당신의 것을 남겨주세요

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   KZKG ^ 가아라

    나는 그것을 좋아한다 ... 한 번에 내가 ejabberd 또는이 Prosody를 위해 OpenFire를 변경하는지 보자 🙂

    1.    엘라 브

      나는 이미 VirtualBox에서 정확하게 테스트를하고 있습니다. 왜냐하면 우리가 당신을 기다리면 내 아들 .. ¬¬

      1.    KZKG ^ 가아라

        ^-^ U ... 헤헤 ...
        이제 호스팅 공급자에게 'jabber'를 제거하는 데 필요한 DNS 레코드에 대해 묻는 티켓을 보냅니다 .______

        1.    엘라 브

          괜찮아. Jabber, IRC, Facebook, Gtalk, 방법과 위치는 모르지만 연결 ..

  2.   에르네스토 인판 테

    Prosody의 LDAP와의 통합은 어떻게 이루어 집니까? 그리고 BD?

  3.   썩은 87

    지식이 부족한 분들을위한 몇 장의 이미지는 나쁘지 않을 것입니다 ^^

  4.   사냥꾼

    집에는 운율이 있고 테스트를 위해 설치했으며 단순성 때문에 좋아했습니다. 서버를 중지 할 때 세부 사항은 실제로 중지하기 위해 pkill lua5.1을 수행해야합니다.

  5.   오로스Zx

    와, 흥미 롭군요. 다른 사람들이 GUI를 통해 사용자를 생성 할 수있는 방법이 있습니까 (웹일 수 있음)? 그것을 사용할 도메인을 얻는 방법은 무엇입니까? 😛

    1.    사냥꾼

      구성에서 등록을 활성화하고 서버에서 계정을 만드는 옵션을 선택하여 등록 된 동일한 클라이언트 jabber에서 등록 할 수 있습니다.

      허용_등록 = 참;

  6.   페란

    슬랙웨어, 훌륭한 튜토리얼의 프로 소디 패키지를 찾고 있습니다. 건배

  7.   아르투로 몰리나

    사용자가 인증 할 수 있는지 어떻게 확인할 수 있습니까? 또는 사용자가 서버에 연결되어 있는지 어떻게 알 수 있습니까?

  8.  

    성공했습니다 😀 올바르게 설치하고 구성 할 수있었습니다. 한 PC에 서버를 설치하고 클라이언트는 다른 PC입니다. 하지만 문제가 있습니다. 클라이언트가 도메인 (medellinlibre.org)이있는 내 서버가 LOCAL임을 알기 위해. 호스트 파일 IPDELSERVIDOR medellinlibre.org에 추가해야합니다. 그렇지 않은 경우 명백한 이유로 연결되지 않습니다. 내 질문은 네트워크의 모든 PC가 기본적으로이 도메인이 주어진 IP의 LAN에 있음을 알 수있는 방법이 없는지 여부입니다.

    1.    (주)

      같은 의심! 마지막에 알고 계셨습니까 ?? 나는 운율로 시작합니다 ...

    2.    사냥꾼

      매우 간단합니다. pidgin에서 고급 옵션에서 서버의 IP를 지정하고 다른 옵션은 LAN에 DNS를 마운트하는 것입니다.

  9.   시스코

    이 주제는 매우 흥미롭고 Prosody가 웹 소켓을 지원하는지 알고 싶었습니다. 저는 xmpp 웹 클라이언트를 만드는 데 관심이 있습니다.

    1.   

      당신은 이것을 볼 수 있습니다. http://code.google.com/p/xmppwebchat/

  10.   이누 카제

    안녕하세요, 국내 인트라넷 전용으로 구성된 자습서 버전이 없습니까? 도메인이나 이와 유사한 것은 없습니다. 간신히 Liñux를 사용하는 한 대의 컴퓨터 만 서버가되고 다른 컴퓨터는 여기에 연결됩니다.

    pidgin을 통해 인트라넷 컴퓨터간에 채팅을 할 수 있습니다.