Activitats

Identificació dels RFC relatius al protocol XMPP

L’objectiu d’aquesta activitat és familiaritzar-se amb el format dels documents RFC, que descriuen els estàndards d’internet, i aprendre a navegar per l’estructura de documentació de l’IETF.

Descarregueu de l’IETF els RFC corresponents al protocol XMPP. Anoteu en una llista el número i el nom dels RFC actuals.

En aquestes adreces podeu consultar les especificacions de l’estàndard XMPP:

RFC 6120

RFC 6121

RFC 7622

Instal·lació i configuració un servidor de missatgeria instantània amb ejjaberd

L’objectiu d’aquesta activitat és instal·lar i configurar el servidor ejabberd de missatgeria instantània que utilitza el protocol XMPP. Com que el protocol XMPP és obert, utilitzarem dos clients diferents per a les proves: Gajim i Psi.

Realitzeu els següents passos:

  1. Instal·lació i configuració del servidor ejabberd de missatgeria instantània.
  2. Verificació del funcionament del servidor de missatgeria instantània amb el client Gajim.

1. Instal·lació i configuració del servidor ejabberd de missatgeria instantània

Instal·lem ejabberd:

  1. # apt-get install ejabberd
  2. S'està llegint la llista de paquets… Fet
  3. S'està construint l'arbre de dependències
  4. S'està llegint la informació de l'estat… Fet
  5. S'instal·laran els següents paquets extres:
  6. erlang-asn1 erlang-base erlang-crypto erlang-edoc erlang-goldrush erlang-inets erlang-jiffy
  7. erlang-lager erlang-mnesia erlang-odbc erlang-p1-cache-tab erlang-p1-iconv
  8. erlang-p1-stringprep erlang-p1-tls erlang-p1-utils erlang-p1-xml erlang-p1-yaml erlang-p1-zlib
  9. erlang-proper erlang-public-key erlang-runtime-tools erlang-ssl erlang-syntax-tools
  10. erlang-xmerl libodbc1 libsctp1
  11. Paquets suggerits:
  12. apparmor apparmor-utils libunix-syslog-perl yamllint ejabberd-contrib erlang-luerl
  13. erlang-p1-oauth2 erlang-p1-mysql erlang-p1-pam erlang-p1-pgsql erlang-p1-sip erlang-p1-stun
  14. erlang-p1-sqlite3 erlang-redis-client erlang erlang-manpages erlang-doc erlang-tools libmyodbc
  15. odbc-postgresql tdsodbc unixodbc-bin lksctp-tools
  16. S'instal·laran els paquets NOUS següents:
  17. ejabberd erlang-asn1 erlang-base erlang-crypto erlang-edoc erlang-goldrush erlang-inets
  18. erlang-jiffy erlang-lager erlang-mnesia erlang-odbc erlang-p1-cache-tab erlang-p1-iconv
  19. erlang-p1-stringprep erlang-p1-tls erlang-p1-utils erlang-p1-xml erlang-p1-yaml erlang-p1-zlib
  20. erlang-proper erlang-public-key erlang-runtime-tools erlang-ssl erlang-syntax-tools
  21. erlang-xmerl libodbc1 libsctp1
  22. 0 actualitzats, 27 nous a instal·lar, 0 a suprimir i 319 no actualitzats.
  23. S'ha d'obtenir 17,9 MB d'arxius.
  24. Després d'aquesta operació s'empraran 32,7 MB d'espai en disc addicional.
  25. Voleu continuar? [S/n]

Comprovem que el servei està actiu:

  1. # service ejabberd status
  2. ● ejabberd.service - A distributed, fault-tolerant Jabber/XMPP server
  3. Loaded: loaded (/lib/systemd/system/ejabberd.service; enabled; vendor preset: enabled)
  4. Active: active (running) since Wed 2019-10-02 15:46:39 CEST; 24s ago
  5. Docs: https://www.process-one.net/en/ejabberd/docs/
  6. Main PID: 1285 (beam)
  7. CGroup: /system.slice/ejabberd.service
  8. ├─1285 /usr/lib/erlang/erts-8.2.1/bin/beam -K true -P 250000 -- -root /usr/lib/erlang -
  9. ├─1303 erl_child_setup 32768
  10. ├─1308 inet_gethost 4
  11. └─1309 inet_gethost 4
  12.  
  13. oct 02 15:46:33 server.ioc.cat systemd[1]: Starting A distributed, fault-tolerant Jabber/XMPP serv
  14. oct 02 15:46:39 server.ioc.cat systemd[1]: Started A distributed, fault-tolerant Jabber/XMPP serve

Creem dos usuaris per fer les proves amb la comanda ejabberdctl register:

  1. # ejabberdctl register
  2.  
  3. Error: the command "register" requires 3 more argument.
  4.  
  5. Command Name: register
  6.  
  7. Arguments: user::binary
  8. host::binary
  9. password::binary
  10.  
  11. Returns: res::restuple
  12.  
  13. Tags: accounts
  14.  
  15. Description: Register a user
  16.  
  17. Error: the command "register" requires 3 more argument.
  18.  
  19. # ejabberdctl register usuari1 localhost usuari1
  20. User usuari1@localhost successfully registered
  21. # ejabberdctl register usuari2 localhost usuari2
  22. User usuari2@localhost successfully registered

