09déc.

Libérer le LG LDU-1900D

Je prévois un déplacement au Maroc pour cet hiver. Le marché de l'Internet sans fil (CDMA et UMTS) là bas est assez développé et deux opérateurs se livrent une rude concurrence sur ce marché. L'acteur qui m'a semblé le plus populaire sur le marché, Wana, ex-Wanadoo et filiale du groupe ONA exploite un réseau CDMA (EVDO Rev.A). Ils ont choisi le fabriquant Coréen LG pour leur fournir des modems USB abordables. Malheureusement, depuis le début de l'automne, un nouveau modem ne fonctionnant (à priori) que sur plate-forme Windows a commencé à innonder le marché : le LDU-1900D, laissant les utilisateurs Linux et MacOS X en mauvaise posture. Comptant accéder à Internet durant mon voyage, je me suis penché sur la question...

Lire la suite

02déc.

Lister la commande complète avec 'ps'

Aller encore un petit truc ce matin. La plupart des utilisateurs de Linux connaissent la commande ps. Elle permet de voir la liste des processus qui roulent sur le système. Les options les plus utilisées sont -ef ou -aux.

La sortie de la commande ps est formatée selon la largeur de votre terminal. Par exemple si votre terminal peut afficher 80 caractères sur une ligne, vous ne connaîtrez pas les options d'une commande plus longue:

root      7035  7010  0 07:38 pts/1    00:00:00 /bin/bash /usr/bin/rbme hydre:/home /var
root 7036 7035 0 07:38 pts/1 00:00:00 tee -a /tmp/RBME.rbme.dEZHQGMqhjoeHT7024/output /tmp/RB
root 7060 7033 0 07:38 pts/1 00:00:01 /usr/bin/rsync --link-dest=/mnt/nas01-1500/rbme/hydre/2
root 7061 7060 0 07:38 pts/1 00:00:00 ssh -c blowfish-cbc hydre rsync --server --sender -lHog
root 7062 7060 0 07:40 pts/1 00:00:00 /usr/bin/rsync --link-dest=/mnt/nas01-1500/rbme/hydre/2
root 7065 1097 0 08:20 ? 00:00:00 sshd: root@pts/0

Si on veut avoir la liste des commandes complètes, il suffit de rediriger la sortie standard vers cat. Le terminal n'a donc plus d'impact:

root      7035  7010  0 07:38 pts/1    00:00:00 /bin/bash /usr/bin/rbme hydre:/home /var
root 7036 7035 0 07:38 pts/1 00:00:00 tee -a /tmp/RBME.rbme.dEZHQGMqhjoeHT7024/output /tmp/RB
ME.rbme.dEZHQGMqhjoeHT7024/hydre
root 7060 7033 0 07:38 pts/1 00:00:01 /usr/bin/rsync --link-dest=/mnt/nas01-1500/rbme/hydre/20
08-12-01/ --relative -aSH --ignore-errors -x --exclude-from=/dev/fd/63 --include-from=/dev/fd/62 hydre:/
home /var /mnt/nas01-1500/rbme/hydre/2008-12-02/
root 7061 7060 0 07:38 pts/1 00:00:00 ssh -c blowfish-cbc hydre rsync --server --sender -lHog
DtprRxS --ignore-errors . /home /var
root 7062 7060 0 07:40 pts/1 00:00:00 /usr/bin/rsync --link-dest=/mnt/nas01-1500/rbme/hydre/2
008-12-01/ --relative -aSH --ignore-errors -x --exclude-from=/dev/fd/63 --include-from=/dev/fd/62 hydre
:/home /var /mnt/nas01-1500/rbme/hydre/2008-12-02/
root 7065 1097 0 08:20 ? 00:00:00 sshd: root@pts/0

On voit ici tous les arguments de la commande rsync. Comme vous le voyez, je suis en train de travailler sur la solution de backup que je vais bientôt mettre en vente...

28nov.

Convertir des dates

C'est souvent utile, alors je partage avec vous deux petits trucs.

D'abord un petit rappel. Unix, et donc Linux, compte le temps en secondes depuis le 1er janvier 1970. Donc si vous voulez savoir combien de secondes se sont écoulées, vous faite la commande suivante (il est ven nov 28 11:12:53 EST 2008):

[scarrillo@vercors ~]# date +%s
1227888773

Si vous avez une application qui fait des logs avec des dates marquées en seconde, comme par exemple squid (je devrais bientôt faire un article à ce sujet), et que vous voulez savoir à quelle heure a été fait l'accès, voici comment faire:

Lire la suite

16nov.

Linux : Volumes disque chiffrés avec LUKS

Le goût du LUKS


Le système Linux fournit de manière native un mécanisme de chiffrement de périphériques de type "bloc", appellé LUKS (pour Linux Unified Key Setup). Ce système propose une approche intéressante, dans le sens où l'accès aux périphériques chiffrés peut être délégué à plusieurs clés (jusqu'à huit). Il est ainsi possible de donner accès à un périphérique à plusieurs personnes, ou encore de donner à une personne plusieurs ressources pour accéder au volume ; par exemple une clé d'utilisation courante, une clé issue d'une empreinte digitale, et une clé en coffre à la banque.

Lire la suite

08nov.

Augmenter le nombre de sessions telnet simultanées

Un de mes gros clients a des terminaux qui se connectent avec le protocole telnet sur le serveur. Par défaut RedHat Enterprise Linux ne propose pas suffisament de sessions simultanées.

Comme je lance telnet avec xinetd, il faut augmenter le nombre d'instances de xinetd simultanées. Voici comment:

