Archive | admin

Tags: , , , , ,

Plugin Zimbra pour Nagios

Posted on 03 September 2010 by Thomas

En cas de boîte mail proche de la saturation, Zimbra peut prévenir par mail l’utilisateur concerné. C’est génial, mais partant du constat que beaucoup de (mes) utilisateurs ne lisent pas leurs mails dès que ça ressemble de près comme de très loin à de l’informatique, je me suis concocté un petit script en Perl me permettant d’avoir un visu sur les utilisateurs ayant leur messagerie saturée. Continue Reading

Comments (0)

Tags: , ,

Décalage lors d’une impression sur Brother MFC240C et Ubuntu

Posted on 22 June 2010 by adrien

Si comme moi vous rencontrez un problème étrange qui fait que vos impressions sont décalés vers le haut avec une imprimante MFC240C connectée à Ubuntu, essayez de taper cette commande, cela a résolu mon problème tout de suite:

sudo brprintconf_mfc240c -pt A4

source: http://doc.ubuntu-fr.org/imprimantes_brother#le_haut_des_documents_est_coupe

Comments (0)

Tags: , , , , , ,

Le SIP et la Neufbox

Posted on 09 June 2010 by adrien

Pour tous ceux qui se casse la tête à configurer un téléphone SIP derrière une neufbox de SFR, voici un petit mémo tiré de mon expérience.
Si vous voulez configurer un compte SIP de chez OVH, indiquez simplement dans le outbound proxy, sip.ovh.net et utilisez le port UDP 5962.
Pour bancher mon compte Neuftalk sur un téléphone SIP j’ai dû utiliser le port 5061 (par exemple) et créer une règle de NAT sur la neufbox qui prend en paramètres 5061 comme port externe et 5060 en port de destination. Bien sur n’oubliez pas d’attribuer une adresse statique dans l’onglet DHCP pour que votre téléphone ai toujours la même adresse IP.

Comments (0)

Tags: , ,

Nommer ses périphériques grâce à Udev

Posted on 20 May 2010 by Thomas

J’ai eu récemment un problème sur un serveur de sauvegarde avec un chargeur de bandes LTO4 qui avait changé de nom après le reboot dudit serveur. Les fichiers de configuration qui comportaient une directive vers l’emplacement du chargeur de bandes n’ont pas apprécié…

J’ai donc décidé d’attribuer un nom immuable à mon périphérique, grâce à une règle UDEV. Après l’avoir identifié, cette règle va créer un lien symbolique vers le périphérique. Il est donc important d’être rigoureux pour fournir à udev une identification précise du matériel.

Pour procéder à cette identification, nous allons nous aider de udevadm info. Udev se basant sur sysfs (/sys) nous allons devoir au préalable trouver la correspondance entre le nom de mon périphérique dans /dev et celui dans /sys.

Dans /dev mon chargeur se nomme actuellement sg9, soit /dev/sg9. La commande suivante va me permettre de trouver sa correspondance dans /sys:

thomas@cryonux:~$ find /sys -name dev | grep sg9

me donne:

/sys/devices/pci0000:00/0000:00:06.0/0000:0c:00.0/0000:0d:08.0/host2/port-2:0/end_device-2:0/target2:0:0/2:0:0:1/scsi_generic/sg9/dev

Utilisons maintenant udevadm info afin de trouver des informations pertinentes pour l’identification du matériel:

thomas@cryonux:~$ udevinfo -a -p /sys/devices/pci0000:00/0000:00:06.0/0000:0c:00.0/0000:0d:08.0/host2/port-2:0/end_device-2:0/target2:0:0/2:0:0:1/scsi_generic/sg9/dev

Plein d’informations découpées en rubriques vont résulter de cette commande, le but étant de prendre celles qui permettent d’identifier simplement mais efficacement le périphérique.

Attention cependant à ne pas piocher les informations dans plusieurs rubriques différentes car udev considérant chaque rubrique comme un périphérique différent, votre règle ne fonctionnerait pas.

L’autre solution serait de séparer les informations dans votre règle udev en plusieurs lignes, mais rappelez vous que plus votre règle udev est simple, mieux c’est.

Une fois que vous avez trouvé votre bonheur, il ne reste plus qu’à créer la règle udev. Pour cela, il faut créer un fichier .rules dans /etc/udev/rules.d/ et, tout comme avec le fonctionnement des runlevels, spécifier l’ordre d’exécution de la règle.

