X-Space

Aller au contenu | Aller au menu | Aller à la recherche

samedi, avril 19 2008

Quelques heures dans la peau de TitaX, suite et fin

Avec 6 mois de retard, voici la suite et la fin de mes aventures (partie 1, partie 2).

Lors de mon dernier billet, de nombreuses questions restaient en suspend : problème matériel (mon opinion) ou problème d'OS (Dell).

Comme je le prévoyais le serveur est retombé mi aout. L'OS est donc clairement hors de causes, mais le technicien Dell (toujours le même) ne voulait toujours rien savoir.

J'ai lancé des stress tests (thrash, bonnie++) sur les disques durs sans résultats.

J'ai alors soumis le problème à mes colistiers de SOS-Admin, qui flairaient eux aussi le problème hardware. Du fait de l'absence de syslog, Stephane B. m'a suggéré d'externaliser les logs.

Externaliser les logs, mais qu'est ce donc ?

Et bien c'est tout simple, les logs sous linux sont gérer par un petit démon qui s'appelle syslogd. Ce petit démon possède une fonctionnalité plutôt intéressante : il permet d'envoyer les logs d'une machine sur une autre machine (externaliser !). Plutôt pratique lorsque la machine à des problèmes de disques durs et donc que rien ne s'écrit dans les fichiers logs.

Voyons maintenant comment configurer le bouzin.

Coté émetteur :

C'est assez simple : il suffit de configurer syslogd afin de lui dire quel type de log on veut envoyer sur le serveur distant. Dans mon cas, on log tout.

$ cat /etc/syslog.conf | grep "x-space"
*.*                                                     @x-space.net

Coté destinataire c'est un peu plus compliqué :

Tout d'abord, il faut demander au démon d'écouter sur le réseau (désactivé par défaut):

# tail -n1 /etc/default/syslogd
SYSLOGD="-r"

Puis on ouvre la parefeu en UDP sur le port de syslog (voir /etc/services):

iptables -A INPUT -s IP_EMETTEUR -p udp --dport 514  -j ACCEPT

Ne reste plus qu'a redémarrer les démons de chaque coté.

Et la magie :

Aug 28 19:02:47 ******* kernel: sd 0:2:0:0: SCSI error: return code = 0x00040000
Aug 28 19:02:47 ******* kernel: end_request: I/O error, dev sda, sector 242365
Aug 28 19:02:47 ******* kernel: sd 0:2:0:0: SCSI error: return code = 0x00040000
Aug 28 19:02:47 ******* kernel: end_request: I/O error, dev sda, sector 242381
Aug 28 19:02:47 ******* kernel: lost page write due to I/O error on dm-0
Aug 28 19:03:18 ******* kernel: sd 0:2:0:0: SCSI error: return code = 0x00040000
Aug 28 19:03:18 ******* kernel: end_request: I/O error, dev sda, sector 94319189
Aug 28 19:03:18 ******* kernel: lost page write due to I/O error on dm-0

Epilogue

Le technicien Dell (toujours le même) a alors voulu exclure un dysfonctionnement lié au disque 2 vu que c'est que lui qui remontait des erreurs donc il m'a demandé de faire fonctionner le RAID en mode dégradé (on retire un disque). Ça a marché jusqu'à que le serveur retombe "définitivement" : le raid s'est effondré et n'a pas pu se remonter sur deux disques. J'ai du donc gueuler la sérieusement sur un autre technicien Dell qui a bougé cette fois et a fait changer le contrôleur RAID rapidement (J+1). Depuis le serveur fonctionne très bien.

jeudi, janvier 24 2008

Renommer des fichiers a la volée

Toujours lors de la réinstallation de ce serveur, j'ai du transférer les archives d'Awstats afin de ne pas perdre mes statistiques passés. Jusque la rien de compliqué, mais j'ai aussi revu la configuration des différents domaines, par exemple : "x-space" renommé en "x-space.net", or le problème est que les fichiers d'archives n'étaient plus correctement nommés, donc obligation de les renommer à la volée (trop nombreux pour le faire à la main).

C'est ierre Andrews, du site Production of Mind, qui m'a donné la solution :

