Bande de porcs

Ce soir, je prends l’ascensceur. 3 jours dans cet etat.

Merci les voisins/locataires? Merci le gardien qui n’en rame pas une?

Sans commentaire!

Quel jolie poubelle ;)

Posted in Lolo's life | Comments Off

Mon colocataire est une garce

Je suis allé voir cette pièce la semaine dernière, et c’était sympa comme tout.

Allez y les yeux fermés

http://www.au-theatre.com/bdd/PageT/moncolocataire.htm

Mon colocataire est une garce

Posted in Lolo's life | Comments Off

Tips SSH

Comment se connecter à un système distant sans taper sans cesse son mot de passe:

Je souhaite me connecter de mon portable vers mon serveur web rapidement:

$ ssh-copy-it -i ~/.ssh/id_dsa.pub monlogin@monserveurweb

je tape mon mot de passe

je peux maintenant taper ssh monlogin@monserveurweb et je suis directement connecté à mon serveur web.

Attention, la clé ssh est utilisable par toute personne ayant un accès physique au portable. Il faut donc la protéger par un mot de passe :

ssh-keygen -p -f ~/.ssh/id_dsa

On entre le mot de passe, la clé est alors protégée.

On peut utiliser un mécanisme d’agent SSH afin de n’avoir à taper la passphrase qu’une seule fois à l’ouverture de la session.

Posted in SSH, Tips | Comments Off

Tips procmail

Comment préfixer certains mails par une chaine de caracteres arbitraire:

Je souhaite par exemple ajouter la date du jour au format JJ-MM-AAAA HH:MM devant tous les sujets de mes nouveaux mails:

dans mon ~/.procmailrc j’ajoute:

:0
*
{
SUBJECT=`formail -zxSubject:`
SUBDATE=`date +%d-%m-%Y\ %H:%M`
:0fhw
| formail -I”Subject: [$SUBDATE] $SUBJECT”
}

Posted in Procmail, Tips | Comments Off

Sauvegarder son système

Avant un upgrade majeur, il est préférable de disposer d’une sauvegarde à jour de son système (et de ses données).

Comment faire simplement?

Prérequis:

Avoir soit une autre machine sous linux, soit un 2eme disque dur (et un live-CD au cas où…)

  • Avec une 2eme machine:

Sur la machine à sauvegarder (machine source, il nous faut disposer de rsync, et ssh)

Sur la machine qui recevra la sauvegarde, il nous faut disposer de place (équivalent de la place occupée sur le disque de la machine source), rsync, et ssh

Créons le répertoire accueillant les sauvegardes sur la machine destination:

# mkdir -p /backup/machinesource

Copions le systeme et les données à partir de la machine source:

# cd / && rsync -avP –numeric-ids –exclude=’/proc’ –exclude=’/sys’ \
–exclude=’/tmp’ / machinedestination:/backup/machinesource

machinedestination étant le nom DNS de la machine de destination (pouvant etre remplacé par son adresse IP).

  • Avec un 2e disque dur:

Il nous faut disposer de la commande cp, ou de rsync.

on monte le 2eme disque dur sur le point de montage /sauvegarde par exemple

# cp -avux / /sauvegarde

ou encore

#rsync -avPx / /sauvegarde

Dans les exemples précédents nous avons considéré que / abritait tout le systeme (pas de montage séparé pour /var, /usr, /etc…).

Il vous sera ainsi très facile en cas de problème de récupérer un systeme fonctionnel en effectuant un transfert dans le sens inverse.

Pour réaliser des sauvegardes plus ciblées, plus simples… n’hésitez pas à jeter un oeil sur backup manager.

Posted in Sauvegardes | 3 Comments

Migrer son système en RAID 1 ou RAID5

Hypothese:

Vous disposez de:
- Un systeme fonctionnel
- Un live-CD linux (Knoppix, GRML…)
- Suffisemment de disques durs pour faire ce que vous voulez faire.
- Un kernel supportant le raid

Comme d’habitude, faites des sauvegardes, si ça pétait c’est pas de ma faute ;)

Commençons par le commencement:

Vous faites une sauvegarde de votre systeme sur un autre HD, un autre systeme…

Comment faire?

Monter un autre disque dur (ici sur /newdisk)

cp -avux / /newdisk

ou encore en root toujours:

rsync -avP –numeric-ids / autremachine:/backupmamachine

Passons aux choses sérieuses.

On va maintenant rebooter sur le live-CD

Création de l’array raid 1 (miroir)
- Supposition (raid 1 sur hda et hdb)

fdisk /dev/hda
on crée ses partitions avec comme type ‘fd’

mdadm -Cv /dev/md0 -l1 -n2 /dev/hda1 missing
mdadm -Cv /dev/md1 -l1 -n2 /dev/hda2 missing

autant de fois que vous avez créé de partitions

Créer le systeme de fichiers:

mkfs.ext3 /dev/md0
mkswap /dev/md1

On aurait aussi pu utiliser du XFS, ReiserFS….

on monte le disque de sauvegarde
mkdir /olddisk
mount /dev/hdb1 /olddisk

on monte le raid array
mkdir /newdisk
mount /dev/md0 /newdisk

on copie le systeme

cp -avux /olddisk /newdisk

on edite le fstab dans /newdisk/etc/fstab pour remplacer les /dev/hdx par des /dev/mdx

on oublie pas d’éditer /newdisk/etc/lilo.conf
boot=/dev/mdx
root=/dev/mdx
raid-extra-boot=mbr

on relance lilo dans un chroot
lilo -r /newdisk -v

on reboote la machine, youpi ça marche

il faut maintenant répliquer le miroir

on crée le meme partitionnement sur le 2eme disque que le 1er:meme tailles de partitions, meme type(fd)

Il est possible de le faire via sfdisk automatiquement (sfdisk -d /dev/hda | sfdisk /dev/hdb)

puis on fait

mdadm -a /dev/md0 /dev/hdb1
mdadm -a /dev/md1 /dev/hdb2

cat /proc/mdstat vous donnera l’avancement de la synchronisation du miroir

on oublie pas de lancer lilo pour que les 2 MBR soient mis à jour.

Pour convertir un système en RAID 5, il faut au minimum 3 disques et penser à créer une partition séparée qui servira de /boot (en raid 1 impérativement).

Posted in Debian, Sauvegardes | Comments Off

Le suspend to RAM

Depuis que j’ai mon portable (Inspiron 9300), j’essaye de temps en temps de faire fonctionner le suspend to RAM.

à l’occasion d’un dist-upgrade massif (Xorg7…), je me suis dit, pourquoi ne pas recompiler le noyau, les drivers nvidia… et réessayer le suspend to ram?

Et ça marche,

J’ai installé les sources du noyau 2.6.16, patché grâce aux patchs disponibles ici -> http://rtr.ca/dell_i9300/kernel/latest/ recompilé; et hop, un script plus tard, ça fonctionne.

Ci joint le .config de mon noyau ainsi que le script de suspend (à lier à l’acpi grace à /etc/acpi/actions/lm_lid.sh).

http://blog.unix-scripts.info/conf/kernel_config

http://blog.unix-scripts.info/conf/suspend.sh

Posted in Debian | Comments Off

De l’utilisation de /etc/procmailrc ou ~/.procmailrc

L’idée de ce post est de présenter un ~/.procmailrc commenté:

#BOF
#Constantes
DATE=`date +%Y-%m`
#Emplacement du dossier ou les mails seront délivrés
MAILDIR=$HOME/Maildir
#Emplacement ou le mail est sauvegardé en dernier ressort en cas de problème
ORGMAIL=$HOME/Maildir
#Mails sans importance (publicités…)
JUNKMAIL=.Junk/
#Répertoire dans lequel on stocke les .lock de formail, procmail…
HOMEMAIL=$HOME/Mail
#Log de procmail
LOGFILE=/tmp/$LOGNAME-procmail.log
#Mode volubile
VERBOSE=on
#Fichiers de white/black list permettant de whitelister/blacklister un domaine/expéditeur
WHITE_LIST=$HOME/.white-list
BLACK_LIST=$HOME/.black-list
#Fichier inclus (comme un include en PHP par exemple)
INCLUDERC=$HOME/.procmailinclude
#Permet de stopper le traitement si la machine ne s’appelle pas gw (utile en cas de montage de $HOME à travers NFS)
HOST=gw