Le mien s’appelle 55-chargeur-lto4.rules et contient uniquement la ligne suivante:

SUBSYSTEMS=="scsi",  ATTRS{model}=="PV-124T         ", ATTRS{type}=="8",  SYMLINK+="chargeur-lto4"

Vous noterez que j’ai rajouté aux informations trouvées grâce à udevinfo un attribut SYMLINK. Cet attribut correspond à un nom que j’ai donné à mon périphérique, sous forme de lien symbolique créé dans /dev/

Pour prendre en compte à chaud la modification on va lancer la commande:

thomas@cryonux:~$ udevadm trigger

Un ptit:

thomas@cryonux:~$ ls -al /dev/chargeur-lto4

Et oh magie on a comme résultat:

lrwxrwxrwx 1 root root 4 2009-12-28 21:02  /dev/chargeur-lto4 -> sg9

Comments (0)

Tags: , ,

Réinitialiser le mot de passe root

Posted on 20 May 2010 by Thomas

Changer un mot de passe root perdu (on va dire perdu hein…) sous Linux, ya vraiment rien de plus simple !

Il suffit pour cela d’un accès physique à la machine ou même d’un accès type KVM. La méthode décrite ci-dessous n’a été testée qu’avec le bootloader Grub, mais on ne doit pas être loin de la vérité avec Lilo.

Voici les différentes étapes:

- Démarrez ou redémarrez la machine

- Lorsque le menu de Grub apparaît, sélectionnez le kernel sur lequel vous souhaitez faire booter la machine et appuyez sur “a

- Au prompt “grub append>“, rajoutez init=/bin/bash à la fin de la ligne et validez en appuyant sur “Entrée”

- Maintenant que vous avez la main en root, il va falloir remonter la partition racine en lecture/écriture afin de pouvoir changer le mot de passe. Pour cela, tapez:

thomas@cryonux:~$ mount -o remount,rw /

- Yapuka changer le mot de passe avec la commande passwd

- Par mesure de sécurité, vous pouvez remonter la partition en lecture seule avant de redémarrer la machine avec:

thomas@cryonux:~$ mount -o remount,ro /

- Au prochain boot n’oubliez pas de retirer les modifications effectuées sur grub afin de charger normalement le kernel.

Comments (0)

Tags: , , , ,

Sauvegarder et restaurer une base Mysql à chaud

Posted on 20 May 2010 by Thomas

Un (des) moyen de sauvegarder proprement une base Mysql est d’utiliser la commande mysqldump.
Cette commande permet d’effectuer la sauvegarde à chaud et peut séparer les squelettes des tables de leurs données (pratique par exemple pour transférer une base vers un autre serveur qui ne serait pas forcément du Mysql).

Voici un script shell qui va parser l’ensemble de vos bases Mysql puis effectuer la sauvegarde:

#!/bin/bash

user="login"
pass="mdp"
listdb=$(mysql --user=$user --password=$pass --exec="SHOW DATABASES;" | tail -n +2)

for dbname in $listdb; do

destdir="/usr/local/dumps/$dbname"

if [ -d $destdir ]; then
echo "Dumping $dbname database"
mysqldump --tab /usr/local/dumps/$dbname --opt --all $dbname --user=$user --password=$pass || echo "Error when dumping $dbname database"
else
mkdir /usr/local/dumps/$dbname
chown -R mysql:mysql /usr/local/dumps/$dbname
echo "Dumping $dbname database"
mysqldump --tab /usr/local/dumps/$dbname --opt --all $dbname --user=$user --password=$pass || echo "Error when dumping $dbname database"
fi
done
echo "Finished"
exit 0

Le script va ici aller mettre dans /usr/local/dumps/nomdelabase (le répertoire sera créé s’il n’existe pas) l’ensemble des squelettes des tables de chaque base au format .sql ainsi que les données au format .txt

A noter que vous pouvez très bien ne pas séparer les squelettes des données en supprimant l’argument –tab. Je vous invite à vous reporter à la doc de mysqldump pour voir l’ensemble des possibilités que vous offre cette commande.

Pour restaurer tout cela, on va utiliser les commandes suivantes (et pourquoi pas les scripter elles aussi):

mysql -u login -pmdp mabase < squelette.sql
mysqlbinlog mysql-bin.xxxxxx (si vous avez activé les fichiers de logs binaires)
mysqlimport --lock-tables --user=login --password=mdp mabase données.txt

Comments (0)

Tags: ,

