Instalación y Configuración de Openfire en Ubuntu 18.04 LTS

Como parte de la actualización de los servidores de la LAN que administro a las versiones LTS en este caso Ubuntu LTS 18.04 siempre hay alguno que sirve de experimento de la instalación desde el ISO en lugar de esperar la actualización propuesta desde los repositorios que llegara el próximo 1 de agosto después del lanzamiento de la versión 18.04.1; Esta vez le toco al servidor en el que corre el servicio de mensajería sobre Openfire.

Openfire es un servidor de mensajería instantánea (IM) y chat que implementa el protocolo XMPP. Este documento explica como instalarlo y configurarlo de forma básica según las necesidades de nuestra empresa.

Voy a saltarme la instalación de Ubuntu porque ya en internet hay muchos así que googleIT o busque en youtube, solo voy a dar algunos datos; como muchos de los tutoriales en sysadminsdecuba vamos a usar PROXMOX VE como base:

  • si van a crear un CT par 200 usuarios o menos RAM: 2GB , CPU: 1 core, HDD: 15 GB
  • como dije voy a instalar desde el ISO así que creo una VM KVM con las mismas características recuerden que siempre pueden mejorarlas.

Para saber más de sus características, configuración u otras informaciones, visite el sitio web de Openfire.
La instalación principal va a estar centrada en Ubuntu LTS  pero voy a incluir cualquier especificación para otras distros y OS como Windows para aquellos obligados a sufrir sin posibilidades de libertad. 😀

Requerimientos

Instalación de ubuntu server 18.04 con permisos de root

Convenciones

# – requiere que los comandos de linux dados sean ejecutados con privilegios de root ya sea directamente como usuario root o mediante el uso del comando sudo

$ – requiere que los comandos de linux dados sean ejecutados como un usuario regular no privilegiado

Descargando Openfire

Vamos a descargar openfire de aqui (la versión cuando hago el manual es 4.2.3) pero para el manual voy a usar x.y.z  porque puede servir para cualquier versión, hay varias opciones de descarga Windows, linux y mac, dentro de las opciones de linux tenemos rpm con jre o no incluido, un deb sin jre y un tar.gz para cualquiera de las variantes de GNU\Linux; hasta hace un tiempo usaba esta ultima porque el deb daba problemas en Ubuntu pero ya eso esta resuelto así que usaremos la variante mas como da es decir archivo deb.

Les dio la pagina de descarga porque puede que la versión que en este momento no coincida con la de la creación del manual y trato que sea lo mas genérico posible siempre puedes usar curl o wget para descargar la versión desde el mismo server.

Instalando MariaDb para guardar los datos de Openfire

Para guardar los Datos de Openfire puedes usar la BD interna de pero en caso de re-instalación pierdes todos los datos de los usuarios contactos conversaciones etc, también como buena practica monto esa BD en un CT externo que tengo optimizado para mysql, en este caso vamos a usar el mismo CT donde estoy instalando Openfire.

Una vez instalada mariaDB vamos a hacer algunos cambios en la configuración del servicio usando:

Estas son las opciones que uso

  • Enter current password for root (enter for none): Oprima Enter
  • Set root password? [Y/n]: Y
  • New password: Ponemos la contraseña que queramos
  • Re-enter new password: Repetimos la contraseña
  • Remove anonymous users? [Y/n]: Y
  • Disallow root login remotely? [Y/n]: Y
  • Remove test database and access to it? [Y/n]: Y
  • Reload privilege tables now? [Y/n]: Y

Ahora ya podemos acceder como root para crear la BD para Openfire:

Una vez dentro creamos el usuario y la BD para openfire:

Como les comentaba antes la siguiente configuración la aplico en Ubuntu LTS pero es valida también para Debian, openfire necesita jre, yo uso openjdk ya que de los repositorios de Ubuntu eliminaron las versiones sun-java* por problemas de compatibilidad además apostaron por la versión libre pero si tienen algún problema con eso pueden buscarla e instalarla; la versión en la fecha de creación del manual es la openjdk-11-jre, pero da problemas. si quieren puede probar…

Una vez instalada la versión de jre o en cualquier momento que lo necesitemos podemos verificar la versión de java que tenemos

Instalación

Para GNU\Linux hay 4 variantes, una para RedHat con jre incluida una para distribuciones basadas en Debian y un tar.gz para todas las variantes Unix esta última lleva un poco más de trabajo al instalar y les explico a continuación.

Para la instalación del .deb usamos el comando para instalaciones manuales en Debian/Ubuntu distros

Instalando desde el paquete comprimido

Para la instalación con el comprimido seguimos los siguientes pasos descomprimir el tar.gz del Openfire que descargamos y en el proceso lo movemos a /opt

Crea el vínculo simbólico del Openfire en init.d para que lo puedas ejecutar como un demonio

Cambiamos los permisos de ejecución para poder usar los comandos para iniciar reiniciar y detener el demonio

