Instala tu propio servidor Jabber con OpenFire en Ubuntu Linux

OpenFire

Actualizado 04/05/2011

Este es mi primer post en el blog, como me manejo en blogs y foros de técnicos estoy acostumbrado a trabajar con administradores y usuarios avanzados de GNU/Linux, la verdad me cuesta mucho explicar cosas sencillas como usar la terminal, crear un script bash y otra tareas que poco a poco el usuario de GNU/Linux esta cambiando por las aplicaciones con interfaz grafica, estoy haciendo mi mayor esfuerzo para que me entiendan  y puedan realizar los pasos.

Introducción a Jabber

Jabber es un protocolo abierto basado en el estándar XML para el intercambio en tiempo real de mensajes y presencia entre dos puntos en Internet. La principal aplicación de la tecnología Jabber es una extensible plataforma de mensajería y una red de MI (Mensajería Instantánea) que ofrece una funcionalidad similar a la de otros sistemas como AIM, ICQ, MSN Messenger y Yahoo.

Se destaca porque es distinto:
* Es abierto — el protocolo de Jabber es gratuito, abierto, público y comprensible. Además, existen múltiples implementaciones de código abierto para Servidores Jabber (consulta la lista de servidores públicos) como numerosos clientes y librerías de desarrollo.
* Es extensible — usando el potencial del lenguaje XML, cualquiera puede extender el protocolo de Jabber para una funcionalidad personalizada. Claro que para mantener la interoperatibilidad, las extensiones comunes son controladas por la Jabber Software Foundation.
* Es descentralizado — cualquiera puede montar su propio servidor de Jabber, además está libre de patentes y no depende de ninguna empresa de modo que se puede usar ahora y siempre con total libertad.
* Es seguro — Cualquier servidor de Jabber puede ser aislado de la red pública Jabber, cualquier implementación del servidor usa SSL para las comunicaciones cliente-servidor y numerosos clientes soportan PGP-GPG para encriptar las comunicaciones de cliente a cliente. Además, está en desarrollo una seguridad más robusta gracias al uso de SASL y contraseñas de sesión.
Jabber puede crear confusión en un principio respecto a otros sistemas de mensajería instantánea porque habitualmente, en otros IM, se identifica el cliente con el protocolo. En el caso de Jabber esto no es así: existe un protocolo y cada uno de los clientes es una implementación.

Texto Original en: JabberES

Servidor

Para crear tu propio sistema de mensajería instantánea, necesitamos una aplicación que funcione de servidor.
OpenFire es un servidor jabber con administrador por web (como un router o modem), escrito en java y es GPL, es decir OpenSource.

Ingredientes:

Apache2 + MySQL + PHP5 y PHPMyAdmin

Para instalar estas aplicaciones tipeamos en una terminal con permisos para usar sudo

Nota: los # son comentarios, no se ejecutan, son referencias para una mejor comprensión.

# Instalamos Apache2 + MySQL5.1 + PHP5 y phpmyadmin
sudo apt-get -y install apache2
sudo apt-get -y install mysql-server mysql-common
sudo apt-get -y install php5 php5-cli
sudo apt-get -y install phpmyadmin
# Para que Apache2 mustre el Error de Host
sudo echo "ServerName localhost" >> /etc/apache2/httpd.conf
# Para que Apache2 Mustre Bien los Asentos y Tildes
sudo echo "AddDefaultCharset ISO-8859-1" >> /etc/apache2/conf.d/charset
# Reseteamos Apache2
sudo /etc/init.d/apache2 restart
ya tenemos las aplicaciones mínimas, ahora a instalar OpenFire:

# Instalmos Java
sudo apt-get install sun-java6-bin
# Configuramos Java como Interprete Principal
sudo update-alternatives --config java
# Creamos el Usuario para OpenFire
sudo adduser openfire
# Descargamos OpenFire en Paquete DEB
wget -c http://www.igniterealtime.org/downloads/download-landing.jsp?file=openfire/openfire_3.7.0_all.deb
# Instalamos OpenFire
sudo dpkg -i openfire_3.7.0_all.deb
# Copiamos Contenido Basico para OpenFire y MySQL
sudo cp /usr/share/openfire/resources/database/openfire_mysql.sql $HOME/
sudo chmod 777 openfire_mysql.sql
# Creamos Base de Datos e Importamos Comtenido Basico en MySQL
mysqladmin -h localhost -u root -p create openfire
mysql -h localhost -u root -p openfire < openfire_mysql.sql
# Creamos Usuario y Asignamos Permisos en MySQL
Linea="CREATE USER openfire@localhost IDENTIFIED BY 'CONTRASEÑA';"
echo "$Linea" | mysql -h localhost -u root -p
Linea="GRANT ALL ON openfire.* TO openfire@localhost;"
echo "$Linea" | mysql -h localhost -u root -p
# Eliminamos Archivos Residuales
rm openfire_3.7.0_all.deb
rm openfire_mysql.sql
# Resetamos OpenFire
sudo /etc/init.d/openfire restart
# Abrimos Administrador Web
firefox http://127.0.0.1:9090

recordar que el panel de administrador es:

http://127.0.0.1:9090

http://TUIP:9090

http://TUDOMINIO:9090

Si por alguna razón no puede logearse como admin luego de configurar por web, resetear openfire como al instalarlo y probar, si el problema persiste podemos cambiar la contraseña con phpmyadmin buscando la tabla user en la base openfire.

Para ver capturas de OpenFire ingresen aqui hay de todas la funciones e incluso de plugins.

Gracias por sus Comentarios, Si hay algún ERROR es producto de su imaginación, jajajaj


Categorías

Linux, Ubuntu

Luciano Lagassa

Administrador de Infraestructura y Seguridad Informática. Electrónico y Electricista Aficionado. Programador de Soluciones (PHP, Python, Gambas, VB, Bash). Usuario de GNU/Linux (Ubuntu, Centos, Arch). Todo es posible. Lo imposible simplemente me lleva más tiempo.

