Aujourd’hui, nous allons mettre en place DNSSEC afin d’ajouter une couche de sécurité supplémentaire dans la gestion des DNS de notre domaine.
Principe de fonctionnement du DNS
Le DNS (Domain Name System) est un maillon clé du fonctionnement d’Internet car la quasi-totalité des services en ligne utilisent des noms de domaine à un moment ou à un autre.
Le DNS est organisé sous la forme d’une arborescence inversée, avec une « racine » dont dépendent les différentes « branches ».
Au premier niveau de l’arborescence se trouvent les « Top Level Domains » (TLD) ou domaines de premier niveau, comme les .fr, .com, .net etc.
Au second niveau, nous avons les noms de domaine « classiques » comme « skyminds.net ».
Fonctionnant comme une base de données distribuée sur des millions de machines, le DNS repose sur des interactions entre ces machines permettant d’identifier celle qui est la plus susceptible de pouvoir répondre à la requête d’un internaute.
Dans l’exemple ci-dessus, l’utilisateur veut se connecter au site http://www.wikipedia.fr. Il envoie sa requête via son navigateur. Celle-ci est reçue par un serveur dit « résolveur » qui a pour première mission d’identifier la machine sur laquelle est installé le nom de domaine wikipedia.fr.
Le résolveur s’adresse d’abord à la « racine » du DNS, qui lui indique quels sont les serveurs « faisant autorité » (c’est-à-dire compétents) pour .fr puisque le nom de domaine est en .fr.
Dans un second temps, les serveurs du .fr indiquent à leur tour au résolveur que le nom de domaine wikipedia.fr est hébergé sur tel serveur.
Celui-ci est alors en mesure d’indiquer au navigateur l’adresse IP du serveur web hébergeant les contenus du site web www.wikipedia.fr.
Ce schéma se vérifie quel que soit le site web auquel on souhaite accéder.
DNSSEC : authentifier l’origine et l’intégrité des données
DNSSEC, acronyme de Domain Name System Security Extensions, désigne un ensemble défini d’extensions de sécurité du protocole DNS, standardisé par l’IETF dans la RFC 4033.
DNSSEC signe cryptographiquement les enregistrements DNS et met cette signature dans le DNS. Ainsi, un client DNS méfiant peut récupérer la signature et, s’il possède la clé du serveur, vérifier que les données sont correctes.
Cela permet de s’assurer que les données obtenues par résolution DNS proviennent de la zone légitime du nom de domaine (authentification de l’origine des données) et que les données ne sont pas altérées lors du transfert (intégrité des données).
Ces extensions de sécurité font de DNSSEC une composante essentielle des communications Internet qui nécessitent un haut niveau de confiance dans l’infrastructure DNS.
DNSSEC utilise un mécanisme reposant sur une paire de clés ayant des rôles complémentaires. La première clé, privée, crée une signature par chiffrement; alors que la seconde clé, publique, vérifie les signatures par déchiffrement:
Contrairement à d’autres protocoles comme SSL/TLS, DNSSEC ne sécurise pas juste un canal de communication mais il protège les données et les enregistrements DNS, de bout en bout. Ainsi, il est efficace même lorsqu’un serveur intermédiaire trahit l’intégrité des données (DNS menteur).
Les attaques par empoisonnement de cache
DNSSEC répond spécifiquement aux attaques par empoisonnement de cache : le résolveur est alors “intoxiqué” pour qu’il considère le serveur « pirate » comme légitime, en lieu et place du serveur d’origine.
Cette opération permet notamment de capter et de détourner les requêtes vers un autre site web sans que les utilisateurs puissent s’en rendre compte : ils risquent alors de confier leurs données personnelles en se croyant sur le site légitime.
Le bon fonctionnement du DNS dépend donc de la fiabilité des données transmises à chaque étape. Les extensions de sécurité du DNS cherchent à répondre à cette contrainte en assurant l’intégrité des données transitant sur le réseau, notamment entre résolveurs et serveurs faisant autorité.
Pré-requis avant de configurer DNSSEC
Avant de commencer, voici quelques pré-requis essentiels :
1. votre domaine doit être correctement configuré auprès de votre registrar et hébergeur au niveau DNS,
2. votre serveur possède suffisamment d’entropie pour la génération des clés de sécurité,
3. vous avez fait une copie de sauvegarde : site, base de données, enregistrements DNS, configuration BIND.
Vérifiez que vous êtes bien prêt. Ce tutoriel prend à peu près 30 minutes à réaliser.
Mise en place de DNSSEC sur le serveur
Pour les besoins du tutoriel et afin d’éviter toute erreur de saisie ou copie, nous optons pour les définitions suivantes:
- skyminds.net est notre nom de domaine,
- skyminds.net.hosts est notre fichier de zone actuel, qui se trouve dans
/etc/bind
, - skyminds.net.hosts.signed sera notre fichier de zone signé, après toutes les étapes du tutoriel.
Notre répertoire de travail sera /etc/bind
:
cd /etc/bind
Voilà, cela vous permettra de vous y retrouver plus facilement et de savoir quoi modifier pour votre domaine.
Génération des clés ZSK et KSK
On crée une Zone Signing Key (ZSK) avec une clé de 4096 bits en RSASHA256 :
dnssec-keygen -a RSASHA256 -b 4096 -n ZONE skyminds.net
Code language: CSS (css)
Résultat:
Generating key pair...................................................................++ ............++
Kskyminds.net.+008+55176
Code language: CSS (css)
On crée maintenant une Key Signing Key (KSK), toujours avec une clé de 4096 bits en RSASHA256 :
dnssec-keygen -f KSK -a RSASHA256 -b 4096 -n ZONE skyminds.net
Code language: CSS (css)
Résultat:
Generating key pair..................++ ..................................................................................++
Kskyminds.net.+008+36124
Code language: CSS (css)
Les deux commandes précédentes ont créé quatre nouveaux fichiers de clés dans notre répertoire – une paire de clés publiques/privées pour ZSK et une autre paire de clés publiques/privées pour KSK.
Ajout des clés publiques dans le fichier de zone
Ajoutons maintenant les clés publiques qui contiennent les enregistrements DNSKEY dans le fichier de zone, avec une boucle :
for key in `ls Kskyminds.net*.key`
do
echo "\$INCLUDE /etc/bind/$key">> skyminds.net.hosts
done
Code language: JavaScript (javascript)
Signature de la zone
On signe maintenant notre zone :
dnssec-signzone -A -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) -N INCREMENT -o skyminds.net -t skyminds.net.hosts
Code language: JavaScript (javascript)
Résultat:
Verifying the zone using the following algorithms: RSASHA256.
Zone fully signed:
Algorithm: RSASHA256: KSKs: 1 active, 0 stand-by, 0 revoked
ZSKs: 1 active, 0 stand-by, 0 revoked
skyminds.net.hosts.signed
Signatures generated: 42
Signatures retained: 0
Signatures dropped: 0
Signatures successfully verified: 0
Signatures unsuccessfully verified: 0
Signing time in seconds: 0.378
Signatures per second: 110.937
Runtime in seconds: 0.442
Code language: CSS (css)
Notre zone est maintenant signée et un nouveau fichier, skyminds.net.hosts.signed, vient d’être créé.
Ajout de la zone signée dans la configuration BIND
On commence par éditer le fichier de configuration de BIND:
nano /etc/bind/named.conf.options
et dans le bloc options{}, on rajoute les instructions DNSSEC:
options {
// ...
// DNSSEC
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
};
Code language: JavaScript (javascript)
On enregistre. Il reste maintenant à informer BIND de cette nouvelle zone signée:
nano /etc/bind/named.conf.local
avec:
zone "skyminds.net" {
type master;
// zone : normale
//file "/etc/bind/skyminds.net.hosts";
// zone : signed by DNSSEC
file "/etc/bind/skyminds.net.hosts.signed";
allow-transfer { 213.186.33.199; };
allow-query { any; };
notify yes;
};
Code language: JavaScript (javascript)
On sauvegarde le fichier et on recharge la nouvelle configuration de BIND:
service bind9 reload
Ajout des DS chez le registrar
Notre domaine est actuellement enregistré chez Gandi. Donc, une fois identifiés sur leur console d’administration, on sélectionne le domaine et on clique sur le lien Gérer DNSSEC.
Voici à quoi ressemble l’interface d’ajout des clés publiques ZSK et KSK:
Il suffit d’ajouter le contenu de ces deux clés dans le formulaire pour que les deux DNSKEYs soient ajoutées au registre de votre domaine.
Test de la configuration
Voici quelques tests pour vérifier que notre configuration est en ordre :
dig +dnssec skyminds.net a
Code language: CSS (css)
Résultat:
; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> +dnssec skyminds.net a
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10094
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;skyminds.net. IN A
;; ANSWER SECTION:
skyminds.net. 70501 IN A 213.251.185.98
skyminds.net. 70501 IN RRSIG A 8 2 84600 20151108174124 20151009174124 55176 skyminds.net. LnXkTAvGSf4tbY5aWz08wVslEJ87tAeKRkDw0OS/kAXv4P89n/ZW7Iah tJ6gg7vlgA84OfUjKeT8PZTF2ZlP74V8tgV9CA3Qzmqwoe3fCf/juxA7 cYnlUZhOQ4TBm6oE4nORPhggglyTVHktUZYeGRRVKuZIT3QE/eEhOvcq 9yLeA7uUIzmvaGSw+diP50sXGwrImt0dP/UsW5F3WiNfQ3Fgm2E712jW 4r6yRYY4jd9AIayrRc+vN8dZMC+ml/I4zzTC6t4lBET0knF3rZxN0PyO Sv30aYin0AxtGgXFECzhOxXyPBlSBy9ogJ/hAMnA6BKJ0C4r/tayeh1Y SUHfzl9HqXPPRhnM8jQEL14hQYjbrf6Afw5r+AKDdJIMiBfeQhW2CfaA NgGhnoCHeSIsMFae1RulAQ8XK/Evbn/IYnWyxlzuwNnXwcIl/8OCM5Sj O4Qfk26TI6NmY/cXB/Mq6iowrxbQY4ysKD8OGqsVj41aflVjieyuHWfH Um19ygJPsHjYmGSdIvdJShqwuw3uxMZ/o8564TrXLXZ/KuGMbtnKICxM GNz0OtlyGjkkz/1NVejNGJ9SNPUgpOmh71m88vJHrPOohMP2xz1ajxPG jt53A6odfTAvQEOC4fXae9adMirjMIbH+RRRajo86ihYgEKNKCSFgcHu tCysj/1L1QU=
;; AUTHORITY SECTION:
skyminds.net. 70501 IN NS ks35755.kimsufi.com.
skyminds.net. 70501 IN NS ns.kimsufi.com.
skyminds.net. 70501 IN RRSIG NS 8 2 84600 20151108174124 20151009174124 55176 skyminds.net. rcCgBtfH6aFuJIOzLHU9hNa4a0K6M9Sroq1qKnsjcYChdPQ99XUerd7u 8hS1GfD18TMfSOGinp9V0Xq2YJg7suzRF4XuR4HggXegGplMDxmaBmfr Zc8BZHDTBUMYL2c1W3q3v0x5BJpqSeMVULhItmCyWYleG1He2+T+j1M2 UMUEKijGdpXEMa+pPip8uCcwh8uF5x8V5L75eZMeiUjUz9mOvzRW3de3 TbsLpGn9l1cm0dSiFMOhMLS0IkaknpACqb76quky4Xk5MCO4277/315i 13zIungoOjGSvASC5DImqq5AgmiGTugPdIpDG7EiwET4voMw4hw3NtgF R8DK4IlHuuDQeWZHRwzLDUNTMpqUBm08RW70F6iGUyVJuz7qQBP2A11D og/jfRT0tECPd83P4SKNY4PajSXO29cgStgj4relDG6giA1NonY6tmmL U3zft96i2BZD6W0UTZfsBraITaJoFgZi5y+i12fY/3Qh8OvsWEy3l2mr +/axJM2pDx41LH8yCsRlySVBQpcXfExWgQ1HstGMUmQa6NqJMwRV7/Jt BFtgrSuDYEIgyev9dFuu6E/4O+ExAME3g9AsAqi0eaVlO+sAGVBzMeTe yfKbr0n9UWl7Afh5e1ENc8VBX3Z5Ht1o2ueKJ3PLnsgjc8sZs4q3QUVt BTNPHgp2bBY=
;; Query time: 38 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Mon Oct 12 20:40:02 CEST 2015
;; MSG SIZE rcvd: 1219
Code language: PHP (php)
et un autre test avec :
dig +cd +multi skyminds.net dnskey
Code language: CSS (css)
Résultat:
; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> +cd +multi skyminds.net dnskey
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24047
;; flags: qr rd ra cd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;skyminds.net. IN DNSKEY
;; ANSWER SECTION:
skyminds.net. 49079 IN DNSKEY 256 3 8 (
AwEAAdUD6t1gAmN1kZR7RpSOysSOX2fHlAN1Fx6Uqyue
O8YslDxM06ZVVBKsLxb/IavvOcNW8oNHvJaY5Fk5kcpe
KpCwrYv4ZQBDg/qAiA4MsVqVGBq4c5gJjAwqrwxCt9iL
AyX0S1O1FM8vgEJZ2lffHUBZOa0WLkD6KTosLbTQmtjy
44vmcEoDCcE7+Scjmo+8laOHkuOoR3hxxRU8AlQFsUm9
/rWxrygcXqpznCUkLAZMudu8Kq+0Vn/ODzD3h0SQ0hGM
OYIcc1kcqfQPyUecoVnkYObHsdCXN4hXhHk980t57y52
qrndnlzTtjPxbcXJDL9pkjRzMAImKeSpuGR/B8jApom4
nudqk8n1wLNT4bR958gApaXaTPCPz4naK6nA98OjePu6
oTzhuktlXnCbGlHOJm/FgAiwoEuu5WdOmca1klEaMDnj
iHgv0QYniXxnjP4xnZJgQWorQL/dtdqSeW5yt7jlNxhn
/L0wZ6rSm4Dn7R0KxGov945VUDCT0UI8LDgj1C2JRLDK
HXLkv+8hns3ZhKf+sTjBA0wiXQTrJFuMdtjsJ5nkodE2
bKSFkaI0sQB+wNKjClP9bFqU1LaePsPHEUCjUtxy7ghy
pOs+EdrXr5IyifsF0GAFDN0Vb8Wrm4BY4E8yKyeiLtEW
YO2f4B0LL+Sng68TOUC2V+FFM/vf
) ; ZSK; alg = RSASHA256; key id = 55176
skyminds.net. 49079 IN DNSKEY 257 3 8 (
AwEAAcReSuMvQLt540OJKqv/464pe/uqK2egicMv14Sv
uVGgSI4xJ4Si/i06008LPZrxSgP1JHw9yfVdpSo2eVwA
ETCjwOVWLVobHBdKSFt/U3IuANsxeM1cZhg18earKX1T
/g+M1ytAdHdj4A3BkJV6ZvcLsqPLL3T7yMCzg3AP0F+9
foJuVWQU3jQDHyijTNr6h5dPkLzrHi/qaJyytOklLW6y
ykwrS0EDKt1pWOEhb/73oKO6mO677GEQWBFjNgfYoKGt
8ECln0wzzs13MLM3Er5E2r7zJFTNVy+vgN3OC1CONlhv
2K0u7tbbGyMolttV2tZnnTZZMVtRoDJ7+yyC68ehUf/k
0ridVoRQwNWmw3RdxNknnt/Sol+F4lDPj3CyrmcJ5dUl
oim1qMt6MbXf/LEJr8cVfQzhYTSqbM8Hynbed7fMVO43
w87f8MKsadbWu3j8PGtbykWyZJAmkM7l8LegnoRmnObR
XhBUTfAcOsmjMUHnXAE2gpgjB6PyTETjoHM6k94/C9Sy
JqcdrTmlblK+mJsTte789SWUXgPES69naqlBq4jPSFi4
C4yKkBLbOK2cBXe+OvfPgTbeomSRF+lP/GPPSpXsH+1e
IfsH5p/z/s8whyB5LWeP1CVOkCwwg+J0KzfEjE8x8uF8
p5oQFm1/rF9qmUkEQ+mxy5kw82Sl
) ; KSK; alg = RSASHA256; key id = 36124
;; Query time: 40 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Mon Oct 12 20:13:18 CEST 2015
;; MSG SIZE rcvd: 1105
Code language: PHP (php)
Si tout va bien, vous devriez voir des enregistrements de type DNSKEY (DNS Key record) et RRSIG (la signature DNSSEC) apparaître.
Vérifiez maintenant que votre domaine est bien signé par DNSSEC avec l’outil DNSSEC Debugger ou sur DNSviz, un outil de visualisation DNS.
Voilà ce que l’on obtient avec DNSSEC Debugger :
Script bash pour signer la zone automatiquement
A chaque fois que vous éditez votre fichier de zone pour ajouter ou retirer des enregistrements, il faudra le re-signer pour que tout fonctionne. Et la signature du fichier de zone n’est valable par défaut que pendant 30 jours, c’est donc quelque chose qu’il faut bien anticiper et prévoir.
Nous allons donc automatiser le processus de signature avec un script bash qui va:
- modifier le numéro de série de notre fichier de zone pour lui attribuer la date du jour et l’incrémenter,
- créer un fichier de zone signé avec DNSSEC,
- redémarrer BIND,
- puis envoyer un email à l’administrateur pour l’informer de la signature de la zone.
On crée donc notre script bash dans le fichier dnssec-zonesigner.sh
:
nano /etc/bind/dnssec-zonesigner.sh
On y ajoute :
#!/bin/sh
# -----------------------------------------------------#
# Script Name: DNSSEC Zone Signer
# Script URI: https://www.skyminds.net/?p=8236
# Version: 1.0
# Description: Takes a DNS zone file, updates its serial to the day's date and increments it, signs the zone file for DNSSEC, and restarts the DNS service in charge. To be used with a crontab.
# Author: Matt
# Author URI: https://www.skyminds.net
# Licence: Beerware
# Donations: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ETTG7RVBJAS2A
# Amazon Wishlist: http://www.amazon.fr/registry/wishlist/1G41TTHE51MYL?&tag=skymindsnet-21
# -----------------------------------------------------#
#
# Usage: dnssec-zonesigner.sh
#
# More details: https://www.skyminds.net/?p=8236
#
# -----------------------------------------------------#
# -------------------- CHANGELOG ----------------------#
# -----------------------------------------------------#
# --- version 1.1
# -> [fix] add full path for commands
# -> [fix] enhance script styles
#
# --- version 1.0 : initial release
# -----------------------------------------------------#
# -------------------- EDIT HERE ----------------------#
# -----------------------------------------------------#
#
# ZONEDIR : the location of your zone file
ZONEDIR="/etc/bind"
# The DNS service that you are using : bind9, named ...
DNSSERVICE="bind9"
#
# -----------------------------------------------------#
# -------------------- STOP EDITS ---------------------#
# -----------------------------------------------------#
# ZONE : the zone (passed as first argument)
ZONE=$1
# ZONEFILE : the zone file (passed as second argument)
ZONEFILE=$2
# Here we go !
cd $ZONEDIR
# check what's currently loaded
/usr/sbin/named-checkzone $ZONE $ZONEFILE.signed
# Grab serial from zone file
OLDSERIAL=`/usr/sbin/named-checkzone $ZONE $ZONEFILE | egrep -ho '[0-9]{10}'`
# Generate new serial with today's date: YYYYMMDDHH (year, month, day, hour)
NEWSERIAL=`date +%Y%m%d%H -d "today"`
# if $NEWSERIAL is less than or equal to $OLDSERIAL
# then it means the zone file has already been generated today
# so let's compute the difference and increment +1
if [ "$NEWSERIAL" -lt "$OLDSERIAL" ]; then
DIFF=$(($OLDSERIAL-$NEWSERIAL))
NEWSERIAL=$(($NEWSERIAL+$DIFF+1))
fi
# Write new serial +1 in zone file
sed -i 's/'$OLDSERIAL'/'$(($NEWSERIAL+1))'/' $ZONEFILE
# Sign zone and increment serial of signed file
/usr/sbin/dnssec-signzone -A -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) -N increment -o $1 -t $2
# restart DNS service to load newly-signed zone file
/usr/sbin/service $DNSSERVICE reload
# Show what's currently loaded
/usr/sbin/named-checkzone $ZONE $ZONEFILE.signed
CHECKRESULT=`/usr/sbin/named-checkzone $ZONE $ZONEFILE.signed`
# email admin with update info
# Admin email to send notifications to
MAILTO="root@$ZONE"
echo "Hi admin,\n\nYour domain, $ZONE, has just been DNSSEC-signed.\n\nThe former serial was $OLDSERIAL. The new serial has been incremented to $NEWSERIAL.\nYour DNS service, $DNSSERVICE, has been reloaded to reflect the changes.\n\nHere are the check results for the newly-generated $ZONEFILE.signed:\n------------------------------------------------------------------------------------------------------------\n\n$CHECKRESULT \n\n------------------------------------------------------------------------------------------------------------\n\n-- \nDNSSEC Zone Signer\nhttps://www.skyminds.net \n" | mail -s "[OK] $ZONE has just been DNSSEC-signed" "$MAILTO"
# That's all folks. Enjoy your DNSSEC-signed zone.
Code language: PHP (php)
On enregistre le fichier et on le rend exécutable :
chmod +x /etc/bind/dnssec-zonesigner.sh
Pour signer une zone, voici comment l’utiliser :
sh /etc/bind/dnssec-zonesigner.sh
Il suffit d’invoquer le script bash suivi du domaine et du fichier de zone original (non-signé). Chez moi, cela donne donc:
sh /etc/bind/dnssec-zonesigner.sh skyminds /etc/bind/skyminds.net.hosts
Il nous reste à ajouter une nouvelle tâche planifiée avec un cron. On édite donc crontab
:
crontab -e
et on ajoute une nouvelle tâche qui va signer notre zone tous les 3 jours et recharger la configuration BIND:
0 0 */3 * * sh /etc/bind/dnssec-zonesigner.sh skyminds /etc/bind/skyminds.net.hosts
Code language: JavaScript (javascript)
A présent, toute modification au niveau des enregistrements DNS du domaine sera à faire dans le fichier de zone non-signé, étant donné qu’il servira de source au fichier de zone signé et généré automatiquement par notre script.
Mise à jour des clés ZSK et KSK
Dans quelques mois, vous aurez à générer de nouvelles clés ZSK et KSK afin de garantir la sécurité des clés de chiffrement pour DNSSEC.
Vous devez conserver les anciennes clé un certain temps avant de les supprimer définitivement, le temps que les résolveurs mettent leur enregistrements à jour avec les nouvelles clés tout en garantissant les connexions avec les anciennes clés.
Je vous suggère donc de garder les anciennes clés pendant 10 jours dans votre fichier de zone et de rajouter les nouvelles clés. Au bout de ce délai, vous pourrez supprimer les anciennes clés.
Il vous suffit donc de recommencer ce tutoriel : générer de nouvelles clefs KSK et ZSK, ajouter vos nouvelles clés publiques dans le fichier de zone, resigner votre zone avec le script bash et reconfigurer les clés au niveau de la zone mère chez votre registrar.
Conclusion
Voilà, vous venez d’activer DNSSEC sur votre domaine. A titre préventif, il est recommandé de changer les clés régulièrement et de ne pas oublier de les ajouter au niveau du registrar.
Source des schémas : AFNIC.
Synopsis » Monter un serveur dédié de A à Z
- Serveur dédié : installation d’Apache, PHP, MySQL et Webmin
- Serveur dédié : créer la base de données MySQL et importer WordPress
- Serveur dédié : créer et activer un Virtual Host sous Apache
- Serveur dédié : changer les DNS du nom de domaine et le faire pointer vers le serveur
- Serveur dédié : sécurisation des services avec iptables et fail2ban
- Serveur dédié : sécurisation de la couche TCP/IP
- Serveur dédié : création d’un serveur mail Postfix (sécurisé avec Saslauthd et certificat SSL) et Courier (accès POP et IMAP) utilisant une base MySQL d’utilisateurs/domaines virtuels
- Serveur dédié : sécuriser Apache 2 avec ModSecurity
- Serveur dédié : CHMOD récursif sur des fichiers ou répertoires en ligne de commande
- Serveur dédié : installer APC comme système de cache et configurer Varnish comme reverse-proxy pour Apache pour améliorer les performances
- Serveur dédié : afficher la véritable IP derrière un reverse-proxy comme Varnish
- Serveur dédié : intégrer SSH à WordPress pour mettre à jour le core, les plugins et les thèmes
- Serveur dédié : installer la dernière version d’APC par SVN
- Serveur dédié : analyse des performances du serveur
- Serveur dédié : mettre à jour le noyau Debian de la Kimsufi
- Serveur dédié : sauvegarde automatique des fichiers avec Backup Manager sur le serveur de sauvegarde OVH
- Serveur dédié : configurer la limite mémoire pour PHP et Suhosin
- Bash : supprimer tous les fichiers et sous-répertoires d’un répertoire
- Serveur dédié : impossible de se connecter à un port distant
- Rsync: rapatrier les fichiers du serveur à la maison
- Bash : réparer les tables MySQL en cas de crash
- Serveur dédié : création d’une seedbox avec Transmission
- Serveur dédié : des paquets LAMP à jour sous Debian
- Serveur dédié : mise à jour vers Debian 7 Wheezy
- Serveur dédié : activer X11 forwarding pour SSH
- Serveur dédié : optimiser toutes les images JPG et PNG avec OptiPNG et JpegOptim
- Postfix : résoudre l’erreur “fatal: www-data(33): message file too big”
- Serveur dédié : mise en place de l’IPv6
- WordPress : accorder les bonnes permissions aux fichiers et dossiers avec chown et chmod
- WordPress : héberger les images sur un sous-domaine
- Serveur dédié : ajouter l’authentification SPF, Sender-ID et DKIM à Postfix et Bind9 avec opendkim
- Apache : lorsque le domaine seul (sans WWW) renvoie une erreur 403
- Serveur dédié : sécuriser Apache avec HTTPS (HTTP avec la couche TLS/SSL) en Perfect Forward Secrecy
- Serveur dédié : passer WordPress en HTTPS (TLS/SSL)
- Serveur dédié : configurer Webmin en TLS avec un certificat SSL
- Serveur dédié : configurer Transmission pour accéder au WebUI via TLS-SSL
- Serveur dédié : installer et configurer Varnish 4
- Serveur dédié : passage au mod FastCGI et PHP-FPM avec Apache MPM Worker
- Récupérer un serveur Kimsufi après un plantage de kernel avec le mode rescue OVH
- Serveur dédié : configurer Postfix et Courier pour utiliser TLS-SSL en Perfect Forward Secrecy
- Serveur dédié : retirer Varnish, devenu inutile avec HTTPS
- Serveur dédié : installer la dernière version d’OpenSSL sous Debian
- Serveur dédié : activer l’IP canonique du serveur sous Apache
- Serveur dédié : mise à jour vers PHP 5.6
- MySQL : convertir les tables MyISAM au format InnoDB
- Serveur dédié : optimiser toutes les images GIF avec GIFsicle
- Serveur dédié : migration de MySQL vers MariaDB
- BASH : lister, bloquer et débloquer des adresses IP avec iptables
- Serveur dédié : produire une meilleure réserve d’entropie avec haveged
- Serveur dédié : mettre en place DNSSEC pour sécuriser les DNS du domaine
- Serveur dédié : mise en place du protocole DANE
- 8 règles d’or pour bien déployer DNSSEC et DANE
- Serveur dédié : installer PHP7 FPM avec FastCGI sous Debian
- Serveur dédié : optimiser la couche TCP
- Fail2Ban: protéger Postfix contre les attaques DoS de types AUTH, UNKNOWN et EHLO
- Serveur dédié : mettre à jour Apache pour HTTP/2
- Serveur dédié : ajouter le domaine à la liste HSTS preload
- Serveur dédié : ajouter l’authentification DMARC à Postfix et BIND
- Serveur dédié : à la recherche de l’inode perdue ou comment résoudre le problème “no space left on device”
- Serveur dédié : installer NginX avec support HTTP2 et certificat SSL, PHP, MariaDB sous Debian
Vous avez un projet WordPress ou WooCommerce en tête? Transformez votre vision en réalité avec mon expertise reconnue.
Mise à jour du script bash version 1.1 :
– ajout du chemin complet des commandes
– ajustement du style
Salut,
Tout c’est bien passé, mais impossible d’importer la clé chez OVH, j’ai laissé tombé :(
Salut Fred,
Tu obtiens une erreur ?
Salut, J’ai retenté l’aventure, donc ça se passe toujours aussi bien, mais “No DS records found for —.com in the com zone”.
—.com Mise à jour des DS records 03/01/2020 15:49 03/01/2020 15:50 03/01/2020 15:50 Terminée
Cependant, ils n’apparaissent toujours pas … Je contacterai l’assistance OVH la semaine prochaine et te tiendrai au courant.