Urbex 2013

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

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.

Android: Faires des screenshots

Android LogoPour pouvoir faire des screenshot de l’écran du téléphone sous Android il faut que le téléphone soit “rooté”, cela veut dire que des application auront tous les droits sur le téléphone. Niveau sécurité, il faudra faire attention à ne pas installer n’importe quoi sur le téléphone car si vous installez une application malicieuse, celle ci aurait le droit de d’effacer n’importe quel fichier sur le téléphone, même les fichiers système importants qui rendrait le téléphone inutilisable !

Cette procédure fonctionne parfaitement avec mon HTC Hero avec une ROM d’origine.

ATTENTION: La manipulation suivante peut mettre la sécurité du téléphone en péril, à faire à vos risques et périls. Pour continuer je vous conseille de d’abord savoir bien utiliser votre téléphone. Personnellement je n’ai eu aucun soucis à rooter mon téléphone.

Marche à suivre (Source EN):

  1. Télécharger InstantRoot.apk
  2. Copiez ce fichier dans la racine de la carte SD du téléphone. (Exemples: Windows: F:\ ou Linux /media/HTC Hero/)
  3. Ouvrez votre File Manager ( utilisez Astro ou OI Explorer si vous n’en connaissez pas).
  4. Cliquez sur InstantRoot.apk.
  5. Accepter de l’installer. Si vous n’avez pas accepter de pouvoir installer des applications en dehors du Market, il vous demandera de le faire.
  6. Il doit afficher installation réussie.

Maintenant allez dans le Market et chercher ShootMe. Une fois trouvé, installez le et lancez le. Il affichera une fenêtre en surimpression pour expliquer comment il fonctionne. Pour prendre un screenshot il suffit juste de secouer le téléphone! Vous trouverez tous les screenshots dans le répertoire ShootMe de votre SD Card.

Ubuntu – Mise à jour de version en ligne de commande

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.

Continue reading “Ubuntu – Mise à jour de version en ligne de commande”

BASH – Rajouter la date dans l’historique des commandes

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.

Continue reading “BASH – Rajouter la date dans l’historique des commandes”

Faire un iso facilement avec Ubuntu

Lorsque vous insérez un CD ou un DVD, il apparaît l’icône de celui ci sur le bureau. Lorsque l’on fait un clic droit sur celui ci on peut voir qu’il apparait un menu “Copier le disque”

Pour copier le CD et en faire une image ISO il faut cliquer dessus pour obtenir l’interface de gravure:

Au lieu de laiser le Graveur il faut choisir dans la liste “Fichier image”:

Une fois choisi il ne reste plus qu’à cliquer sur Graver puis de choisir le nom du fichier dans lequel les données seront écrites:

Une fois que vous validerez la copie commencera et il ne vourestera plus qu’à attendre la fin de la copie:

PS: Je n’incite pas à la copie illégale même si je l’ai fait avec un DVD de Rammstein, j’ai simplement pris le premier DVD que j’avais sous la main.

Dedibox – Serveur Web dynamique multidomaine

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.

Continue reading “Dedibox – Serveur Web dynamique multidomaine”

Gpilotd et la synchronisation d’un Palm

Je viens de réactiver mon petit Palm Zire 21 et j’ai testé la synchronisation, tout fonctionne pareil que pour Breezy par contre il n’y a qu’un problème dont je viens de le rendre compte car dans Evolution j’utilise plusieurs catégories de calendriers et de répertoires de contacts mais malheureusement Gpilotd (Gnome pilot) ne peut synchroniser qu’un seul calendrier ou répertoire de contact donc attention si vous en avez plusieurs.

Pour palier à cela je pense créer un répertoire spcial où je répliquerais toutes les données à synchroniser je pense que c’est le meilleur moyen pour l’instant si l’on veut rester avec Gpilotd.

PS: Je sais que Kpilotd peut synchroniser plusieurs répertoire de contact et calendrier mais je ne sais pas s’il est compatible avec Evolution si quelq’un à une info 😉