ls -d *cyber-addict.txt | sed 's/awstats\([0-9]*\).x-space.txt$/mv "&" "awstats\1.x-space.net.txt"/' | bash

Pour le détail des commandes, voir par la.

dimanche, juillet 29 2007

Quelques heures dans la peau de TitaX, la suite

Suite de mes aventures.

Le serveur est retombé le 19 juillet. Donc la mise à jour du controleur RAID et des disque dur n'a rien changé.

Recontact avec Dell.

On a d'abord tenté d'installer l'utilitaire DSET (Utilitaire de support pour systèmes Dell) mais comme c'est du Debian, ca passe pas ( Dell supporte uniquement les produits RedHat ).

Rendez vous fut pris pour utiliser un LiveCD ( basé sur REHL 4.4 ) afin d'accéder aux journaux systèmes.

Les logs ne contenaient rien de vraiment intéressants. M'enfin il faut quand même remarquer que la machine est tombé trois fois:

  1. Le 27 juin 2007 ( date du constat, cela peut être la veille )
  2. Le 03 juillet 2007
  3. Le 19 juillet 2007 à 19h30

Et que à des dates similaires, il s'est produit la perte de l'une des alimentations redondantes:

Severity : Critical
Date and Time : Tue Jun 26 17:21:50 2007
Description : PS 1 Status: power supply sensor for PS 1, failure was asserted

Severity : Critical
Date and Time : Tue Jun 26 17:21:51 2007
Description : System Board PS Redundancy: PS redundancy sensor for System Board, redundancy lost

Severity : Critical
Date and Time : Tue Jun 26 17:21:51 2007
Description : PS 1 Status: power supply sensor for PS 1, input lost was asserted

  1. Le 26 juillet 2007 - 17h21
  2. Le 19 juillet 2007 - 18h17
Je trouve la coïncidence troublante. Tellement troublante que j'ai envie de faire le test à mon retour de vacances si la machine n'est pas retombé d'ici la.

Quel peut être le lien entre un disque dur en read-only et un problème électrique?
  • Surtension ?
  • Mauvaise isolation électrique?
  • Court-circuit ?

