Keyword - expertise

Fil des billets - Fil des commentaires

11déc.

Autoriser l'accès à un serveur sur demande

Quand on administre un serveur Linux, il est nécessaire de pouvoir s'y connecter, idéalement avec ssh. Le problème c'est que si on laisse un port ssh ouvert au monde entier, on se retrouve rapidement avec des série d'attaques "Brute Force" qui risquent d'exposer le serveur en plus de charger son cpu.

Afin de contourner le problème, on peut décider d'autoriser le ssh (ou d'autres protocoles), seulement à partir d'une adresse IP, par exemple celle d'un machine passerelle sur internet, ou celle d'un client à qui on donne ce genre d'accès. La commande iptables ressemblerait
à ceci:

iptables -A INPUT -s $IP_DE_CONFIANCE -p tcp --dport 22 -j ACCEPT

Ça nous limite toutefois à une adresse IP qu'on connaît à l'avance. J'ai donc imaginé une solution très simple qui permette d'ouvrir la porte à partir d'une page web...

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

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.

30oct.

En serais-je arrivé ou je suis sans Linux?

En faisant ma revue de presse en ligne aujourd'hui, je suis tombé sur cet article qui a éveillé un brin de nostalgie.

En effet, il présente exactement ce qu'était ma première compagnie en 1995. 32 lignes de téléphone louées à France Telecom. Oui oui, 32 prises de téléphones, pas de T1. Une ligne Transpac de 128 kbps (4000/mois) partagée entre nos quelques 1500 clients qui fut suivie plus tard par une ligne satellitaire de 256 Kbps ($8000/mois), et deux serveurs linux sous RedHat qui géraient le tout...

C'était il y a 13 ans déjà... C'est fou comme le monde a changé, mais Linux fait toujours partie de ma vie, et probablement de la votre, même si vous ne le savez pas!

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