
Quelques préparations sont à effectuer afin d’avoir un serveur prêt à accueillir des services évoluées comme HTTP ou DNS. Au menu donc :
- synchronisation horaire
- envoi de mails
- mises à jour de sécurité
Rien de compliqué mais il faut le faire dès le début.
1. Synchronisation horaire :
Cela peut sembler superflu ou trivial mais, par exemple, la moindre opération de corrélation de logs ne peut être efficiente sans cela.
apt-get install ntp
Cette commande va installer un serveur NTP qui va veiller à garder en permanence votre serveur à l’heure.
Extrait de mon fichier /etc/ntp.conf :
# You do need to talk to an NTP server or two (or three). server 0.fr.pool.ntp.org server 1.fr.pool.ntp.org server 2.fr.pool.ntp.org server 3.fr.pool.ntp.org
Quelques extraits de mes logs pour voir si cela est utile :
Feb 19 10:28:06 happyhacking ntpd[2415]: synchronized to 91.121.10.82, stratum 3 Feb 19 10:28:43 happyhacking ntpd[2415]: synchronized to 88.191.14.223, stratum 2 Feb 19 10:35:03 happyhacking ntpd[2415]: synchronized to 91.121.22.48, stratum 2 Feb 19 10:39:24 happyhacking ntpd[2415]: time reset -2.447818 s Feb 19 10:44:33 happyhacking ntpd[2415]: synchronized to 88.191.14.223, stratum 2 Feb 19 10:55:13 happyhacking ntpd[2415]: time reset -2.447043 s
Visiblement oui ;-)
2. l’envoi de mail
Le besoin d’envoi de mails depuis le serveur va très vite se faire sentir et je ne parle pas du besoin émis par tout botnet issu d’un hack de votre serveur ! ;-)
En effet, il y a de grandes chances que vous vouliez lancer via Cron un certain nombre de tâches dont vous voudrez récupérer la sortie. Le mail sera alors le moyen naturel de communication.
Pour cela, installons la commande mailx et le serveur SMTP Exim, et via la commande dpkg reconfigurons Exim.
apt-get install mailx exim4-daemon-light dpkg-reconfigure exim4-config
2 écrans utiles sinon vous pouvez choisir les choix par défaut :

Là il vous demande de choisir le mode d’envoi de votre serveur. J’ai choisi Internet car le support Gandi m’a précisé qu’il ne mettait pas un relais SMTP Gandi à disposition des serveurs de l’hébergement. Si vous aviez ce type de serveur à disposition, vous valideriez le mode SmartHost.

Choisir 127.0.0.1 pour ne pas mettre votre serveur de mail Exim à disposition de tout l’internet. Là, uniquement les process locaux pourront envoyer des mails.
Votre machine a vous envoyer plein de jolis mails :-)
3. Automatiser les MAJ de sécurité
Alors là, on va faire hérisser les cheveux de tout sysadmin un brin chevronné MAIS tant pis !
On va mettre en place une application automatique des MAJ de sécurité. Oui car entre lire le avis de sécurité et répondre OUI 99,99% du temps et le faire en automatique, je ne vois que des avantages à le faire en automatique : rapidité, pas d’oubli, fait tout le temps (WE, nuit, vacances, maladie etc).
Le logiciel qui va la faire pour vous est cron-apt. Le tuto est déjà écrit ici.
NB : la seule variation est au point 3. où il faut garder que le dépôt Ubuntu security :
deb http://ubuntu.mirror.gandi.net/mirror/ubuntu/ubuntu gutsy-security main universe multiverse
Exemple d’utilisation :
- Annonce d’une vulnérabilité sur la librairie PCRE le 22/02/2008 00:58.
- Même jour, 4 heures plus tard (dépend de la fréquence de la vérification que vous avez positionné), réception d’un mail (grâce à la manipulation décrite plus haut ;-) ) m’indiquant que la MAJ de sécurité a été appliquée :
Date: Fri, 22 Feb 2008 04:59:39 +0100 [22.02.2008 04:59:39 CET] De: MA MACHINE À: MOI Sujet: CRON-APT completed on MA MACHINE [/etc/cron-apt/config] CRON-APT RUN [/etc/cron-apt/config]: Fri Feb 22 04:00:01 CET 2008 CRON-APT SLEEP: 3553, Fri Feb 22 04:59:14 CET 2008 CRON-APT ACTION: 3-download CRON-APT LINE: /usr/bin/apt-get upgrade -u -y -o APT::Get::Show-Upgraded=true Reading package lists... Building dependency tree... Reading state information... The following packages will be upgraded: libpcre3 1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 204kB of archives. After unpacking 0B of additional disk space will be used. Get:1 http://ubuntu.mirror.gandi.net gutsy-security/main libpcre3 7.4-0ubuntu0.7.10.2 [204kB] Fetched 204kB in 0s (892kB/s) (Reading database ... 18463 files and directories currently installed.) Preparing to replace libpcre3 7.4-0ubuntu0.7.10.1 (using .../libpcre3_7.4-0ubuntu0.7.10.2_i386.deb) ... Unpacking replacement libpcre3 ... Setting up libpcre3 (7.4-0ubuntu0.7.10.2) ... Processing triggers for libc6 ... ldconfig deferred processing now taking place
Je trouve cela plutôt utile surtout pour des serveurs combinant les 2 caractéristiques suivantes :
- exposition maximale sur Internet,
- suivi de sécurité le plus souvent assez approximatif : comment cela je ne parle que de mon cas ? J’ai comme un doute tout à coup ;-)
Enjoy !

Comments
#1
Phil2Hack
Wednesday, March 5 2008, 10:44
Oui cela répond à pas mal de besoins.
2 questions :
?
- mettre un FW serait utile dans la phase de préparation du serveur, non
- pourquoi des serveurs de temps, de courrier etc en lieu et place de client ?
Phil
#2
chris
Wednesday, March 5 2008, 11:06
Pare-feu> tu as entièrement raison. Un mini tuto IpTables est dans les tuyaux

Serveur vs client> c'est marrant quelqu'un d'autre m'en a déjà parlé
Pour le serveur de temps, cela permet de ne pas avoir de tâches en cron qui se lancent et qui font des ajustements potentiellement plus grands qu'avec un serveur qui scrute de manière fil de l'eau.
Pour le mail, j'ai pas trouvé plus simple que d'avoir un mini serveur SMTP qui n'écoute que sur l'interface locale.
Voili voilou
Chris
#3
francis
Wednesday, March 26 2008, 18:26
C'est pas dangereux de confier une mise à jour automatique comme cela à des developpeurs. Imaginons qu'une mise à jour soit défaillante y-a-t-il pas un risque de destruction du serveur ? je parle bien sur niveau logiciel. En gros publication d'un paquet de mise à jour entrainant un gros disfonctionnement pas facile après de savoir ce qui a pu se passer non ?
#4
chris
Thursday, March 27 2008, 10:17
Je suis d'accord avec toi Francis. Mais, soyons pragmatiques. Nous sommes en face de la situation suivante :
- la sécurité nous oblige à vérifier l'existence de patchs de sécurité de manière TRES régulière,
- quand cette vérification nous affiche X maj à effectuer, que faire ?
Entre une validation manuelle de ces X maj 5 jours (ou pire) après l'émission des patchs et la validation automatique au maximum 24 heures après, je choisis la seconde solution.
Je considère que je n'ai aucune valeur ajoutée quand je réponds "oui" à ces demandes en lieu et place de l'automate. Surtout par rapport au danger que représente l'attente d'application des patchs pour un serveur mis en ligne sur l'internet.
Remarque : tout ce que je dis est valable UNIQUEMENT dans un contexte de serveur perso sur le net (cf ma conclusion d'article). Je ne plaide pas cela pour un serveur de production suivi par une équipe de production ad-hoc. Là, la vérification/validation QUOTIDIENNE et MANUELLE est préférable. On a alors le meilleur des 2 mondes : on vérifie quotidiennement et on sait ce que l'on applique et quand on le fait. Donc si un incident post-maj intervient, on est plus efficace.
Ton avis Francis ?