Comprovem els ports que ha obert l’aplicació amb nmap:

  1. # nmap -A -T4 localhost
  2. nmap -A -T4 localhost
  3.  
  4. Starting Nmap 7.40 ( https://nmap.org ) at 2019-10-02 15:50 CEST
  5. Nmap scan report for localhost (127.0.0.1)
  6. Host is up (0.000014s latency).
  7. Not shown: 992 closed ports
  8. PORT STATE SERVICE VERSION
  9. 5222/tcp open jabber ejabberd (Protocol 1.0)
  10. | ssl-cert: Subject: commonName=ejabberd/organizationName=ioc.cat
  11. | Not valid before: 2019-10-02T13:46:33
  12. |_Not valid after: 2020-10-01T13:46:33
  13. |_ssl-date: ERROR: Script execution failed (use -d to debug)
  14. | xmpp-info:
  15. | Respects server name
  16. | info:
  17. | xmpp:
  18. | lang: en
  19. | version: 1.0
  20. | capabilities:
  21. | node: http://www.process-one.net/en/ejabberd/
  22. | ver: Rvmh+iIEsrdX0uAaJpdpbKmqVEI=
  23. | compression_methods:
  24. | zlib
  25. | auth_mechanisms:
  26. | X-OAUTH2
  27. | PLAIN
  28. | SCRAM-SHA-1
  29. | pre_tls:
  30. | xmpp:
  31. |
  32. | capabilities:
  33. |
  34. | features:
  35. | TLS
  36. | post_tls:
  37. | xmpp:
  38. |
  39. |_ capabilities:
  40. 5269/tcp open jabber ejabberd
  41. | xmpp-info:
  42. | Ignores server name
  43. | info:
  44. | xmpp:
  45. | version: 1.0
  46. | capabilities:
  47. | node: http://www.process-one.net/en/ejabberd/
  48. | ver: Rvmh+iIEsrdX0uAaJpdpbKmqVEI=
  49. | pre_tls:
  50. | xmpp:
  51. |
  52. | capabilities:
  53. |
  54. | features:
  55. | TLS
  56. | post_tls:
  57. | xmpp:
  58. |
  59. |_ capabilities:
  60. 5280/tcp open ssl/xmpp-bosh?
  61. | ssl-cert: Subject: commonName=ejabberd/organizationName=ioc.cat
  62. | Not valid before: 2019-10-02T13:46:33
  63. |_Not valid after: 2020-10-01T13:46:33
  64. |_ssl-date: ERROR: Script execution failed (use -d to debug)
  65. Device type: general purpose
  66. Running: Linux 3.X|4.X
  67. OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
  68. OS details: Linux 3.8 - 4.6
  69. Network Distance: 0 hops
  70. Service Info: Host: server.ioc.cat
  71.  
  72. Host script results:
  73. |_clock-skew: mean: -2m02s, deviation: 1m35s, median: -3m10s
  74.  
  75. OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
  76. Nmap done: 1 IP address (1 host up) scanned in 153.10 seconds

2. Verificació del funcionament del servidor de missatgeria instantània amb el client Gajim

Per a l’“usuari1” instal·lem el client Gajim:

  1. # apt-get install gajim
  2. S'està llegint la llista de paquets… Fet
  3. S'està construint l'arbre de dependències
  4. S'està llegint la informació de l'estat… Fet
  5. S'instal·laran els següents paquets extres:
  6. python-crypto python-nbxmpp
  7. Paquets suggerits:
  8. dvipng gstreamer0.10-plugins-ugly kwalletcli libgtkspell0 nautilus-sendto network-manager python-avahi python-gconf python-gnome2
  9. python-gnomekeyring python-gupnp-igd python-kerberos python-pycurl texlive-latex-base python-crypto-dbg python-crypto-doc
  10. S'instal·laran els paquets NOUS següents:
  11. gajim python-crypto python-nbxmpp
  12. 0 actualitzats, 3 nous a instal·lar, 0 a suprimir i 336 no actualitzats.
  13. S'ha d'obtenir 3366 kB d'arxius.
  14. Després d'aquesta operació s'empraran 15,1 MB d'espai en disc addicional.
  15. Voleu continuar? [S/n]

Iniciem l’aplicació i afegim el compte de l’usuari “usuari12 i el deixem com a estat online:

Instal·lem el segon client XMPP, Psi:

  1. # apt install psi
  2. S'està llegint la llista de paquets… Fet
  3. S'està construint l'arbre de dependències
  4. S'està llegint la informació de l'estat… Fet
  5. S'instal·laran els següents paquets extres:
  6. libminizip1 libopencore-amrnb0 libopencore-amrwb0 libqca2 libqca2-plugin-ossl libqca2-plugins libqt4-dbus libqt4-network libqt4-xml libqtcore4
  7. libqtdbus4 libqtgui4 libsox-fmt-alsa libsox-fmt-base libsox2 qdbus qt-at-spi qtchooser qtcore4-l10n sox
  8. Paquets suggerits:
  9. qt4-qtconfig libsox-fmt-all psi-translations libqca2-plugin-gnupg
  10. S'instal·laran els paquets NOUS següents:
  11. libminizip1 libopencore-amrnb0 libopencore-amrwb0 libqca2 libqca2-plugin-ossl libqca2-plugins libqt4-dbus libqt4-network libqt4-xml libqtcore4
  12. libqtdbus4 libqtgui4 libsox-fmt-alsa libsox-fmt-base libsox2 psi qdbus qt-at-spi qtchooser qtcore4-l10n sox
  13. 0 actualitzats, 21 nous a instal·lar, 0 a suprimir i 332 no actualitzats.
  14. S'ha d'obtenir 12,3 MB d'arxius.
  15. Després d'aquesta operació s'empraran 39,9 MB d'espai en disc addicional.
  16. Voleu continuar? [S/n] ^C

Iniciem l’aplicació i afegim el compte de l’usuari “usuari2”. Cancel·lem l’assistent i anem a General / Account / Setup / Add:

Des d’aquesta aplicació, a l’usuari2 li afegim un contacte:

I finalment iniciem un xat per tal de poder comunicar-nos:

Ejjaberd manté un control dels usuaris connectats així com d’altres característiques. Comprovem els usuaris connectats del del terminal, i ens indica també el client:

  1. # ejabberdctl status
  2. The node ejabberd@debian is started with status: started
  3. ejabberd 16.09 is running in that node
  4. # ejabberdctl connected_users
  5. usuari1@localhost/Gajim
  6. usuari2@localhost/debian

Instal·lació i configuració un servidor de missatgeria instantània amb OpenFire

L’objectiu d’aquesta activitat és practicar la instal·lació i configuració del servidor de missatgeria instantània OpenFire. Com a client, s’instal·larà i es configurarà Spark, que és un client XMPP de la mateixa comunitat que desenvolupa OpenFire.

Realitzeu els següents passos:

  1. Instal·lació del servidor OpenFire de missatgeria instantània.
  2. Configuració del servidor OpenFire.
  3. Verificació del funcionament del servidor de missatgeria instantània amb el client Spark.

Openfire és un altre servidor XMPP de codi obert. Segons expliquen al seu web: ”Openfire is a real time collaboration (RTC) server licensed under the Open Source Apache License. It uses the only widely adopted open protocol for instant messaging, XMPP (also called Jabber). Openfire is incredibly easy to setup and administer, but offers rock-solid security and performance”.

1. Instal·lació del servidor OpenFire de missatgeria instantània

Es pot descarregar l’OpenFiredes del navegador o directament baixar-nos el paquet .deb des del terminal si coneixem l’adreça:

  1. # wget https://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_4.2.2_all.deb -O openfire_4.2.2_all.deb
  2. --2019-10-05 12:48:21-- https://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_4.2.2_all.deb
  3. S'està resolent www.igniterealtime.org (www.igniterealtime.org)… 52.58.216.59
  4. S'està connectant a www.igniterealtime.org (www.igniterealtime.org)|52.58.216.59|:443… connectat.
  5. HTTP: s'ha enviat la petició, s'està esperant una resposta… 302
  6. Ubicació: http://download.igniterealtime.org/openfire/openfire_4.2.2_all.deb [es segueix]
  7. --2019-10-05 12:48:21-- http://download.igniterealtime.org/openfire/openfire_4.2.2_all.deb
  8. S'està resolent download.igniterealtime.org (download.igniterealtime.org)… 52.58.216.59
  9. S'està connectant a download.igniterealtime.org (download.igniterealtime.org)|52.58.216.59|:80… connectat.
  10. HTTP: s'ha enviat la petició, s'està esperant una resposta… 302 Found
  11. Ubicació: https://github.com/igniterealtime/Openfire/releases/download/v4.2.2/openfire_4.2.2_all.deb [es segueix]
  12. --2019-10-05 12:48:21-- https://github.com/igniterealtime/Openfire/releases/download/v4.2.2/openfire_4.2.2_all.deb
  13. S'està resolent github.com (github.com)… 140.82.118.4
  14. S'està connectant a github.com (github.com)|140.82.118.4|:443… connectat.
  15. HTTP: s'ha enviat la petició, s'està esperant una resposta… 302 Found
  16. Ubicació: https://github-production-release-asset-2e65be.s3.amazonaws.com/18511687/5c047344-10b1-11e8-800a-278c2ede3fa2?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20191005%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20191005T104821Z&X-Amz-Expires=300&X-Amz-Signature=3b623e0add6d8a8e7e7e4a2b26ee6e9797f74c226e51869b0e584330290f64f1&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dopenfire_4.2.2_all.deb&response-content-type=application%2Foctet-stream [es segueix]
  17. --2019-10-05 12:48:21-- https://github-production-release-asset-2e65be.s3.amazonaws.com/18511687/5c047344-10b1-11e8-800a-278c2ede3fa2?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20191005%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20191005T104821Z&X-Amz-Expires=300&X-Amz-Signature=3b623e0add6d8a8e7e7e4a2b26ee6e9797f74c226e51869b0e584330290f64f1&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dopenfire_4.2.2_all.deb&response-content-type=application%2Foctet-stream
  18. S'està resolent github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)… 52.216.177.203
  19. S'està connectant a github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.216.177.203|:443… connectat.
  20. HTTP: s'ha enviat la petició, s'està esperant una resposta… 200 OK
  21. Mida: 22857668 (22M) [application/octet-stream]
  22. S'està desant a: «openfire_4.2.2_all.deb»
  23.  
  24. openfire_4.2.2_all.deb 100%[==============================================================>] 21,80M 697KB/s in 28s
  25.  
  26. 2019-10-05 12:48:50 (785 KB/s) - s'ha desat «openfire_4.2.2_all.deb» [22857668/22857668]

Un cop baixat, l’instal·lem:

  1. # dpkg -i openfire_4.2.2_all.deb
  2. S'està seleccionant el paquet openfire prèviament no seleccionat.
  3. (S'està llegint la base de dades… hi ha 134526 fitxers i directoris instal·lats actualment.)
  4. S'està preparant per a desempaquetar openfire_4.2.2_all.deb…
  5. S'està desempaquetant openfire (4.2.2)
  6. S'està configurant openfire (4.2.2)…
  7. adduser: Avís: el directori personal «/var/lib/openfire» no pertany a l'usuari que esteu creant.
  8. S'estan processant els activadors per a systemd (232-25+deb9u1)…

Mostrem el contingut del paquet debian d’OpenFire:

  1. # dpkg-deb -c openfire_4.2.2_all.deb
  2. drwxr-xr-x root/root 0 2018-02-13 18:21 ./
  3. drwxr-xr-x root/root 0 2018-02-13 18:21 ./etc/
  4. drwxr-xr-x root/root 0 2018-02-13 18:21 ./etc/default/
  5. -rw-r--r-- root/root 375 2018-02-13 18:21 ./etc/default/openfire
  6. drwxr-xr-x root/root 0 2018-02-13 18:21 ./etc/init.d/
  7. -rwxr-xr-x root/root 2325 2018-02-13 18:21 ./etc/init.d/openfire
  8. drwxr-xr-x root/root 0 2018-02-13 18:21 ./etc/openfire/
  9. -rw-r--r-- root/root 4382 2018-02-13 18:21 ./etc/openfire/log4j.xml
  10. -rw-r--r-- root/root 1763 2018-02-13 18:21 ./etc/openfire/openfire.xml
  11. drwxr-xr-x root/root 0 2018-02-13 18:21 ./etc/openfire/security/
  12. -rw-r--r-- root/root 32 2018-02-13 18:21 ./etc/openfire/security/client.truststore
  13. -rw-r--r-- root/root 32 2018-02-13 18:21 ./etc/openfire/security/keystore
  14. -rw-r--r-- root/root 174089 2018-02-13 18:21 ./etc/openfire/security/truststore
  15. -rw-r--r-- root/root 2920 2018-02-13 18:21 ./etc/openfire/security.xml
  16. drwxr-xr-x root/root 0 2018-02-13 18:21 ./usr/
  17. drwxr-xr-x root/root 0 2018-02-13 18:21 ./usr/share/
  18. ...

Per saber el nom del servei caldria filtrar-ho, per exemple, amb la paraula init.d, que és on hi ha els scripts dels serveis a Debian:

  1. # dpkg-deb -c openfire_4.2.2_all.deb | grep init.d
  2. drwxr-xr-x root/root 0 2018-02-13 18:21 ./etc/init.d/
  3. -rwxr-xr-x root/root 2325 2018-02-13 18:21 ./etc/init.d/openfire

El nom del servei és openfire. Comprovem l’estat del servei:

  1. # service openfire status
  2. ● openfire.service - LSB: Start/stop openfire jabber server
  3. Loaded: loaded (/etc/init.d/openfire; generated; vendor preset: enabled)
  4. Active: active (running) since Sat 2019-10-05 12:50:09 CEST; 4min 22s ago
  5. Docs: man:systemd-sysv-generator(8)
  6. CGroup: /system.slice/openfire.service
  7. └─3551 /usr/lib/jvm/java-8-openjdk-i386/jre/bin/java -server -DopenfireHome=/usr/share/openfire -Dopenfire.lib.dir=/usr/share/o
  8.  
  9. oct 05 12:50:09 server.ioc.cat systemd[1]: Starting LSB: Start/stop openfire jabber server...
  10. oct 05 12:50:09 server.ioc.cat openfire[3543]: best java alternative in: /usr/lib/jvm/java-8-openjdk-i386/jre
  11. oct 05 12:50:09 server.ioc.cat openfire[3543]: Starting openfire: openfire.
  12. oct 05 12:50:09 server.ioc.cat systemd[1]: Started LSB: Start/stop openfire jabber server.

Comprovem quins ports ha obert amb nmap:

  1. # nmap -A -T4 localhost
  2.  
  3. Starting Nmap 7.40 ( https://nmap.org ) at 2019-10-05 12:56 CEST
  4. Nmap scan report for localhost (127.0.0.1)
  5. Host is up (0.000018s latency).
  6. Not shown: 994 closed ports
  7. PORT STATE SERVICE VERSION
  8. 9090/tcp open http Jetty
  9. |_http-title: Site doesn't have a title (text/html).
  10. Device type: general purpose
  11. Running: Linux 3.X|4.X
  12. OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
  13. OS details: Linux 3.8 - 4.6
  14. Network Distance: 0 hops
  15. Service Info: Host: server.ioc.cat
  16.  
  17. Host script results:
  18. |_clock-skew: mean: -23s, deviation: 0s, median: -23s
  19.  
  20. OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
  21. Nmap done: 1 IP address (1 host up) scanned in 157.28 seconds

Veiem que el port que ha obert és el 9090. Aquest port és el que farem servir per configurar el servidor des del navegador. De fet, es veu que és un servidor web (HTTP) que escolta al port 9090.

2. Configuració del servidor OpenFire

Des del navegador configurem el servidor amb la URL localhost:9090

Ens connectem a la consola d’administració:

I creem els usuaris:

Tornem a comprovar quins ports hi han oberts amb nmap:

  1. # nmap -A -T4 localhost
  2.  
  3. Starting Nmap 7.40 ( https://nmap.org ) at 2019-10-05 13:13 CEST
  4. Nmap scan report for localhost (127.0.0.1)
  5. Host is up (0.000014s latency).
  6. Not shown: 989 closed ports
  7. PORT STATE SERVICE VERSION
  8. 5222/tcp open jabber Ignite Realtime Openfire Jabber server 3.10.0 or later
  9. |_ssl-cert: ERROR: Script execution failed (use -d to debug)
  10. |_ssl-date: 2019-10-05T11:16:12+00:00; -1s from scanner time.
  11. | xmpp-info:
  12. | STARTTLS Failed
  13. | info:
  14. | errors:
  15. | invalid-namespace
  16. | (timeout)
  17. | features:
  18. |
  19. | xmpp:
  20. | version: 1.0
  21. | auth_mechanisms:
  22. |
  23. | unknown:
  24. |
  25. | compression_methods:
  26. |
  27. | capabilities:
  28. |
  29. |_ stream_id: 4sxbf6cwcv
  30. 5269/tcp open xmpp Wildfire XMPP Client
  31. | xmpp-info:
  32. | Respects server name
  33. | STARTTLS Failed
  34. | info:
  35. | errors:
  36. | host-unknown
  37. | (timeout)
  38. | features:
  39. |
  40. | xmpp:
  41. | version: 1.0
  42. | auth_mechanisms:
  43. |
  44. | unknown:
  45. |
  46. | compression_methods:
  47. |
  48. | capabilities:
  49. |
  50. |_ stream_id: 70wzm82em4
  51. 7070/tcp open http Jetty 9.2.z-SNAPSHOT
  52. |_http-server-header: Jetty(9.2.z-SNAPSHOT)
  53. |_http-title: Error 404
  54. 7443/tcp open ssl/http Jetty 9.2.z-SNAPSHOT
  55. |_http-server-header: Jetty(9.2.z-SNAPSHOT)
  56. |_http-title: Error 404
  57. |_ssl-cert: ERROR: Script execution failed (use -d to debug)
  58. |_ssl-date: 2019-10-05T11:16:13+00:00; 0s from scanner time.
  59. 7777/tcp open socks5 (No authentication; connection not allowed by ruleset)
  60. | socks-auth-info:
  61. |_ No authentication
  62. 9090/tcp open http Jetty
  63. |_http-title: Site doesn't have a title (text/html).
  64. Device type: general purpose
  65. Running: Linux 3.X|4.X
  66. OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
  67. OS details: Linux 3.8 - 4.6
  68. Network Distance: 0 hops
  69. Service Info: Host: server.ioc.cat
  70.  
  71. Host script results:
  72. |_clock-skew: mean: -18s, deviation: 1m15s, median: -1s
  73.  
  74. OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
  75. Nmap done: 1 IP address (1 host up) scanned in 155.85 seconds

Els nous ports oberts són entre d’altres el 5222 per als clients XMPP.

3. Verificació del funcionament del servidor de missatgeria instantània amb el client Spark

Descarreguem el client Spark:

  1. # wget https://igniterealtime.org/downloadServlet?filename=spark/spark_2_8_3.deb -O spark_2_8_3.deb
  2. --2019-10-05 19:39:30-- https://igniterealtime.org/downloadServlet?filename=spark/spark_2_8_3.deb
  3. S'està resolent igniterealtime.org (igniterealtime.org)… 52.58.216.59
  4. S'està connectant a igniterealtime.org (igniterealtime.org)|52.58.216.59|:443… connectat.
  5. HTTP: s'ha enviat la petició, s'està esperant una resposta… 302
  6. Ubicació: http://download.igniterealtime.org/spark/spark_2_8_3.deb [es segueix]
  7. --2019-10-05 19:39:30-- http://download.igniterealtime.org/spark/spark_2_8_3.deb
  8. S'està resolent download.igniterealtime.org (download.igniterealtime.org)… 52.58.216.59
  9. S'està connectant a download.igniterealtime.org (download.igniterealtime.org)|52.58.216.59|:80… connectat.
  10. HTTP: s'ha enviat la petició, s'està esperant una resposta… 302 Found
  11. Ubicació: https://github.com/igniterealtime/Spark/releases/download/v2.8.3/spark_2_8_3.deb [es segueix]
  12. --2019-10-05 19:39:30-- https://github.com/igniterealtime/Spark/releases/download/v2.8.3/spark_2_8_3.deb
  13. S'està resolent github.com (github.com)… 140.82.118.3
  14. S'està connectant a github.com (github.com)|140.82.118.3|:443… connectat.
  15. HTTP: s'ha enviat la petició, s'està esperant una resposta… 302 Found
  16. Ubicació: https://github-production-release-asset-2e65be.s3.amazonaws.com/14648981/c6cef55e-e624-11e6-850b-7f58af1dd73b?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20191005%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20191005T173931Z&X-Amz-Expires=300&X-Amz-Signature=1200f1e2f2517ea97b1483a0da756d7e91ac496a953c69ac4aa37feb32bd8ddb&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dspark_2_8_3.deb&response-content-type=application%2Foctet-stream [es segueix]
  17. --2019-10-05 19:39:31-- https://github-production-release-asset-2e65be.s3.amazonaws.com/14648981/c6cef55e-e624-11e6-850b-7f58af1dd73b?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20191005%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20191005T173931Z&X-Amz-Expires=300&X-Amz-Signature=1200f1e2f2517ea97b1483a0da756d7e91ac496a953c69ac4aa37feb32bd8ddb&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dspark_2_8_3.deb&response-content-type=application%2Foctet-stream
  18. S'està resolent github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)… 52.216.98.211
  19. S'està connectant a github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.216.98.211|:443… connectat.
  20. HTTP: s'ha enviat la petició, s'està esperant una resposta… 200 OK
  21. Mida: 29526628 (28M) [application/octet-stream]
  22. S'està desant a: «spark_2_8_3.deb»
  23.  
  24. spark_2_8_3.deb 100%[==============================================================>] 28,16M 593KB/s in 47s
  25.  
  26. 2019-10-05 19:40:18 (614 KB/s) - s'ha desat «spark_2_8_3.deb» [29526628/29526628]

I l’instal·lem:

  1. # dpkg -i spark_2_8_3.deb
  2. S'està seleccionant el paquet spark-messenger prèviament no seleccionat.
  3. (S'està llegint la base de dades… hi ha 134950 fitxers i directoris instal·lats actualment.)
  4. S'està preparant per a desempaquetar spark_2_8_3.deb…
  5. S'està desempaquetant spark-messenger (2.8.3)
  6. S'està configurant spark-messenger (2.8.3)…

Obrim l’aplicació i ens identifiquem com a “usuari1”:

  1. # spark &

Posem les següents preferències:

I restem online:

Obrim una altra instància de l’aplicació i ens identifiquem aquest cop com a usuari2 (amb les mateixes característiques):

  1. # spark &

Finalment realitzem una petita conversa per tal de comprovar que funciona. Cal primer que a un dels usuaris l’afegim com a contacte l’altre:

Instal·lació i configuració un servidor de missatgeria instantània amb Tigase

L’objectiu d’aquesta activitat és instal·lar i configurar el servidor Tigase de missatgeria instantània que utilitza el protocol XMPP. Com que el protocol XMPP és obert, en aquest cas utilitzarem un altre client XMPP, Pidgin.

Realitzeu els següents passos:

  1. Instal·lació i configuració del prerequisit: Java JDK.
  2. Instal·lació i configuració del servidor Tigase de missatgeria instantània.
  3. Verificació del funcionament del servidor de missatgeria instantània amb el client Pidgin.

1. Instal·lació i configuració dels prerequisits

Com a requisit, cal instal·lar el Java JDK. Instal·larem el d’Oracle, tot i que podríem instal·lar l’OpenJDK.

Anem a java.com per tal de descarregar aquest entorn:

Botó dret i descarreguem l’arxiu corresponent (32 o 64 bits). Seguim les instruccions d’instal·lació que apareixen a la pàgina web:

  1. # cd /usr/lib/jvm
  2. # cp /home/usuari/Baixades/jre-8u221-linux-x64.tar.gz .
  3. # tar zxvf jre-8u221-linux-x64.tar.gz
  4. jre1.8.0_221/
  5. jre1.8.0_221/Welcome.html
  6. jre1.8.0_221/lib/
  7. jre1.8.0_221/lib/psfontj2d.properties
  8. jre1.8.0_221/lib/plugin.jar
  9. jre1.8.0_221/lib/deploy.jar
  10. jre1.8.0_221/lib/net.properties
  11. jre1.8.0_221/lib/currency.data
  12. jre1.8.0_221/lib/logging.properties
  13. jre1.8.0_221/lib/charsets.jar
  14. jre1.8.0_221/lib/rt.jar
  15. jre1.8.0_221/lib/fontconfig.Turbo.bfc
  16. jre1.8.0_221/lib/desktop/
  17. ...
  18. # rm jre-8u221-linux-x64.tar.gz

Un cop instal·lat, hem de fer que sigui el JDK que s’executi per defecte, ja que es poden tenir instal·lat diverses versions. Mirem a on apunta la comanda java:

  1. # whereis java
  2. java: /usr/bin/java /etc/java /usr/share/java /usr/share/man/man1/java.1.gz
  3. ls /usr/bin/java -alis
  4. 149630 0 lrwxrwxrwx 1 root root 22 set 5 2017 /usr/bin/java -> /etc/alternatives/java
  5. root@server:/usr/lib/jvm# ls /etc/alternatives/java -alis
  6. 149629 0 lrwxrwxrwx 1 root root 45 set 5 2017 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-i386/jre/bin/java

Veiem que apunta a un altre JDK, concretament java-8-openjdk-i386. Per tal que apunti al que acabem d’instal·lar, només cal modificar l’enllaç simbòlic (soft link):

  1. rm /etc/alternatives/java
  2. ln -s /usr/lib/jvm/jre1.8.0_221/bin/java /etc/alternatives/java
  3. ls /etc/alternatives/java -alis
  4. 149629 0 lrwxrwxrwx 1 root root 45 set 5 2017 /etc/alternatives/java -> /usr/lib/jvm/jre1.8.0_221/bin/java

I comprovem que és la versió que hem instal·lat:

  1. # java -version
  2. java version "1.8.0_221"
  3. Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
  4. Java HotSpot(TM) Client VM (build 25.221-b11, mixed mode)
  5. root@server:/usr/lib/jvm#

2. Instal·lació i configuració del servidor Tigase de missatgeria instantània

Per instal·lar el servidor anem a la pàgina oficial de Tigase i ens descarreguem la darrera versió del servidor.

Seguidament descomprimim l’aplicació:

  1. # unzip tigase-server-8.0.0-b10083-dist-max.zip

Entrem a la carpeta i executem l’script inicialització del servidor:

  1. # cd tigase-server-8.0.0-b10083
  2. # scripts/tigase.sh start
  3. No params-file.conf given. Using: ''
  4. JAVA_HOME is not set.
  5. Please set it to correct value before starting the sever.

Falta configurar les variables d’entorn, en aquest cas el JAVA_HOME. Les configurem i tornem a iniciar el servidor. Ens retorna el PID del procés.

  1. # JAVA_HOME=/usr/lib/jvm/jre1.8.0_221; export JAVA_HOME
  2. # scripts/tigase.sh start
  3. No params-file.conf given. Using: ''
  4. Starting Tigase:
  5. Tigase running pid=4319
  6. nohup: es redirigeixen els errors a l’eixida estàndard

Si ho comprovem amb ps veiem que el servidor és una aplicació Java:

  1. # ps -A | grep java
  2. 559 ? 00:00:20 java
  3. 4319 pts/0 00:00:05 java

Mirem quins ports ha obert el servidor amb nmap:

  1. Starting Nmap 7.40 ( https://nmap.org ) at 2019-10-12 12:37 CEST
  2. Nmap scan report for localhost (127.0.0.1)
  3. Host is up (0.000011s latency).
  4. Not shown: 989 closed ports
  5. PORT STATE SERVICE VERSION
  6. 8080/tcp open http JBoss Enterprise Application Platform
  7. | http-auth:
  8. | HTTP/1.1 401 Unauthorized\x0D
  9. |_ Basic realm=TigasePlain
  10. | http-title: Site doesn't have a title.
  11. |_Requested resource was /setup/
  12. Device type: general purpose
  13. Running: Linux 3.X|4.X
  14. OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
  15. OS details: Linux 3.8 - 4.6
  16. Network Distance: 0 hops
  17. Service Info: Host: server.ioc.cat
  18.  
  19. Host script results:
  20. |_clock-skew: mean: 34s, deviation: 1m08s, median: 0s
  21.  
  22. OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
  23. Nmap done: 1 IP address (1 host up) scanned in 44.44 seconds

Per a la configuració del servidor cal anar a la URL http://localhost:8080 amb l’usuari admin i el password tigase per defecte.

A la configuració d’opcions avançades podem veure els diferents components i habilitar-los o no segons convingui. De moment deixem la proposta per defecte:

El mateix amb els plugins.

Especifiquem les dades per connectar-se a la base de dades:

Comprovem que es connecta bé a la base dades:

Afegim l’usuari de seguretat. Aquest podrà entrar al servidor sense tenir un JID.

Finalment, reiniciem el servei:

  1. # kill -9 4319
  2. # scripts/tigase.sh start
  3. No params-file.conf given. Using: ''
  4. Starting Tigase:
  5. Tigase running pid=5707
  6. nohup: es redirigeixen els errors a l’eixida estàndard

I aquesta és la pantalla principal del servidor un cop configurat:

3. Verificació del funcionament del servidor de missatgeria instantània amb el client Pidgin

Instal·lem el client XMPP Pidgin:

  1. # apt-get install pidgin
  2. S'està llegint la llista de paquets… Fet
  3. S'està construint l'arbre de dependències
  4. S'està llegint la informació de l'estat… Fet
  5. El paquets següents s'han instal·lat automàticament i ja no serà necessaris:
  6. erlang-asn1 erlang-base erlang-crypto erlang-edoc erlang-goldrush erlang-inets erlang-jiffy erlang-lager erlang-mnesia erlang-odbc
  7. erlang-p1-cache-tab erlang-p1-iconv erlang-p1-stringprep erlang-p1-tls erlang-p1-utils erlang-p1-xml erlang-p1-yaml erlang-p1-zlib
  8. erlang-proper erlang-public-key erlang-runtime-tools erlang-ssl erlang-syntax-tools erlang-xmerl libnginx-mod-http-auth-pam
  9. libnginx-mod-http-dav-ext libnginx-mod-http-echo libnginx-mod-http-geoip libnginx-mod-http-image-filter libnginx-mod-http-subs-filter
  10. libnginx-mod-http-upstream-fair libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream libodbc1 libsctp1 nginx-full
  11. Empreu «apt autoremove» per a suprimir-los.
  12. S'instal·laran els següents paquets extres:
  13. freepats gstreamer1.0-alsa gstreamer1.0-libav gstreamer1.0-nice gstreamer1.0-plugins-bad libdca0 libde265-0 libfaad2
  14. libfarstream-0.2-5 libgadu3 libgssdp-1.0-3 libgstreamer-plugins-bad1.0-0 libgupnp-1.0-4 libgupnp-igd-1.0-4 libkate1 liblilv-0-0
  15. libmeanwhile1 libmjpegutils-2.1-0 libmms0 libmodplug1 libmpcdec6 libmpeg2encpp-2.1-0 libmplex2-2.1-0 libnice10 libofa0
  16. libopencv-calib3d2.4v5 libopencv-features2d2.4v5 libopencv-flann2.4v5 libopencv-highgui2.4-deb0 libopencv-objdetect2.4v5
  17. libopencv-video2.4v5 libprotobuf-c1 libpurple-bin libpurple0 libserd-0-0 libsord-0-0 libsoundtouch1 libsratom-0-0 libsrtp0
  18. libvo-aacenc0 libvo-amrwbenc0 libwildmidi-config libwildmidi2 libzbar0 libzephyr4 pidgin-data
  19. Paquets suggerits:
  20. frei0r-plugins serdi sordi srtp-utils
  21. S'instal·laran els paquets NOUS següents:
  22. freepats gstreamer1.0-alsa gstreamer1.0-libav gstreamer1.0-nice gstreamer1.0-plugins-bad libdca0 libde265-0 libfaad2
  23. libfarstream-0.2-5 libgadu3 libgssdp-1.0-3 libgstreamer-plugins-bad1.0-0 libgupnp-1.0-4 libgupnp-igd-1.0-4 libkate1 liblilv-0-0
  24. libmeanwhile1 libmjpegutils-2.1-0 libmms0 libmodplug1 libmpcdec6 libmpeg2encpp-2.1-0 libmplex2-2.1-0 libnice10 libofa0
  25. libopencv-calib3d2.4v5 libopencv-features2d2.4v5 libopencv-flann2.4v5 libopencv-highgui2.4-deb0 libopencv-objdetect2.4v5
  26. libopencv-video2.4v5 libprotobuf-c1 libpurple-bin libpurple0 libserd-0-0 libsord-0-0 libsoundtouch1 libsratom-0-0 libsrtp0
  27. libvo-aacenc0 libvo-amrwbenc0 libwildmidi-config libwildmidi2 libzbar0 libzephyr4 pidgin pidgin-data
  28. 0 actualitzats, 47 nous a instal·lar, 0 a suprimir i 312 no actualitzats.
  29. S'ha d'obtenir 45,2 MB d'arxius.
  30. Després d'aquesta operació s'empraran 89,0 MB d'espai en disc addicional.
  31. Voleu continuar? [S/n]

Un cop instal·lat, obrim l’aplicació i cancel·lem l’assistent. Es mostra la pantalla principal:

Anem a Comptes, Gestió de comptes, Afegeix i creem un usuari:

Acceptem el certificat i ens registrem:

Fem el mateix per a un segon usuari i esperem una estona que es posin online:

Fem botó dret en un usuari i seleccionem MI (missatgeria instantània):

Al menú Conversa, seleccionem Missatge instantani nou i triem l’altre usuari:

I ja podem iniciar una conversa: