Archive

Posts Tagged ‘CLI’

Ubuntu, XMPP (Jabber), Google Apps et ligne de commande.

May 8th, 2011 Brice Capelle 2 comments
Pour des besoins de monitoring j’ai besoin de recevoir des alertes via le protocole XMPP (Jabber) et pour cela j’ai besoin d’envoyer des messages XMPP via mes scripts et donc la ligne de commande.
Il existe certain script en Perl qui font cela mais j’ai une préférence pour le Python. Le seul existant en Python d’après mes recherches est xmpppy . Pour pouvoir utiliser ce script dans de bonne condition, il faudra ajouter une dépendance sur le paquet python-xmpp et rajouter des entrées dans la zone DNS de votre domaine.

Installation:

wget http://xmpppy.sourceforge.net/examples/xsend.py
chmod +x xsend.py
sudo apt-get install python-xmpp

 

Configuration:

  • De base le script utilise un fichier ~/.xsend mais il est possible de modifier le script pour pouvoir mettre les identifiants du compte éméteur. Je vais utiliser le fichier .xsend
nano ~/.xsend

Voici le contenu à mettre, il faut bien entendu replacer les éléments en Majuscules après le “=” pour que cela puisse fonctionner. Attention si le domaine est sur Google Apps, il faut que ce compte soit activé en se connectant au moins une fois à Gmail Apps et qu’il ajoute les contacts dont il a besoin. Sans cela aucun message ne passera.

#Uncomment fields before use and type in correct credentials.
JID=USER@DOMAIN.TLD/RESSOURCE (/resource is optional)
PASSWORD=SECRET
  • Le protocole XMPP permet d’utiliser des entrées DNS afin de trouver le serveur XMPP si celui ci n’est pas le domaine principal. Cet enregistrement DNS est un SRV comme suit:
_xmpp-server._tcp       28800  IN SRV    5 0 5269 xmpp-server.l.google.com.
_xmpp-client._tcp       28800  IN SRV    5 0 5222 talk.l.google.com.
  • Sur Ubuntu 10.10 et Ubuntu 10.04, Python 2.6 est installé et pose problème avec les modules de chiffrement (md5 et sha). Il faut donc modifier une partie du code pour utiliser hashlib.

Changement dans le fichier /usr/lib/python2.6/dist-packages/xmpp/auth.py à partir de la ligne 24:


#import sha,base64,random,dispatcher,re
import hashlib,base64,random,dispatcher,re

#import md5

  • Sur Ubuntu 11.04 pas de soucis Python 2.7 est utilisé et tout fonctionne Out of the Box sans aucun message d’avertissement.

Tests:

Une fois les DNS configurés il est possible de les tester mais attention, pour que les modifications soient visible sur Internet cela peut prendre du temps, autant tester directement avec les DNS de son fournisseur DNS.

Si les DNS du FAI qui essaye d’envoyer le message ne sont pas encore à jour, il y a de forte chance que cela ne fonctionne pas encore. Les résultats suivant sont volontairement tronqués pour ne pas allonger inutilement l’article.

brice@capelle:~$ dig SRV _xmpp-server._tcp.DOMAINE.TLD @DNS.SUPPLYER.TLD

;; QUESTION SECTION:
;_xmpp-server._tcp.DOMAINE.TLD. IN SRV

;; ANSWER SECTION:
_xmpp-server._tcp.DOMAINE.TLD. 28800 IN SRV 5 0 5269 xmpp-server.l.google.com.

brice@capelle:~$ dig SRV _xmpp-client._tcp.DOMAINE.TLD @DNS.SUPPLYER.TLD

;; QUESTION SECTION:
;_xmpp-client._tcp.DOMAINE.TLD. IN SRV

;; ANSWER SECTION:
_xmpp-client._tcp.DOMAINE.TLD. 28800 IN SRV 5 0 5222 talk.l.google.com.

Si tous les tests précedents sont OK et que l’utilisateur a bien ajouté les contacts alors on peut tester l’envoi de messages:

./xsend.py DOMAIN_USER@DOMAIN.TLD SERVEUR core00 \: Down \!

Il prend aussi les variables sans problèmes:

./xsend.py DOMAIN_USER@DOMAIN.TLD SERVEUR $HOSTNAME \: Up \!

Les \ sont importants pour les caractères spéciaux afin de ne pas les interpréter, sinon le message ne passe pas ou alors le shell renvoi une erreur. Et il n’est pas besoin de mettre le message entre guillemets (“).

En espérant que cela puisse aider certains car j’ai eu beaucoup de mal à trouver des informations sur le sujet, même sur la documentations de Google.

VN:F [1.9.22_1171]
Rating: 9.5/10 (2 votes cast)

Ubuntu – Mise à jour de version en ligne de commande

July 26th, 2009 Brice Capelle No comments

Lorsque l’on a un serveur, la mise à jour se passe en ligne de commande. En général cela se passe en modifiant le fichier de source pour APT. Il suffit de se tromper dans le fichier source.list pour avoir des problèmes.

ATTENTION ! Une mise à jour du système et surtout le changement de version reste une manipulation dangereuse sur un serveur de production! Faites des sauvegardes avant.

Read more…

VN:F [1.9.22_1171]
Rating: 6.7/10 (7 votes cast)

BASH – Rajouter la date dans l’historique des commandes

April 18th, 2009 Brice Capelle No comments

Après avoir eu un serveur de piraté j’ai pu voir les commande qu’avait passé le pirate, sans pouvoir savoir exactement quand il les avait utilisées (Il n’avait pas nettoyé l’historique). J’ai donc cherché sur Internet une solution sans trouver grand chose pour Bash.

Cette modification est totalement anodine pour le système et ne peut entraîner de perte de donnée.

Read more…

VN:F [1.9.22_1171]
Rating: 5.3/10 (3 votes cast)

Dedibox – Serveur Web dynamique multidomaine

October 5th, 2006 Brice Capelle No comments

Cet article à pour but certes d’installer un serveur web mais surtout de voir comment héberger plusieurs domaine sur le même serveur. On passera l’installation de base et on passera directement àl’installation des logiciels concernés. Ce tutoriel peut aussi être appliqué pour un serveur à la maison à condition d’avoir un accès à la console et si vous voulez avoir accès à la console à distance il faut au préalable avoir installé le serveur SSH.

Read more…

VN:F [1.9.22_1171]
Rating: 8.0/10 (2 votes cast)