Il reste que Dell pour l'instant ne croit pas au problème hardware mais à un problème de l'OS, on est donc passé sous CentOS 5 ( non supporté par Dell mais c'est du REHL à 99.999% ).




jeudi, juillet 12 2007

[linux]Connaitre la taille d'un dossier

Cette question, je me la suis posé souvent. 

En effet, un simple listing du dossier avec la commande "ls -l" ne donne rien: un dossier étant un fichier particulier vous obtiendrez la taille de 4096 pour chaque dossier.

Et bien, la commande du ( disque usage ) réponds à ma question.

Exemple

$ du -hs backup/
18G backup/

  • h pour "Human Readable": sans le résultat aurait été "18078868"

mardi, juillet 10 2007

Quelques outils pour surveiller un serveur

iftop


Cet outil permet de surveiller le trafic circulant sur une interface à la manière d'un top. Ca m'a été trèsutile pour identifier la provenance d'un trafic anormal sur ce serveur le matin: Googlebot !

logwatch

Comme son nom l'indique, ce programme analyse les fichiers de logs et génère un mail informatif tous les matins.
  • Echec de connexion ssh
  • Echec de connexion ftp
  • Connexion imap
  • Occupation disque dur
  • Résumé du trafic Apache2, liste des erreurs 404
  • ...
Bref indispensable

Installation ?

aptitude install logwatch

aptitude install iftop

Et hop ca roule.

jeudi, juillet 5 2007

Quelques heures dans la peau de TitaX

Je suis actuellement en stage de 2ième année et dans le cadre de ce stage, avec un collègue, je développe un site web / espace collaboratif mais dois aussi installer et configurer le serveur web qui accueillera le site. La machine est un PowerEdge 2950 ( Père Noël si tu passes dans le coin ) sur lequel on a installé Debian Etch ( oui je sais j'ai toujours pas publié mes notes d'installation de ce serveur ). Sauf que, gros problème, le système de fichier se met de temps en temps en lecture seule.

Lire la suite...

samedi, mai 19 2007

Internet Explorer 6 et Linux

IE 6 et Linux: WTF ??

Et non je ne suis pas devenu fou. Faisant face à un bug sous IE6: un site web ne s'affichant pas correctement alors que développé en xhtml1.1 et ne posant aucun problème sous IE7. J'ai du me résoudre à réinstaller IE6.

Premier hypothèse: Faire cohabiter IE6 & 7 sous mon Windows XP. Une petite recherche Google-istique m'a fait trouver une solution à base de virtualisation. Mais problème, Virtual PC ne tourne pas sous XP Home.

Deuxième Hypothèse: Emuler IE6 avec Wine sous Fedora 6. Après quelque recherche, je suis tombé sur IEs4Linux et en 2 petit coup de yum c'était réglé.

samedi, mai 12 2007

fail2ban

En étudiant les logs du serveur suite à une variation anormale de la RAM utilisée, je viens de m'apercevoir que le serveur subissait des attaques par force brute.

Petit exemple:

May 12 07:31:01 nsXXXX sshd[30255]: Illegal user bnc from 66.XXXXXX
May 12 07:31:01 nsXXXX sshd[30255]: Address 66.XXXXXX maps to mail.XXX.com, but this does not map back to the address - POSSIBLE BREAKIN AT TEMPT!
May 12 07:31:01 nsXXXX sshd[30255]: error: Could not get shadow information for NOUSER
May 12 07:31:01 nsXXXX sshd[30255]: Failed password for illegal user bnc from 66.XXXXXX port 41663 ssh2

Premier réflexe: bannir l'adresse IP, iptables est notre ami!

iptables -A INPUT -s 66.XXX-j DROP

Après une étude plus attentive, je me suis aperçu que ce n'était pas la première fois et pas uniquement sur cette IP. Je me suis souvenu d'un petit programme qui surveillait les logs d'authentification et procédait à un ban temporaire de l'adresse IP le cas échéant: fail2ban.

aptitude install fail2ban

J'ai aussi configuré la surveillance sur Apache, proftpd.

Lien Externe

Fail2ban contre l'attaque par brute force

jeudi, mai 10 2007

Organisation FileSystem: FTP, Apache

Je vous parlais précédemment de mon projet de réinstallation du serveur qui héberge X-Space pour passer à Debian 4 ( Etch ). Avant de pratiquer cette installation, je me pose la question de l'organisation des fichiers.

La problématique est de gérer de multiples domaines, de multiples utilisateurs et une architecture claire.

Par défaut, Apache est configuré pour pointer vers /var/www sur la partition / donc. Or sur le serveur la partition / est de petite taille. On va donc utiliser /home qui est une partition à part.

Plusieurs sites, plusieurs domaines, j'inclinerais donc à construire comme ca:

  • /home/livebox-script.com/
  • /home/cyber-addict.fr/
  • /home/x-space.net/
  • /home/temp/
  • ...

Plusieurs utilisateurs, avec leur propre HomeDirectory.

  • /home/ED/
  • /home/TitaX/
  • ...

Un site peut être géré par plusieurs utilisateurs, cet utilisateur peut avoir son propre ftp, accessible par VirtualHost.

Pour l'instant la solution que je retiens est de monter l'arborescence souhaité dans le dossier de l'utilisateur concerné avec la commande mount.

mount --bind /home/x-space.net/ /home/ED/x-space.net/

Ce qui nous donne:

  • /home/ED/x-space.net/ -> http://www.x-space.net
  • /home/ED/temp/ -> http://temp.x-space.net
  • /home/ED/www/ -> http://ed.x-space.net

Se pose maintenant, la gestion des droits et des utilisateurs, quel serveur FTP a utilisé ? pure-ftpd ou proftd ? Comment laisser la possibilité à plusieurs utilisateurs d'accéder et de modifier le même contenu.

Ce sera l'objectif d'un autre billet, mais je suis ouvert à toutes vos propositions, idées. N'hésitez pas non plus à nous partager votre architecture en commentaires ou sur votre blog. ( hein TitaX )