########## Traitements procmail #########

#On déplace les mails ayant des “charset” très peu utilisés en europe de l’ouest dans le dossier Spam

UNREADABLE=’[^?"]*big5|iso-2022-jp|ISO-2022-KR|euc-kr|gb2312|ks_c_5601-1987′
:0:
* 10 $ ^Subject:.*=\?($UNREADABLE)
* 10 $ ^Content-Type:.*charset=”?($UNREADABLE)
.Spam/

:0:
* ^Content-Type:.*multipart
* B?? $ ^Content-Type:.*^?.*charset=”?($UNREADABLE)
.Spam/

#Si l’expéditeur est dans la whitelist, on ajoute un entete X-Whitelist positionné à Yes

:0
* ? formail -x”From” -x”From:” -x”Sender:” | egrep -is -f $WHITE_LIST
{
:0 fwh
| formail -a”X-Whitelist: Yes”
}

#Tag des mails grâce à bogofilter & Razor (On ne traite que les mails de moins de 128ko)
:0fw
* < 128000
| bogofilter -upelv

:0e
{ EXITCODE=75 HOST }

:0Wc
* < 128000
* ^X-Bogosity: Unsure.*
| razor-check
#On marque les spams reconnus par razor par un header X-Razor-Spam
:0af
| formail -A “X-Razor-Spam: YES”

#Tag des spams reconnus par razor par un sujet ****SPAM****
:0
* ^X-Razor-Spam: YES
{
SUBJECT=`formail -zxSubject:`

:0fhw
| formail -I”Subject: ****SPAM**** $SUBJECT”
}

#Si un mail a été détecté comme spam et que l’expéditeur est dans la liste blanche, alors le faire réapprendre comme courrier sollicité (Ham)

:0c
* ^X-Bogosity: Yes
* ^X-Whitelist: Yes
| bogofilter -Nl

#Si le mail a été détecté comme spam alors le déplacer dans le dossier adéquat.
:0
* ^X-Bogosity.*spamicity=1\.0
$JUNKMAIL
:0
* ^X-Bogosity.*spamicity=0\.9[56789]
$JUNKMAIL
:0
* ^X-(Spam-Flag|Razor-Spam): YES
$JUNKMAIL

#Emettre un bip si le mail est destiné à la boite principale
BEEP=`/usr/bin/beep -f 1000 -n -f 2000 -n -f 1500`

Posted in Anti Spam, Procmail | Comments Off

Se protéger du spam grâce à razor

Dans le précédent article (bogofilter), nous avions vu comment tagguer les Spams après une phase d’apprentissage.Nous allons voir comment aller plus loin grâce à Razor (http://razor.sourceforge.net/), un réseau collaboratif de “détection de spams”.

Comment cela fonctionne?

Un utilisateur rapporte un spam. Une empreinte est alors générée (comme une empreinte digitale). Tout futur mail dont l’empreinte correspond à une empreinte de spam connue sera à 100% un SPAM. Il est donc possible, étant donné que les apsmmeurs envoient en masse des centaines de milliers de fois le même mail, de s’en protéger efficacement.
J’utilise cette solution conjointement à bogofilter.

Bogofilter fonctionne dans un mode à trois etats:

Ham, Unsure, et Spam.

Ham: Le mail est un mail souhaité

Unsure: Bogofilter est “indécis” sur la nature du mail (cas épineux)

Spam: Bogofilter a de grandes présomptions d’avoir découvert un spam.

Afin de limiter les traitements inutiles, j’ai décidé de n’utiliser razor que dans les cas ou bogofilter marque un mail comme unsure.

Comment faire techniquement?

Après avoir installé razor:

razor-admin -create && razor-admin -discover

Passons à l’édition du ~/.procmailrc

## Razor
:0Wc
* < 128000
* ^X-Bogosity: Unsure.*
| razor-check

#Ce bloc passe à razor les mails de taille inférieurs à 128ko pour lesquels bogofilter à renvoyé un etat incertain
:0af
| formail -A “X-Razor-Spam: YES”

#Si razor détecte un spam, alors on ajoute une entete X-Razor-Spam dans le mail

:0
* ^X-Razor-Spam: YES
{
SUBJECT=`formail -zxSubject:`

:0fhw
| formail -I”Subject: ****SPAM**** $SUBJECT”
}

#Razor n’ajoutant pas de chaine spécifique au sujet, nous l’ajoutons

:0
* ^X-Razor-Spam: YES
.Spam/

#Si le mail est marqué comme spam par razor, on le déplace dans le dossier Spam

Posted in Anti Spam, Procmail | Comments Off

Bogofilter

Kezako?

Bogofilter est un puissant filtre bayésien permettant de tagguer le spam afin de pouvoir le repérer, trier, effacer… très facilement.

Quel intérêt? Remplacer SpamAssassin qui est, lui aussi très afficace, mais très consommateur de ressources (600 Mo en permanence sur mon modeste serveur mail).

Comment le mettre en place:

Il faut déja dans un premier temps “apprendre” au filtre ce que l’on considère comme courrier non sollicité (SPAM), et comme courrier souhaité (HAM).

Mes mails étant stockés au format maildir, nous nous rendons dans mon dossier de spams:

% cd ~/Maildir/.Spam/cur

for i in *; do bogofilter -s -I $i; done

Idem pour les mails sollicités (HAM)

% cd ~/Maildir/cur

for i in *; do bogofilter -n -I $i; done

Maintenant que bogofilter est “entrainé”, il faut modifier le ~/.procmailrc afin de filtrer les mails:

## BogoFilter
:0fw
* < 128000
| bogofilter -upelv

:0e
{ EXITCODE=75 HOST }
## BogoFilter

:0
* ^X-Bogosity.*spamicity=1\.0
.Spam/

:0
* ^X-Bogosity.*spamicity=0\.9[56789]
.Spam/

Ce code nous permet de déplacer dans un dossier Spam tous les mails considérés comme spam.

Que faire cas de détection d’un faux positif, ou d’un faux négatif?

Nous allons créer les dossiers Ham, Spam ainsi qu’un sous dossier Old pour chacun de ces dossiers dans notre boite mail nous permettant de faire réapprendre à bogofilter les mails concernés.

Le script suivant lancé périodiquement nous permettra de faire apprendre à bogofilter le Spam

#!/bin/sh

if [ $UID -eq 0 ]; then
echo “Lancement par les utilisateurs uniquement !” ;
exit
fi

if [ ! -d $1 ] || [ ! -d $2 ]
then
echo “Dossier manquant !” ;
exit 1
fi

SPAM=$1
OLDSPAM=$2
bogofilter=/usr/bin/bogofilter

# Reconnaissance du spam
echo “ANALYSE DU SPAM”
for f in $SPAM/*,S ; do
if [ -f $f ] ; then
echo $f ;
$bogofilter -s -I $f
fi
done
mv $SPAM/*,S $OLDSPAM/
echo “Done.”

Le script suivant lancé périodiquement nous permettra de faire apprendre à bogofilter le Ham

#!/bin/sh

if [ $UID -eq 0 ]; then
echo “Lancement par les utilisateurs uniquement !” ;
exit
fi

if [ ! -d $1 ] || [ ! -d $2 ]
then
echo “Dossier manquant !” ;
exit
fi

HAM=$1
OLDHAM=$2
bogofilter=/usr/bin/bogofilter

# Reconnaissance du ham
echo “ANALYSE DU FAUX SPAM”
for f in $HAM/* ; do
if [ -f $f ] ; then
echo $f;
$bogofilter -n -I $f
fi
done
mv $HAM/* $OLDHAM/
echo “Done.”
Ces scripts seront lancés par votre crontab grace aux lignes suivantes:

@daily /usr/local/bin/bogoaddspam.sh ~/Maildir/.Spam/cur ~/Maildir/.Spam.Old/cur
@daily /usr/local/bin/bogoaddham.sh ~/Maildir/.Ham/cur ~/Maildir/.Ham.Old/cur

Posted in Anti Spam, Procmail | Comments Off