BIND9 : supprimer le message "success resolving after reducing the advertised EDNS UDP packet size to 512 octets" des logs photo

BIND9 : résoudre l’erreur “ignoring out-of-zone data”

Bien configurer BIND9 pour que tout fonctionne correctement n’est pas vraiment intuitif et le parcours est semé d’embûches.

Sur mon ancien serveur OVH, j’ai connu l’erreur suivante pendant des mois :

/etc/bind/skyminds.net.hosts:15: ignoring out-of-zone data (ksXXXXXXX.kimsufi.com)

Alors bon, cela n’empêche pas du tout le serveur DNS de faire son travail mais c’est quand même un peu gênant de savoir que la configuration n’est pas optimale.

Voici comment y remédier.

Problème : BIND renvoie l’erreur “ignoring out-of-zone data”

Lors d’un checkconf BIND :

named-checkconf -z

Vous obtenez ceci :

/etc/bind/db.skyminds.net:15: ignoring out-of-zone data (ks3094174.kimsufi.com)
zone skyminds.net/IN: loaded serial 2011020911
zone localhost/IN: loaded serial 2
zone 127.in-addr.arpa/IN: loaded serial 1
zone 0.in-addr.arpa/IN: loaded serial 1
zone 255.in-addr.arpa/IN: loaded serial 1

Ce qui n’est pas vraiment optimal.

Lire la suite

Transférer des fichiers d'un serveur à un autre avec rsync photo

Transférer des fichiers d’un serveur à un autre avec rsync sous Linux

Il arrive très souvent que l’on ait besoin de transférer des fichiers rapidement, d’un serveur à un autre par exemple.

Bien sûr, on peut utiliser le FTP mais il y a beaucoup plus rapide et efficace : je vous présente rsync.[no_toc]

Synchronisation distante

rsync logo

rsync (remote synchronization ou “synchronisation distante” en français) est un logiciel libre de synchronisation de fichiers (disponible sous toutes les plateformes).

La synchronisation est unidirectionnelle, c’est-à-dire qu’elle copie les fichiers de la source en direction de la destination.

rsync est donc utilisé pour réaliser des sauvegardes incrémentales ou pour diffuser le contenu d’un répertoire de référence.

Je vous donne ici les deux commandes que j’utilise quotidiennement lors de ma gestion des serveurs.

Copier tous les fichiers d’un répertoire du serveur A dans le répertoire équivalent du serveur B

Premièrement, connectez-vous via SSH à votre serveur A. Voici la commande :

