Happy hacking :-)

petit bloc-notes à usage interne qui peut peut-être servir à d'autres ...

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

30jan

Gandi Hébergement -- part 3: préparer son serveur Ubuntu - ntp, mail, sec updates

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 :

exim4

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.

exim - locla host

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 !

17jan

Gandi Hébergement -- part 2: sécuriser le SSH de son serveur Ubuntu

Une fois acquis, votre hébergement est accessible en mode expert via ssh : ssh <votre user>@<votre adresse IP>

1. Le problème

Mais dès que vous dites cela, vous vous rendez compte que tous les robots et autres botnets peuvent en faire autant.

Vous ne me croyez pas ?

Lancez donc cette commande comme moi au bout de seulement 2 jours :

root@XXX:/home/user1# cat /var/log/auth.log* | grep 'Failed password' | grep sshd
 | awk '{print $1,$2}' | sort | uniq -c
    690 Jan 10
     58 Jan 11

Le résultat exprime le nombre d'échecs de connexion SSH par jour (sic !). En gros, Presque 700 échecs de connexion pour une machine venant d'être mise en ligne. CQFD.

Quelques faits :

  • SSH est configuré par défaut chez Gandi pour ne pas autoriser les logins root,
  • vous devez renforcer absolument le password de votre user de connexion,
  • vous devez vous prémunir des attaques de force brute.

2. La solution

Un moyen tout simple est d'utiliser le logiciel Fail2ban.

Principe :

Analyser les échecs de connexion consignés dans le fichier /var/log/auth.log et mettre à jour le firewall en bannissant pour un temps donné les adresses IP apparaissant plus de tant de fois en échec dans le fichier en question.

Prérequis :

Installer un firewall. Iptables dans notre cas.

Commande :

apt-get install iptables
apt-get install fail2ban

Configuration :

La configuration s'effectue dans le répertoire /etc/fail2ban. La configuration par défaut est dans le jail.conf que l'on peut altérer en créant le fichier jail.local. Comme cela, lors d'une update, pas d'écrasement de configuration.

Mon fichier jail.local :

[DEFAULT]
ignoreip = @IP1 @IP2 @IP3

[ssh]
maxretry = 3

Où @IPx sont les adresses sur lesquelles vous ne souhaitez pas de mise en liste noire. Cela peut être utile d'y mettre l'IP fixe de votre box domestique ou celle de votre sortie internet d'entreprise au cas où cela soit VOUS qui ayez oublié votre password ;-)

Résultat :

root@XXX:/home/user1# cat /var/log/auth.log* | grep 'Failed password' | grep sshd
 | awk '{print $1,$2}' | sort | uniq -c
    690 Jan 10
     58 Jan 11
     11 Jan 12
     14 Jan 13
      7 Jan 14
      2 Jan 15

Liste du nombre d'échecs de connexions sur SSH avec une installation de fail2ban le 11 Janvier. Spectaculaire hein ?

10jan

Gandi Hébergement -- part 1: pourquoi faire le saut

Et oui, ils l'ont fait : de l'hébergement sur du matériel neuf et pointu en mode virtualisé (utilisation de Xen donc très peu d'overhead).

On achète des "parts" de serveur (64 parts par serveur physique) sans aucun engagement de durée : souplesse garantie.

Une part :

  • 1/64° d'un quadri Dual Core AMD
  • 256 Mo RAM + 512 de swap
  • 5 Go de disque (RAID 6)
  • adresse IP incluse
  • traffic illimité et 1/64° de capacité réseau du serveur (2x1Gbps)

Le tout en choisissant dans un panel de distribution Linux important dont Ubuntu 7.10. Les *BSD sont dans la wishlist (et oui :-) ...).

Du coup, j'ai fait le saut et je migre de mon hébergement virtualisé précédent chez Web1.fr vers Gandi Hébergement. Je n'ai pas grand chose à reprocher à Web1.fr qui pendant un bon moment m'a donné le moyen d'avoir une Debian en ligne accessible en ligne de commande.

J'ai fait ce choix pour disposer :

  • d'une distribution Ubuntu
  • d'une capacité à évoluer sans stress
  • d'une offre qui vit et qui évolue
  • d'un support dynamique et des communautés actives

Et aussi pour faire partie de l'aventure et soutenir cette action innovante en France : le côté militant qu'a toujours suscité Gandi fonctionne à fond chez moi. Y a de l'affect comme on peut en avoir pour Apple par exemple ... la liberté en plus ;-)

Voili voilou, la décision est prise !

Last but not the least : 6€ HT la part/mois pendant la phase Bêta.

15mar

[Firefox 2] Moteur de recherche Gandi Whois - version 1.1

Suite à une évolution du site de Gandi sur sa partie WhoIs, le plugin de recherche Whois de type OpenSearch pour Firefox2+ évolue aussi.

Changelog : modification de l'URL appelée lors de l'envoi de la recherche.

Les nouvelles versions sont sur Mycroft : télécharger.

Gandi a mis à jour ceux disponibles à partir de ses pages WhoIs :-)

07dec

[Firefox 2] Moteur de recherche Gandi Whois

Vous faites des recherches WhoIs dans le DNS ? Vous utilisez Firefox ? Ce moteur de recherches est fait pour vous !

Lire la suite

01juin

Gandi v2 is coming up ... [Edit] is up !

La nouvelle version de l'interface de Gandi est en cours d'arrivée sur nos navigateurs ...

Arrivée à suivre accoudé au bar, un peu comme la coupe du monde en fait ;-)

Edit : le nouveau Gandi est là et bien là. C'est propre !

02fév

Dotclear en Inde ...

... Daniel Glazman lâche une bombe et personne ne relève ?

Cela donnera lieu à pas mal de commentaires si cela se confirmait car, à l'échelle française, ce serait gros comme annonce ... AMHA ...