cat /etc/xinetd.conf
#
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/

defaults
{
instances = 120
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}

includedir /etc/xinetd.d
De cette façon, 120 utilisateurs peuvent utiliser le serveur simultanément.

24oct.

Changer le fuseau horaire avec CentOS

Ce matin, je me configure une machine virtuelle chez Gandi pour surveiller mes serveurs avec Munin. Et comme les machines virtuelles de Gandi sont configurées sur le fuseau horaire de Paris, j'ai du chercher comment changer l'heure.

Voici la solution:

[root@gandi etc]# date
Fri Oct 24 16:54:34 CEST 2008
[root@gandi etc]# cat /usr/share/zoneinfo/America/Montreal > /etc/localtime
[root@gandi etc]# date
Fri Oct 24 10:54:55 EDT 2008

23oct.

Réparer un disque RAID sous linux

Une façon simple de protéger ses données contre la perte d'un disque dur est de créer une grappe RAID (Redundant Array of Inexpensive Disks)

Linux permet de s'affranchir de cette tâche assez facilement. Nous allons voir ici, une fois la grappe crée (si vous voulez que je fasse un article sur la création du RAID, laissez un commentaire), comment effectuer un changement de disque sans éteindre le serveur.

Pour cet exercice, nous disposons d'un serveur avec deux disques SATA hotswap qui seront reconnus comme des périphériques /dev/sd[a-z]

Le principe du test consiste en l'arrachage d'un disque, au remplacement par un disque neuf et à la resynchronisation des disques (RAID).

Lire la suite

19oct.

Dépasser la limite de 2Gb avec tar

Saviez-vous que la commande tar ne peut pas générer des fichiers d'une taille supérieure à 2Gb? En effet, si vous voulez faire des archives d'une taille supérieure, vous devez utiliser les options "multi-volume" afin de créer plusieurs fichiers. Voici un exemple:

tar   -c \
-v \
--tape-length 1900000 \
--multi-volume \
-f /backup/`hostname`-home.vol1.`date "+%Y%m%d"`.tar \
-f /backup/`hostname`-home.vol2.`date "+%Y%m%d"`.tar \
-f /backup/`hostname`-home.vol3.`date "+%Y%m%d"`.tar \
-f /backup/`hostname`-home.vol4.`date "+%Y%m%d"`.tar \
--preserve \
--same-order \
--one-file-system \
/home >> /backup/`hostname`-home.`date "+%Y%m%d"`.log 2>&1

Vous devez ensuite, si vous le voulez, zipper les fichiers individuellement avec une petite boucle.

C'est fastidieux et si le /home dépasse 8Gb, on aura pas assez de volumes...

Afin de contourner le problème, on peut utiliser les redirections d'entrée-sortie afin de créer une archive tar d'une taille supérieure à 2Gb:

tar -cv --preserve \
--same-order \
--one-file-system \
/home > /backup/`hostname`-home.vol4.`date "+%Y%m%d"`.tar

Comme c'est le shell et plus tar qui crée le fichier, plus de problème de taille.

et si on veut zipper à la volée:

tar -cv --preserve \
--same-order \
--one-file-system \
/home | bzip2 > /backup/`hostname`-home.vol4.`date "+%Y%m%d"`.tar.bz2

fera le travail. ;)

19oct.

Howto - Désactiver IPv6

Le protocole IPv6 est maintenant disponible en standard dans la plupart des distributions Linux. Si votre passerelle ne le gère pas, cela ralentit le réseau.

Voici comment le désactiver :

Dans les distributions de saveur RedHat (CentOS, RHEL, Fedora):

Ajouter ces deux lignes dans le fichier /etc/modprobe.conf

::::::::::::::
/etc/modprobe.conf
::::::::::::::
alias net-pf-10 off
alias ipv6 off
Dans les distributions de saveur Debian (dont Ubuntu), on ajoutera les mêmes lignes dans /etc/modprobe.d/aliases



04sept.

Howto - Encrypter un fichier sous Linux avec gpg

Si vous voulez laisser vos fichiers personnels sur un serveur et que vous ne voulez pas qu'ils puissent tomber dans de mauvaises mains, voici une façon très simple de chiffrer un fichier:

scarrillo@estemaira:~/Bureau$ gpg -c fichierperso.ods
Entrez la phrase de passe:
Répétez la phrase de passe:
scarrillo@estemaira:~/Bureau$ ls -l
-rw-r--r-- 1 scarrillo scarrillo 979 2008-09-04 18:07 fichierperso.ods
-rw-r--r-- 1 scarrillo scarrillo 690 2008-09-04 18:07 fichierperso.gpg

Il faut bien sûr effacer votre fichier original.

Pour décrypter maintenant:

scarrillo@estemaira:~/Bureau$ gpg -d fichierperso.gpg > fichierperso.ods
gpg: données chiffrées avec CAST5
gpg: chiffré avec 1 phrase de passe
scarrillo@estemaira:~/Bureau$ ls -l fichierperso*
-rw-r--r-- 1 scarrillo scarrillo 979 2008-09-04 18:10 fichierperso.ods
-rw-r--r-- 1 scarrillo scarrillo 690 2008-09-04 18:07 fichierperso.gpg
Votre fichier original est maintenant restauré. ;)

Il existe bien-sûr plein d'autres façons de crypter un fichier, dont beaucoup sont plus fiables. Cette méthode à l'avantage d'être simple et de ne pas nécessiter la visualisation du manuel à chaque fois! Elle suffit pour la plupart des utilisations.