En este tutorial veremos como instalar sendos servidores jabber en distintas redes de tal forma que se comuniquen entre ellos y los usuarios se puedan conectar entre si. Este tutorial es de la autoria de Armando Almeida Gómez (AKA @Armando) y Jean Veliz.
Requisitos
– La instalación será realizada sobre proxmox 6.
– Se utilizará un container(ct) con debian10.
– Se empleará la instalación de openfire actual.
Creando el CT y preparando condiciones
Crearemos un nuevo CT en el Proxmox y usaremos para crearlo una plantilla de Debian 10. Se configura el container con la opcion desmarcada de unprivileg container y en features se le pone nesting para poder coger la hora de la red. Luego en Proxmox se le ponen las direcciones IP. Corremos nuestro CT y lo actualizamos.
apt update apt upgrade
Instalamos java antes de instalar el openfire
apt install default-jre-headless
Como necesitamos comunicacion entre 2 server debemos tener la hora exacta en ambos. Reconfiguramos la zona horaria. La hora que usara sera la de nuestro Proxmox asi que debe tener la hora exacta.
dpkg-reconfigure tzdata
Configuramos el acceso ssh
nano /etc/ssh/sshd_config Debe quedar así: ListenAddress 0.0.0.0 PermitRootLogin yes
El siguiente paso lo haremos en el Proxmox ya que si el mismo tiene la hora bien sus virtuales tambien. Instalamos el NTP
apt install ntp
Configuramos nuestro NTP para sincronizar la hora desde un NTP externo. La configuración debe quedar así:
nano /etc/ntp.conf driftfile /var/lib/ntp/ntp.drift # Leap seconds definition provided by tzdata leapfile /usr/share/zoneinfo/leap-seconds.list # Enable this if you want statistics to be logged. #statsdir /var/log/ntpstats/ statistics loopstats peerstats clockstats filegen loopstats file loopstats type day enable filegen peerstats file peerstats type day enable filegen clockstats file clockstats type day enable # You do need to talk to an NTP server or two (or three). server 192.168.0.1 Donde 192.168.0.1 es la ip de mi server NTP
Se ejecuta date (para ver si la hora y fecha están correctas)
Instalando OpenFire
Descargamos el instalador de openfire y lo subimos al CT y lo pondremos en el directorio opt
Vamos al directorio donde copiamos el instalador. cd /opt/ Instalamos dpkg -i openfire_4.x.x_all.deb
Una vez instalado entramos desde el navegador a la IP donde lo instalamos por el puerto 9090 y concluimos la instalación de la forma habitual. Ahora pasemos al objetivo principal del tutorial.
Comunicación entre servidores openfire
Condiciones de partida:
Usaremos la base de datos interna por defecto (no usaremos LDAP ni base de datos externa) para este tutorial, para concentrarnos en las opciones que debemos utilizar de la forma más simple.
Los servidores openfire para comunicarse entre ellos deben poder encontrarse mediante ping a sus nombres dns, ejemplo: si mi servidor se llama serverg.afh.cu, debo poder darle ping desde el container del openfire. Si no resuelven su dirección a través de DNS esta opción de comunicación entre servidores no funciona.
Opciones a emplear para lograr nuestro objetivo:
En cada red deben crear una nueva zona DNS que sea común para todos los establecimientos y agregar los host segun sea el caso
En la figura vemos que ademas de la zona DNS principal prado.cu he adicionado otra zona DNS adicional afh.cu son los host de mis 3 servidores en este caso
Al instalar el openfire en la configuracion general el nombre de mi servidor debe coincidir con el nombre del host registrado en la zona DNS afh.cu (en mi caso)
Al empezar a agregar usuarios de las dependencias fuera de la nuestra inmediatamente empiezan a trabajar las sesiones entre servidores.
Los usuarios deben adicionarse a través del nombre completo en el servidor (ejemplo: [email protected])
El detalle negativo consiste en que el usuario al que se le envía la solicitud debe aceptar la misma para que empiece a salir en nuestro roster; si queremos evitar esto podemos editar la suscripción poniendole a ambos la opción both, tal y como se ve en la figura
Para cerrar el tutorial les dejo este tips:
Si tenemos pocos usuarios y vamos a instalar con la opción más simple de usuarios en una base de datos interna el plugin justmarried nos puede ser de gran utilidad para completar las listas de usuario creando un usuario inicial con su roster de otras dependencias y clonandolo cambiando solamente el nombre de usuario, lo cual nos aceleraria el proceso de creación de los mismos.
Espero les ayude con su trabajo diario
Mozilla/5.0 (Linux; Android 9; Redmi Note 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Mobile Safari/537.36
@armando_kerio, sorry!
Mozilla/5.0 (Linux; Android 9; Redmi Note 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Mobile Safari/537.36
Búscame en Telegram, @armamdo_kerio
Mozilla/5.0 (Linux; Android 9; Redmi Note 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Mobile Safari/537.36
Joe Luis. Para que se vean son indispensables dos requisitos, tienes que habilitar en cada lugar una zona DNS común extra (igual en cada lugar) y como segundo requisito desde cada openfire se debe dar pin por DNS a los otros servidores (por ip no funciona)
Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0
Hola administradores, necesito ayuda. tego instalado el openfre en un servidor windows y lo tengo configurado que busque los usurios en mi active diretory. Internamente puedo mandar mensajes, el problema es comunicarme con los servidores chat de otras unidades dentro de la misma empresa.
Tengo en las zonas directa e inversa los host y punteros hacia los chat con los nombres y las ip correctamente escritos. Ellos tambien me tienen agregado correctamente. Tengo tambien el hot con su puntero del servidor openfire independiente al container dentr de las zonas. Dentro de la consola del openfire tengo en la seccion de servidor a servidor todos servidores de las unidades habilitados en la lista blanca. Puedo hacer ping a los dns, pero no puedo agregar ningun usuario, al hacerlo, le doy click en la opcion de buscar usuario y me da error de comunicacion : el servidor no ha retornado resultados de su busqueda.Que puede ser? Ayuda por favor
Mozilla/5.0 (Linux; Android 9; Redmi Note 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Mobile Safari/537.36
Cambia lo que sea necesario por el bien del artículo!
Mozilla/5.0 (Linux; Android 6.0.1; SM-G532M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Mobile Safari/537.36
Tip: si usas un CT de proxmox no es necesario instalar/configurar NTP en el CT, pues el CT coje la hora del host, o sea configuras solo tzdata y si te aseguras que proxmox usé un server de tiempo, con eso basta.
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0
Tienes toda la razon, pero bueno tengo que esperar que armando me de su bendicion para cualquier cambio del tutorial