Kixtart: un langage de script pour vos ouvertures de session Windows

Posted on 20 May 2010 by Thomas

Kixtart ( à ne pas confondre avec Kickstart de RedHat ) est un langage de script utilisé principalement pour effectuer les ouvertures de sessions sous Windows. Il est gratos ( et pourtant développé par un mec de chez Krosoft, c’est dire ! ) et super simple à utiliser. Il parait qu’il permet aussi une exécution plus rapide de l’ouverture de session que ne le ferait un vbscript…

Pour ma part, je l’ai intégré dans un contrôleur de domaine Samba à la place du bon vieux logon.bat en place.

Le principe est donc sensiblement le même, à savoir un script ( lancé avec les droits de l’utilisateur courant ) qui va parser vos droits et groupe(s) d’appartenance et mapper votre ou vos lecteurs réseaux en fonction de cela.

Je vous invite à vous rendre sur le helpdesk Kixtart http://helpdesk.kixtart.org avant de parcourir mon script afin de voir à quoi correspondent les macros et fonctions utilisées.
Votre script devra porter l’extension .kix et en fonction de votre parc clients (98 ?!, XP, Vista), vous aurez à placer ou non dans votre répertoire de logon ( genre //pdc/netlogon ;-) ) des .dll et .exe requis par Kixtart. Encore une fois, RTFM sur http://www.kixtart.org ou sur le helpdesk.

Notez le truc con, l’exécution de votre script se fera par l’intermédiaire d’un batch.

Voici dans les grandes lignes à quoi peut ressembler un script de connexion:

DEBUG OFF  ; DEBUG ON active le mode debug qui est  vraiment pratique en cas de soucis
; Initialise les variables pour les serveurs / partages  windows
$serveur5 = \\v5
$serveur2 = \\v2
;  ******************** Let's rock ***************************
;  ****************
; *******
; Place un raccourci  applicatif sur le bureau de l'
utilisateur
IF NOT EXIST ("c:\Documents and Settings\@USERID\Bureau\mon raccourci.url")
COPY @LDRIVE+"mon raccourci.url" "c:\Documents and  Settings\@USERID\Bureau" /r/c/h
ENDIF
? " copie de mon raccourci.url"
IF @ERROR <>  0
? @ERROR
ENDIF
; Synchronisation avec le serveur de temps du réseau
SETTIME @LSERVER
IF @ERROR <> 0
? @ERROR
ENDIF
;  On supprime les connexions persistantes potentielles
USE * /Delete /Persistent
; Affiche un message de bienvenue
?  "--------------------------------------------------"
? "Bienvenue sur le domaine "+@LDOMAIN+" "+@FULLNAME
? "Vous utilisez le poste de travail @WKSTA"
?  "--------------------------------------------------"
? ""
; Notifie si le mot de passe est hors d'âge
IF @PWAGE > 79
MESSAGEBOX ("Votre mot de passe a "+@PWAGE+" jours. Pour des raisons de securite, merci de le changer.","CHANGEMENT DU MDP",0)
ENDIF
; Mapping des lecteurs réseaux
?  "Connexion aux lecteurs du reseau..."
?  "..................................................."
;;;;;;;;;;;;;
;  on va commencer par les disques perso des utilisateurs
;;;;;;;;;;;;;
IF  @USERID = "administrateur" GOTO Exit ENDIF ; pas besoin de monter de lecteur pour l'
admin
USE U: /delete
USE U: @LSERVER+"\"+@USERID
IF @ERROR <> 0
? "
Error mapping drive U !"
ENDIF
;;;;;;;;;;;;;
;  maintenant on va mapper les lecteurs réseaux des utilisateurs avec droits spécifiques
;;;;;;;;;;;;;
SELECT</p>
CASE @USERID = "
utilisateur1"
USE P: /delete
USE P: @LSERVER+"
\privee"
IF @ERROR <> 0
? "
Error mapping drive privee !"
ENDIF
USE Q: /delete
USE Q: $serveur5+"
\partage"
IF @ERROR <> 0
? "
Error mapping drive partage !"
ENDIF
CASE @USERID = "
utilisateur2"
USE R: /delete
USE R: @LSERVER+"
\documents"
IF @ERROR <> 0
? "
Error mapping drive documents !"
ENDIF
ENDSELECT
;;;;;;;;;;;;;;
; On va mapper ensuite les lecteurs réseaux communs en fonction des groupes d'appartenance
;;;;;;;;;;;;;;
IF EXIST ("
@LSERVER\@PRIMARYGROUP") = 1
USE O: /delete
USE O: "
@LSERVER\@PRIMARYGROUP"
IF @ERROR <> 0
? "
Error mapping drive @PRIMARYGROUP !"
ENDIF
ENDIF
;;;;;;;;;;;;;;
; On va mapper les lecteurs réseaux communs spécifique à certains groupes d'appartenance
;;;;;;;;;;;;;;
IF @PRIMARYGROUP = "
ungroupe"
USE P: /delete
USE P: $serveur2+"
\d$"
IF @ERROR <> 0
? "
Error mapping drive d$ !"
ENDIF
ENDIF
Exit

Vous voyez, c’est vraiment pas sorcier. Ca m’a aussi permis de réduire de moitié la taille de mon script de connexion par rapport à mon ancien logon.bat.

Je vous ai présenté une utilisation assez basique de Kixtart, cependant il ne faut pas le réduire à une simple fonction de mappage réseau. Vous pouvez vous en servir pour effectuer des opération bien plus puissantes telles que des installations et mises à jour d’applicatifs (ex: antivirus), des interactions avec des fichiers Words ou Excel, des interfaces graphiques, etc.

Comments (0)

Tags: , ,

Optimiser le filtre antispam de Zimbra avec les RBL

Posted on 20 May 2010 by Thomas

Lors de l’installation de Zimbra, la configuration de SpamAssassin se résume au minimum.

Pour optimiser le filtrage des spams, vous pouvez configurer et activer des RBL (Realtime Blackhole List). Ces fameuses RBL vont permettre de lister les serveurs connus pour être de gros spammeurs et de catégoriser en spam les mails reçus de ces serveurs. On pourrait donc résumer ça à une grosse liste noire.

Attention cependant à ne pas utiliser n’importe quelle RBL, certaines étant plus ou moins efficaces… Je vous conseille donc d’utiliser uniquement celles répertoriées sur le site officiel de Zimbra.

Voici comment configurer et activer l’utilisation des RBL avec Zimbra:

- Connectons-nous en tant qu’utilisateur zimbra:

thomas@cryonux:~$ su zimbra

- Listons tout d’abord les RBL actuellement utilisées par SpamAssassin:

zimbra@cryonux:~$ zmprov gacf | grep zimbraMtaRestriction

qui me donne:

zimbraMtaRestriction: reject_invalid_hostname
zimbraMtaRestriction: reject_non_fqdn_hostname
zimbraMtaRestriction: reject_non_fqdn_sender
zimbraMtaRestriction: reject_unknown_client
zimbraMtaRestriction: reject_unknown_hostname
zimbraMtaRestriction: reject_unknown_sender_domain

- Récupérons les RBL en cours et ajoutons à celles-ci les RBL listées sur le site de Zimbra dans la commande suivante:

zimbra@cryonux:~$ zmprov mcf zimbraMtaRestriction reject_invalid_hostname zimbraMtaRestriction reject_non_fqdn_hostname zimbraMtaRestriction reject_non_fqdn_sender zimbraMtaRestriction reject_unknown_client zimbraMtaRestriction reject_unknown_hostname zimbraMtaRestriction reject_unknown_sender_domain zimbraMtaRestriction "reject_rbl_client dnsbl.njabl.org" zimbraMtaRestriction "reject_rbl_client cbl.abuseat.org" zimbraMtaRestriction "reject_rbl_client bl.spamcop.net" zimbraMtaRestriction "reject_rbl_client dnsbl.sorbs.net" zimbraMtaRestriction "reject_rbl_client sbl.spamhaus.org" zimbraMtaRestriction "reject_rbl_client relays.mail-abuse.org"

Voilà, ça devrait être déjà mieux !

Comments (0)

Tags: , , ,

Restaurer une sauvegarde Amanda avec Amrestore

Posted on 20 May 2010 by Thomas

L’utilitaire Amrestore permet tout comme Amrecover de restaurer les fichiers sauvegardés par Amanda, mais de manière moins “fine”. En effet, si les données à sauvegarder sont trop volumineuses, Amanda effectue la sauvegarde en découpant en plusieurs morceaux les disques déclarés dans votre fichier disklist. Cela permet d’effectuer la sauvegarde plus rapidement.

Amrestore se base sur ces morceaux (chunks) pour établir une restauration. Il ne peut restaurer qu’au minimum un morceau. Pour restaurer un seul fichier, vous êtes obligé de restaurer l’intégralité du morceau dans lequel il se trouve.

Quel est alors l’intérêt d’utiliser un outil “moins puissant” ? C’est simple, contrairement à Amrecover, Amrestore n’a pas besoin des fichiers d’index pour effectuer une restauration. Si vos index sont perdus, vous pouvez donc quand même effectuer une restauration de vos fichiers.

Voici la méthode

Rembobiner la bande:

thomas@cryonux:~$ mt -f /dev/nst0 rewind

Lancer la commande pour lister le contenu de la bande:

thomas@cryonux:~$ amrestore -p /dev/nst0 no-such-host > /dev/null

Voici un exemple de listing qu’amrestore va vous générer:

CMD  N° DE CHUNK   ACTION  SERVEUR._DISQUE.DATE
amrestore: 1: skipping pdc._home.20080917.3.01
amrestore: 2: skipping pdc._home.20080917.3.02
amrestore: 3: skipping pdc._home.20080917.3.03
amrestore: 4: skipping pdc._etc.20080917.3.1
amrestore: 5: skipping pdc._var_lib.20080917.3.2
amrestore: 6: skipping sgbd._opt.20080917.3.3
amrestore: 7: reached end of tape: date 20080918

Puis rembobiner la bande à nouveau:

thomas@cryonux:~$ mt -f /dev/nst0 rewind

Pour restaurer l’ensemble des données du serveur “pdc” présentes sur la bande nous allons faire:

thomas@cryonux:~$ amrestore /dev/nst0 pdc | tar xvf -

Pour ne restaurer par exemple que le disque “etc” du serveur “pdc” nous allons faire:

thomas@cryonux:~$ amrestore /dev/nst0 pdc etc | tar xvf -
amrestore: 1: skipping pdc._home.20080917.3.01
amrestore: 2: skipping pdc._home.20080917.3.02
amrestore: 3: skipping pdc._home.20080917.3.03
amrestore: 4: restoring pdc._etc.20080917.3.1
amrestore: 5: skipping pdc._var_lib.20080917.3.2
amrestore: 6: skipping sgbd._opt.20080917.3.3
amrestore: 7: reached end of tape: date 20080918

Il y a un petit truc pour aller plus rapidement, si au préalable vous aviez lancé le listing de la bande (cf commande correspondante). Amrestore lance la recherche de l’emplacement des données sur la bande avant d’effectuer la restauration et ce processus peut prendre énormément de temps si vous avez beaucoup de données sauvegardées. Le truc consiste alors à se placer directement à l’endroit des données à restaurer, pour cela il suffit d’avoir le numéro du morceau correspondant à cet emplacement sur la bande (n° de chunk).

Exemple avec mon disque “etc” du serveur “pdc”:

thomas@cryonux:~$ mt -f /dev/nst0 fsf 4

4 correspondant donc au morceau où se trouve “etc”

amrestore: 4: restoring pdc._etc.20080917.3.1
amrestore: 5: skipping pdc._var_lib.20080917.3.2
amrestore: 6: skipping sgbd._opt.20080917.3.3
amrestore: 7: reached end of tape: date 20080918

Il ne reste alors plus qu’à décompresser l’archive restaurée pdc._etc.20080917.3.1 avec tar -xzvf

A noter, Amanda n’utilise pas de format propriétaire pour la sauvegarde de vos fichiers. Si votre serveur de sauvegarde est en rade et que vous devez faire une restauration en urgence, vous pouvez tout simplement utiliser les outils Linux pour restaurer vos bandes. Certes, ça va être du “tout ou rien” mais ce n’est pas le moment de chipoter !

En utilisant dd on va pouvoir restaurer tout une bande en un seul coup:

thomas@cryonux:~$ dd  if=/dev/nst0 bs=32k count=1
thomas@cryonux:~$ dd if=/dev/nst0 bs=32k skip=1 | gunzip | tar xvf

Comments (0)

Tags: , ,

Activer automatiquement le verrouillage numérique sous GDM (Ubuntu)

Posted on 20 May 2010 by Thomas

Je n’ai jamais compris pourquoi cette option n’était pas activée par défaut, m’enfin voici comment l’activer dès l’invit de connexion de GDM:

Dans le fichier /etc/gdm/Init/Default, placer les lignes suivantes:

if [ -x /usr/bin/numlockx ] ; then
/usr/bin/numlockx on
fi

It works !

Comments (0)