23 comentarios

  1.   Carlos dijo

    Excelente tuto Luciano!!!!
    estaba buscando instalar openfire y con tu tuto me resulto mas que sencillo.

    gracias.

  2.   Santiago dijo

    Luciano, excelente aporte!!!. Seguí paso a paso tus instrucciones y creo que lo logré!! (aunque no me dejó configurar Apache2 para que muestre el error del host y que muestre bien los tildes) … pero no puedo loguearme. No entiendo que significa “si el problema persiste podemos cambiar la contraseña con phpmyadmin buscando la tabla user en la base openfire”. Me podras ayudar??
    Gracias!!!.

    1.    Luciano Lagassa dijo

      hola, perdn que no te respondi antes pero no me llego la notificación de tu comentario, si no podes logearte te recomiendo que reinicie el servicio y si el problema persiste, probar comabiando el pass de admin en la base de datos de openfire, puede ser mediante phpmyadmin. cualquier cosa me avisas y te ayudo.

  3.   shinjikari dijo

    “y es GPL, es decir OpenSource.”

    Sería mejro decir “y es GPL, es decir, Software Libre”

    No es lo mismo 😀

    1.    Luciano Lagassa dijo

      la verdad no quiero comenzar un discusión sin sentido porque el opensource incluye a muchas y diferentes licencias como la de GNU, apache, mit, mozilla y muchas mas, se utilizo la palabra opensource para especificar que es de código abierto y que puede contener y mix de licencias. espero que se entienda.
      además creo que seria mas productivo ayudar que perder el tiempo en discusiones tontas.
      muchas gracias
      y pido disculpas si este comentario insulta a alguna persona.

  4.   Rober dijo

    Sin duda un gran tuto. Funcionó a la primera la instalación del openfire además configurado con LDAP. PERFECTO!!! Mil gracias.

  5.   Arian dijo

    Hola quisiera que me ayudaran pues ya he buscado bastante y se me agotaron las ideas, tengo instalado LDAP y Openfire.
    Openfire se autentica bien con LDAP, pero al agregar contactos, no llega la suscripción, y tampoco los mensajes que se envían, y no se ven conectados, unos a otros, cuando en la lista de cesiones y usuarios del openfire, si se ven.
    Si alguien tiene una sugerencia que darme. Desde ya gracias…

  6.   c4m4l30n dijo

    Exelente Tuto, gracias Luciano, estaba en un remolino y me aclaraste muchas dudas
    Bytes
    c4m4l30n

  7.   Marcelo Ruiz Diaz dijo

    Muy bueno el tutoría, funciono muy bien

  8.   juan dijo

    bueno la verdad lo instale y todo bien, pero el problema surgio luego nunca pude entrar al panel de administracion siempre me salia usuario o contraseña incorrecta.

    si alguien sabe como solucionarlo le agradeceria mucho.

  9.   Mirkovich dijo

    Grande Luciano… me parece que esta bien detallado el montaje del servidor Jabber… pues me queda hecharlo adelante… Gracias por matar la ignorancia….

  10.   Oriol dijo

    Intento instalar java, pero me dice lo siguiente:
    E: No se ha podido localizar el paquete sun-java6-bin

    Es que me falta algun repositorio? Gracias!

    1.    Luciano Lagassa dijo

      hola, tenes que activar los repos “restricted” y “multiverse” en el /etc/apt/sources.list, porque hay cosas que en ubuntu no estan activas. si usas entorno grafico en origenes de software tambien se puede.

  11.   pedro dijo

    me quede en descargar openfire

    1.    Luciano Lagassa dijo

      hola, como les comento siempre sigan la guia al pie de la letra y si ven que se traban repasen, siempre esta san google por las dudas.

      1.    omar dijo

        todo ok… 😉 (buena guia)
        pero al momento de configurar el usuario se me movio el mouse y no supe que escribi de nombre de usuario y contraseña… 🙁 y le di enter…
        el problema es que reinstale y ahora me sale lo siguiente:

        omar@omar-che:~$ echo “$Linea” | mysql -h localhost -u root -p
        Enter password:
        ERROR 1396 (HY000) at line 1: Operation CREATE USER failed for ‘openfire’@’localhost’

  12.   katya dijo

    necesito ayuda, al descargar openfire parece como que si se descargo pero al momento de instalarlo me marca que se encontraron errores, la verdad me urge acabar un proyecto de la universidad, agradeceria tu ayuda.

  13.   rayner dijo

    tengo el openfire 3.7 trabanado ok pero olvide la contraseña del usuario admin y no puedo acceder a la consola para crear mas usuarios
    necesito saber como cambiarle la contraseña
    (Yo uso la base de datos del openfire )

  14.   omar dijo

    Me paso lo mismo que al comentario de arriba solo que desinstale el openfire con lo siguiente…

    Terminate the running application:
    sudo /etc/init.d/openfire stop

    Remove it from services:
    sudo update-rc.d -f openfire remove

    Remove the start-up file:
    sudo rm /etc/init.d/openfire

    Delete all the files located at /opt/openfire :
    sudo rm -rf /opt/openfire

    And finally, if you have used a mysql database for the application, you can remove the table used.

    y al volver a instalar me sale lo siguiente…

    omar@omar-che:~$ echo “$Linea” | mysql -h localhost -u root -p
    Enter password:
    ERROR 1396 (HY000) at line 1: Operation CREATE USER failed for ‘openfire’@’localhost’

    🙁 🙁 ayuda por favor…

  15.   maguve dijo

    gano OpenFire.. no pude con el

  16.   Martin Adelaido Hdez L dijo

    Excelente.. funciona bien con Linuxmint 11
    Gracias..

  17.   Streuhund dijo

    Cuando introduzco estos dos comandos (sudo echo “ServerName localhost” >> /etc/apache2/httpd.conf y sudo echo “AddDefaultCharset ISO-8859-1” >> /etc/apache2/conf.d/charset) en la terminal, me devuelve este mensaje:

    bash: /etc/apache2/httpd.conf: Permiso denegado

    ¿Alguna idea de cómo solucionarlo? ]:

  18.   Gabriel GRG dijo

    Oye amigo, tengo el Openfire instalado y ya con varios usuarios creados en un Windows Server 2008 pero me gustaria migrar a Linux, sera que puedo pasar las configuraciones y contactos ya creados del Win2008 al Linux! PD: uso la base de datos interna, que tan recomendable o no es usarla de este modo, son alrededor de 200 usuarios.
    Gracias!

Escribe un comentario