Por cualquiera de las 2 variantes que usemos en necesario poner Openfire como servicio por defecto para hacerlo usamos

Si tienes tu servidor detras de un firewall ten en cuenta abrir los siguientes puertos para que Openfire pueda funcionar

  • Puerto 9090: para la interfaz web.
  • Puerto 9091: par la interfaz web por SSL.
  • Puerto 5222: Puerto principal usado para la comunicacion client/server de Openfire.
  • puerto 7777: usado para la transferencia de archivos.
  • Port 7443: used for unsecured Http client connections.
  • Port 7070: used for secure Http client connections.
  • Port 3478, 3479: used by the STUN Service for entities behind a NAT.
Configuración del Servidor para su puesta en marcha

Ya tenemos instalado Openfire y todas las dependencias necesarias ahora comencemos con la configuración básica de nuestro servidor para eso vamos a acceder a la consola de administración del Openfire y terminar la instalación de nuestro servidor, con el navegador de nuestra preferencia usando http://IPdelServidor:9090:

Las primeras pantallas no necesitan de mucha explicación, la primera es en la que selecciona el idioma por defecto:

Usa el del navegador(lo propone por defecto), pero en nuestro caso seleccionamos Español(es), o a su gusto:

En el siguiente paso tenemos la configuración del servidor donde definimos el dominio del servidor y los puertos para la consola de administración mediante http y https.

El dominio de prueba que he puesto hace que los usuarios coincidan con [email protected], lo hago para diferenciar servicios en mi red pero pueden quitarle «jabber.» y coincide con su dominio, en nuestro caso [email protected].

Configuración de la fuente da datos

La próxima vista es donde se configura la fuente de datos es decir donde hacemos la elección del tipo de BD que vamos a utilizar para guardar la información de nuestros usuarios, yo uso conexión estándar, por qué? bueno en caso de reinstalacion o actualización del servicio tendremos guardados todos los datos de nuestros usuarios(contactos, avatar, datos generales) en una BD externa.

Voy a usar mysql pero puedes seleccionar cualquiera de las opciones según las necesidades y los gustos, la configuración queda como se ve a continuación:

La configuración es básica solamente tenemos que cambiar las opciones [hostname] y [database-name] por el nombre o dirección IP del servidor de datos y el nombre de la BD que vamos a usar (en una futura instalación mantenemos los datos y todas las configuraciones de los usuarios se mantendrán). En resumen lo que debemos cambiar es mysqlserver:puerto/Basededatos, usuario y contraseña para la conexión a la BD.

Seteos de Perfil

En el siguiente paso definimos el sistema de usuarios y grupos en nuestro servidor. En mi caso uso LDAP pues mis usuarios se generaran a partir de los que tengo creado en el directorio activo, esta opción es muy cómoda pues la integración te permite tener los usuarios automáticamente que los crees en el AD, puedes usar la opción por defecto en la que tendrás que crear los usuarios que necesite el sistema.

Una vez seleccionado LDAP debemos configurar la conexión los datos a llenar son bastante intuitivos para un sysadmin.

Esta configuración podemos hacerla de varias formas, la que muestro es la que más me gusta y más resultados me ha dado; el tipo de servidor podemos encontrar desde Directorio activo (mi selección) y openldap que son los más populares hasta cualquier tipo de servidor que use LDAP en cualquiera de sus variantes; en el servidor podemos usar el nombre de nuestro servidor o la dirección IP del mismo; el DN Base es el de nuestro dominio (sysadminsdecuba.com); en cuanto al DN del usuario me ha dado memos problemas la forma usuario@dominio como pueden ver en la imagen yo uso esa ([email protected]) aunque también pueden usar la ruta en LDAP que tiene el usuario prometeus (cn=prometeus,cn=Users,dc=sysadminsdecuba,dc=com) y finalmente la contraseña del usuario que usaremos para la conexión.

Una vez terminada la configuración puede probarla con «Testear Seteos» en la parte inferior derecha de la pantalla(pueden verlo en la imagen anterior).

Los próximos 2 pasos pueden darle «salvar y continuar» manteniendo la configuración que proponen o pueden ponerse creativos…

Por ultimo definimos los usuarios de nuestro directorio activo que serán administradores del servidor de Openfire, necesitamos al menos 1 pero les recomiendo agregar los usuarios que necesiten en este paso muchas veces hacerlo después da problemas.

Con los usuarios que serán administradores definidos hemos terminado la instalación de nuestro servidor con su configuración inicial y esta listo para usarse.

Podemos acceder a la Consola de Administración de Openfire usando uno de los usuarios definidos como administrador en el paso anterior. Sin hacer nada mas los usuarios que tengamos en nuestro directorio activo pueden comenzar a usar el servicio.

El articulo de hizo mas largo de lo que pensé que seria, he agregado varios términos al glosario en el proceso y finalmente he decidido dejar las configuraciones que hago en la Consola de Administración para un próximo articulo. Acá les dejo los vínculos a la serie completa demás para que sirva al resto como muestra de los que les digo cuando crean artículos múltiples:

De Esta Serie:

Instalación y Configuración de Openfire en Ubuntu 18.04 LTS (Esta Publicacion)
Openfire: Configuraciones Básicas y plugins

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 4.8 / 5. Recuento de votos: 6

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Sobre Rafael L. Salgueiro 12 artículos
Administrador de redes y sistemas. Melómano, hedonista Usuario de GNU/Linux, Linux-User: #418573. Amante de las tecnologías en general.

12 comentarios

  1. Firefox 80.0 Firefox 80.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0

    No puedo conectar la base de datos con el openfire. Me da error y cambie los dabase y el ipserver con la contraseña del usuario creado en la BD.


  2. Warning: Undefined array key 1 in /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent-detect-os.php on line 668
    Firefox 80.0 Firefox 80.0 Ubuntu x64 Ubuntu x64
    Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0

    Tengo instalado un openfire, y me esta dando error con la conexion de los clientes, de momento los deja iniciar sesion y en otros no, alguien me puede ayudar?

  3. Google Chrome 84.0.4147.89 Google Chrome 84.0.4147.89 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36

    Buenasmi gente se que llego tarde pero teno una duda,
    Necesito comunicatr dos servidores de openfire ambos en linux pero me lanza un error de los cetificados.
    Como le digo a mi servvidor que acpte los certificdos si verificar?

  4. Firefox 74.0 Firefox 74.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0

    Hermano necesito ayuda para conectar dos servidores jabber. Ya habilité los puertos 5222, 5223, 5269 y nada. estuve buscando un poco y pude ver que hay que hacer algo con el dns, si pudieras hacer un artículo como este de como conectar 2 servidores jabber entre si paso por paso seria ideal. Gracias de antemano

  5. Firefox 70.0 Firefox 70.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0

    Yo instale la versión 4.4.4 y funciona estupendo, solo no logro encontrar como habilitar el puerto 9091 solo para la administración web…

  6. Firefox 70.0 Firefox 70.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0

    Instalé perfectamente openfire 4.4.4 en debian 10 pero tengo problemas con la comunicación entre servidores, que podría ser; pensé que era la version de java pero no creo porque instale openjdk-8 y 11 y lo mismo

  7. Firefox 67.0 Firefox 67.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0

    Tengo un problema cuando voy a configurar la autenticacion con el AD me da error, me parece que es porque mi AD en samba es por ssl y conado configuro el openfire por ssl la autenticacion me sigue dando erros, hay alguna forma de importar desde consola el certificado de mi Active directori.


  8. Warning: Undefined array key 1 in /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent-detect-os.php on line 668
    Firefox 65.0 Firefox 65.0 Ubuntu x64 Ubuntu x64
    Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:65.0) Gecko/20100101 Firefox/65.0

    toda la configuracion que haces en la Web va a un archivo de configuracion openfire.xml en la raiz de la carpeta del openfire pero aho tiene algunas cosas encriptadas como usuario y contraseña.

  9. Google Chrome 72.0.3626.109 Google Chrome 72.0.3626.109 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36

    Saludos muy bueno el contenido… pero tengo una duda: como podria hacer para configurar el OPENFIRE sin entrar por el navegador? habría alguna forma de designar todo los detalles configurables por medio del terminal de Ubuntu?

  10. Google Chrome 71.0.3578.98 Google Chrome 71.0.3578.98 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36

    Hola Rafael, muy buen post y me gustaria hacer una pregunta.
    Yo estoy dentras de un proxy para acceder a internet, mi pregunta es ¿como configuras el proxy con autenticación para que openfire logre busscar actualizaciones y enre otras cosas? En otros sistemas es muy sencillo hacer esto en el achivo de configuración, en el caso de openfire no logro hacer esto y la opción que tienes en la configuración del servidor vía web solo puedes definir el proxy y el puerto pero no el user y pass para autenticarte.

    Saludos y esperando su respuesta
    Gracias


    • Warning: Undefined array key 1 in /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent-detect-os.php on line 668
      Firefox 64.0 Firefox 64.0 Ubuntu x64 Ubuntu x64
      Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:64.0) Gecko/20100101 Firefox/64.0

      yo por lo general creo reglas con los servidores sus IP su MAC ,los puertos de salida y la pagina destino pero creo que con http://usuario:clave@server:puerto debe funcionar.


  11. Warning: Undefined array key 1 in /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent-detect-os.php on line 668
    Firefox 61.0 Firefox 61.0 Ubuntu x64 Ubuntu x64
    Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0

    Recientemente monte un Openfire actual (hace un mes la versión del sitio) en Ubuntu 16.04.4 LTS y me dio un palo con la BD de mariadb.

    El tema es que la BD necesita encoding UTF-8 General-ci si mal no recuerdo…

    Para si esto muerde a alguno, más…

    Chaum

Responder a Yusimy Cancelar la respuesta

Tu dirección de correo electrónico no será publicada.


*