/* Copie tous les fichiers de /home/website/ vers serveur B. */
rsync --ignore-existing --progress /home/movies/*.* matt@serveurB.net:/home/movies/Code language: PHP (php)

Explications:

  • --ignore-existing signifie que si le fichier existe déjà, on ne le remplace pas.
  • --progress montre la vitesse du transfert et les noms des fichiers transférés.
  • matt@serveurB.net est le nom du login SSH (matt) associé à l’adresse du serveur B (IP ou nom de domaine).
  • /home/website/ : répertoire vers lequel copier les fichiers.

En lançant cette commande, je récupère sur le serveur B tous les fichiers qui se trouvent dans le répertoire /home/movies/ du serveur A. Je ne remplace pas les fichiers existants : étant donné que je ne synchronise qu’avec rsync, ce serait inutile.

Lire la suite

MySQL: résoudre l'erreur "Incorrect datetime value" lors d'opérations sur les tables photo

MySQL : résoudre l’erreur “Access denied for user debian-sys-maint@localhost”

Problème : l’erreur “Access denied for user debian-sys-maint@localhost” au lancement de MySQL

Lors de la migration de mes bases de données d’un serveur à l’autre, j’ai aussi déplacé la base mysql qui contient tous les utilisateurs, droits… pour ne pas avoir à tout refaire.

Le problème, c’est que chaque installation de MySQL crée un utilisateur de maintenance – debian-sys-maint sur notre serveur Debian – avec un mot de passe unique.

Solution : penser à copier /etc/mysql/debian.cnf

En copiant les bases de données, il faut également penser à copier le fichier /etc/mysql/debian.cnf dans lequel se trouve, entre autres, le mot de passe SQL de l’utilisateur spécial maintenance de Debian.

Lire la suite

Migration de serveur : bonjour Kimsufi 750G photo

Migration de serveur : bonjour Kimsufi 750G

J’ai peu posté ces derniers jours et ce pour plusieurs raisons. Premièrement, il fait beau. Donc j’en profite, surtout qu’il fait aussi chaud qu’en mai-juin. Et deuxièmement, je viens de migrer le site sur un serveur plus puissant.

Migration entre deux serveurs

Il y a une grosse différence entre monter un serveur de A à Z, comme j’avais fait précédemment, et migrer données et programmes d’un serveur A à un serveur B.

L’important pour moi était de réutiliser au maximum mes configurations donc j’ai repris mes tutos un à un, tout en copiant les fichiers que j’avais précédemment créés ou édités sur le nouveau serveur.

Résultats ?

Et bien cela fonctionne très bien ! J’ai connu quelques mésaventures mais j’ai pris plein de notes donc il y a là de la matière pour quelques futurs articles. En gros le site a été indisponible pendant 1h samedi mais je pense que cela ne s’est pas trop vu.

Au niveau technique, on peut apprendre pas mal d’informations sur le processeur du serveur en lançant la commande :

less /proc/cpuinfo

L’ancien serveur était un Intel(R) Celeron(R) CPU 220 @ 1.20GHz et 2 Go de RAM.
Le nouveau serveur est un Intel(R) Core(TM)2 Quad CPU Q8300 @ 2.50GHz et 4 Go de RAM.

Lire la suite

vpn-icon

Linux : configurer un VPN avec VPNTunnel

vpn icon

Pour tout un tas de raison, il est temps pour nous de prendre un petit VPN, histoire de d’ajouter une couche de sécurité supplémentaire.

Stéphane nous avait déjà montré comment créer un réseau privé virtuel (VPN) sous Debian Lenny mais je voulais un service externe qui ne sollicitait pas le serveur du site.

J’ai essayé VPNTunnel pour 5 euros pendant un mois et comme le service m’a bien plu, je vous donne le petit tutoriel qui permet de configurer tout cela en moins de 10 minutes, sous Ubuntu.

Installation d’OpenVPN et des fichiers de configuration de VPNTunnel

On installe OpenVPN et ses dépendances :

sudo apt-get install openvpn network-manager-openvpn-gnome resolvconfCode language: JavaScript (javascript)

puis on crée le répertoire /etc/openvpn/keys:

sudo mkdir /etc/openvpn/keys

Sur le site de VPN Tunnel, deux fichiers sont à télécharger : Linux-confs.tar.gz et cert.zip. Dézippez les deux fichiers.

Après avoir tapé :

sudo nautilus

Il vous reste à :

  1. copier tous les fichiers *.conf dans /etc/openvpn/
  2. copier tous les certificats *.cert dans /etc/openvpn/keys

A ce stade, nous sommes presque prêts : il ne nous reste plus qu’à ajouter ces différentes configurations VPN au gestionnaire de connexion de Gnome.

Lire la suite

MySQL : résoudre l'erreur "Table is marked as crashed and last (automatic?) repair failed" photo

MySQL : résoudre l’erreur “Table is marked as crashed and last (automatic?) repair failed”

Hier soir, gros bug sur le site : plus moyen d’accéder aux pages du site ou de sauvegarder un article. Je lance un top, le serveur n’a pas l’air d’être surchargé du tout. Je relance Apache, Varnish et MySQL et là…

Stopping MySQL database server: mysqld failed!
/etc/init.d/mysql: ERROR: The partition with /var/lib/mysql is too full! ... failed!Code language: JavaScript (javascript)

Ah cette erreur-là, je l’ai déjà eue ! Je fais un peu de ménage et je relance MySQL :

/etc/init.d/mysql restart 
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..
ERROR 144 (HY000) at line 1: Table './skyminds/wp_posts' is marked as crashed and last (automatic?) repair failedCode language: JavaScript (javascript)

Et là, c’est le drame : le terminal est dans les choux comme attendant quelque chose et en lançant le site, il n’y a plus aucune information. Rien que le design, plus d’articles. Gloups.

mysql table crash

Je jette un coup d’oeil sur le serveur, j’ai mes sauvegardes des derniers jours mais pas de tout ce que j’ai écrit aujourd’hui. Je tente un REPAIR mais phpmyadmin refuse catégoriquement :

SQL show index from `wp_posts` failed : Table './skyminds/wp_posts' is marked as crashed and last (automatic?) repair failedCode language: JavaScript (javascript)

La solution : lancer myisamchk

La solution que j’ai utilisé consiste à lancer la commande myisamchk, qui est une commande de bas niveau qui va vérifier et réparer notre table.

On commence par arrêter le serveur MySQL :

/etc/init.d/mysql stop

et on lance myisamchk avec ces paramètres sur notre base de données qui se trouve sous /var/lib/mysql/:

myisamchk -r -v -f --sort_buffer_size=128M --key_buffer_size=128M /var/lib/mysql/skyminds/wp_posts.MYICode language: JavaScript (javascript)

Voilà ce que cela retourne :

- recovering (with sort) MyISAM-table '/var/lib/mysql/skyminds/wp_posts.MYI'
Data records: 0
- Fixing index 1
  - Searching for keys, allocating buffer for 295411 keys
  - Dumping 3420 keys
- Fixing index 2
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 3
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 4
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 5
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 6
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 7
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 8
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 9
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 10
  - Searching for keys, allocating buffer for 1177347 keys
  - Dumping 275199 keys
- Fixing index 11
  - Searching for keys, allocating buffer for 1177347 keys
  - Dumping 275199 keys
- Fixing index 12
  - Searching for keys, allocating buffer for 1177347 keys
  - Dumping 275199 keys
Data records: 3420Code language: JavaScript (javascript)

On relance MySQL :

/etc/init.d/mysql start

et cette fois, tout se passe bien :

Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..

Tout est revenu mais je me dis que je devrais peut-être passer à 2 sauvegardes par jour…

Linux : forcer Skype à détecter une webcam USB avec video4linux photo

Linux : forcer Skype à détecter une webcam USB avec video4linux

Le problème : une webcam USB non reconnue par Skype sous Ubuntu

J’ai de nouveau installé Skype sur ma machine après des années sans l’avoir utilisé et évidemment, ma webcam n’est pas reconnue sous Ubuntu. Après quelques bidouillages, on y arrive quand même.

Solution : créer un raccourci pour lancer Skype avec le mode de compatibilité video4linux

Il est nécessaire d’indiquer à Skype de précharger la compatibilité avec video4linux donc on installe ce dernier :

sudo apt-get install libv4l-0Code language: JavaScript (javascript)

Ensuite, si vous avez un système 32-bits, entrez ceci dans le terminal :

cd ~
echo "#! /bin/sh" > skype-cam-fix
echo "LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype" >> skype-cam-fix
chmod a+x skype-cam-fix
sudo mv skype-cam-fix /usr/local/bin Code language: PHP (php)

Si vous avez un système 64-bits :

cd ~
echo "#! /bin/sh" > skype-cam-fix
echo "LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so skype" >> skype-cam-fix
chmod a+x skype-cam-fix
sudo mv skype-cam-fix /usr/local/bin Code language: PHP (php)

Lire la suite

Serveur dédié : configurer la limite mémoire pour PHP et Suhosin photo

Serveur dédié : configurer la limite mémoire pour PHP et Suhosin

suhosin_logo

Aujourd’hui, je vous livre la solution à un problème auquel vous avez peut-être été confronté lors de la configuration de votre serveur dédié – il s’agit d’une erreur que l’on peut trouver dans les fichiers logs d’Apache :

Dec 12 16:19:26 mail suhosin[22860]: ALERT - script tried to increase memory_limit to 268435456 bytes which is above the allowed value (attacker '82.83.84.85', file '/home/skyminds/public_html/wp-admin/admin.php', line 96)Code language: JavaScript (javascript)

Etape 1 : paramétrage de memory_limit dans php.ini

On édite notre fichier php.ini :

nano /etc/php5/apache2/php.ini

On recherche la variable memory_limit et on l’augmente à 256MB :

; Maximum amount of memory a script may consume (128MB)
; http://php.net/manual/en/ini.core.php#ini.memory-limit
memory_limit = 256MCode language: JavaScript (javascript)

Note : vérifiez que vous éditez bien le bon fichier php.ini ! Je me suis aperçu après quelques essais que celui qui correspondait à mon installation était en fait /etc/php5/apache2filter/php.ini.

Lancez un phpinfo();pour être sûr du fichier à éditer.

Lire la suite

Linux : résoudre les erreurs communes de clé GPG dans APT photo 1

Linux : résoudre les erreurs communes de clé GPG dans APT

De temps en temps, il arrive qu’en faisant un apt update, on obtienne quelques erreurs de clés GPG, soit parce qu’elles ont changé, soit parce qu’elle n’ont pas été ajoutées en même temps que les dépôts auxquels elles sont associées.

Voici une petite compilation des situations que j’ai connu jusqu’à présent.

La clé publique n’est pas disponible : NO_PUBKEY

Le message d’erreur habituel, dont voici un exemple :

W: GPG error: http://ppa.launchpad.net maverick Release: Les signatures suivantes n'ont pas pu être vérifiées car la clé publique n'est pas disponible : NO_PUBKEY 632D16BB0C713DA6Code language: JavaScript (javascript)

Edit : voici une simple commande Shell qui permet de récupérer la clé et l’ajouter au trousseau directement, en une seule ligne de code:

sudo apt-get update 2>&1 | 
sed -ne 's?^.*NO_PUBKEY ??p' |
xargs -r -- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keysCode language: JavaScript (javascript)

Si vous souhaitez faire cela manuellement, voici la méthode manuelle :

Ce qui est important ici, c’est le code de la clé : 632D16BB0C713DA6. Nous avons besoin des 8 derniers caractères de cette clé pour taper notre commande. Ces 8 caractères sont 0C713DA6 donc dans le terminal, on entre :

gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-key 0C713DA6Code language: JavaScript (javascript)

puis:

gpg -a --export 0C713DA6 | sudo apt-key add -Code language: JavaScript (javascript)

On relance enfin la mise à jour :

apt-get updateCode language: JavaScript (javascript)

La clé ayant été ajoutée, le message d’erreur disparaît.

Lire la suite

Serveur dédié : sauvegarde automatique des fichiers avec Backup Manager sur le serveur de sauvegarde OVH photo 1

Serveur dédié : sauvegarde automatique des fichiers avec Backup Manager sur le serveur de sauvegarde OVH

Aujourd’hui, nous abordons la sauvegarde des fichiers essentiels du serveur.

Backup Manager permet d’effectuer des sauvegardes quotidiennes du système : il crée des archives dans plusieurs formats de compression (tar, gzip, bzip2, lzma, dar, zip) et peut les exporter vers un serveur FTP.

Dans notre cas, nous allons l’installer et le configurer pour envoyer tout ce qui est important sur notre serveur sur le serveur FTP externe de sauvegarde fourni gratuitement par OVH (100 Go).

Etape 1 : installation de Backup Manager

C’est classique :

apt-get install backup-managerCode language: JavaScript (javascript)

A la fin de l’installation, un assistant se lance et vous permet de configurer des options par défaut. Ou vous pouvez configurer à la main, comme indiqué dans l’étape suivante.

Lire la suite

Auto Draft photo 1

Accélérer le démarrage et l’arrêt d’Ubuntu

Cela fait quelques années que mon système tourne sous Ubuntu et je n’ai jamais eu à réinstaller l’OS.

Et pourtant, on peut dire que je ne le ménage : j’installe des applications, teste tout ce que je trouve sous la main, désinstalle…

Avec le temps, j’ai remarqué qu’Ubuntu mettait de plus en plus de temps à démarrer donc je me suis penché sur l’optimisation du démarrage du système.

Désactiver les services inutiles

Mon PC principal est un desktop donc certains services ne sont pas vraiment utiles : laptop-mode (permet de gérer la fermeture de l’écran), les hotkeys (touches en bleu sur les portables) :

sudo update-rc.d -f laptop-mode remove
sudo update-rc.d -f hotkey-setup remove Code language: CSS (css)

Je n’ai ni lecteur de carte PCMCIA, ni Bluetooth :

sudo update-rc.d -f pcmcia remove
sudo update-rc.d -f pcmciautils remove 
sudo update-rc.d -f bluetooth remove
sudo update-rc.d -f bluez-utils removeCode language: CSS (css)

Si vous avez une connexion ADSL, les services pppd-dns et dns-clean ne vous serviront à rien.

Ces derniers permettent surtout de gérer les connexions de type dial-up (ancien modem RTC).

sudo update-rc.d -f dns-clean remove
sudo update-rc.d -f pppd-dns remove Code language: CSS (css)

Note : pour rétablir un service, tapez:

sudo update-rc.d [nom du service] defaultsCode language: CSS (css)

Lire la suite

Serveur dédié : mettre à jour le noyau Debian de la Kimsufi photo

Serveur dédié : mettre à jour le noyau Debian de la Kimsufi

linux kernel

Aujourd’hui, on met à jour le noyau linux de notre installation Debian sur notre Kimsufi.

Un noyau à jour, c’est toujours mieux pour bénéficier des derniers patchs/améliorations/correctifs de sécurité du noyau.

OVH compile ses propres noyaux, offrant différentes options. Nous choisirons le noyau avec GRS : grsecurity est un correctif de sécurité pour le noyau incluant PaX, un système de contrôle d’accès à base de rôles et différents moyen de renforcer la sécurité générale du noyau.

Téléchargement du dernier noyau linux chez OVH

Une fois loggés en SSH, on se place dans le répertoire /boot :

cd /boot

On regarde ensuite la liste des noyaux linux modifiés par OVH pour les Kimsufi : ftp://ftp.ovh.net/made-in-ovh/bzImage/.

On récupère 2 fichiers : le fichier bzImage et le fichier System.map associé. Pour mon serveur, je prends les versions -grs-ipv6-64 : certaines mesures de sécurité sont incluses dans le noyau made in OVH (-grs), avec support de l’ipv6 sur un système 64 bits.

Nous prenons donc la dernière version du noyau ici : ftp://ftp.ovh.net/made-in-ovh/bzImage/latest-experimental/:

wget http://ftp.ovh.net/made-in-ovh/bzImage/latest-experimental/System.map-4.1.7-xxxx-grs-ipv6-64
wget http://ftp.ovh.net/made-in-ovh/bzImage/latest-experimental/bzImage-4.1.7-xxxx-grs-ipv6-64
wget http://ftp.ovh.net/made-in-ovh/bzImage/latest-experimental/config-4.1.7-xxxx-grs-ipv6-64Code language: JavaScript (javascript)

Lire la suite