Installation Ubuntu Server – Chapitre 1

Cette documentation décrit l’installation d’une distribution « Ubuntu 6.10 Server » sur dedibox.
Elle convient partiellement aux autres versions Ubuntu et n’est pas spécifique à la dédibox.

A / Préambule

Je ne décrirai volontairement pas la phase d’installation du système en lui-même, il est entièrement automatisé au sein de la console d’administration dédibox. Je ne m’attache qu’à ce qu’il faut faire ensuite, en accès SSH.

NB : Ce tutoriel a été constitué en bonne partie de nombreuses sources. Je ne les ai malheureusement pas toutes notées. Si certains y retrouvent leur travail, qu’ils se signalent, je les mentionnerai.


B / Pré-requis

Un peu de patience et une bonne grosse demi-journée de travail 🙂

I / Ménage et sécurité

1 / Mise à jour du système

Votre système est fraichement installé mais aucune mise à jour n’a encore été faite.
Commencez par éditer le sources.list et fournissez lui les bons dépôts (sauf exception, inutile d’ajouter de fioritures, c’est un serveur, pas un desktop) :
$ sudo nano /etc/apt/sources.list
puis ajoutez ces lignes en remplacement de celles proposées
deb http://fr.archive.ubuntu.com/ubuntu/ edgy main restricted
deb-src http://fr.archive.ubuntu.com/ubuntu/ edgy main restricted
#Major bug fix updates produced after the final release of the
## distribution.
deb http://fr.archive.ubuntu.com/ubuntu/ edgy-updates main restricted
deb-src http://fr.archive.ubuntu.com/ubuntu/ edgy-updates main restricted

## Uncomment the following two lines to add software from the 'universe'
## repository.
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
deb http://fr.archive.ubuntu.com/ubuntu/ edgy universe multiverse
deb-src http://fr.archive.ubuntu.com/ubuntu/ edgy universe multiverse

## Uncomment the following two lines to add software from the'backports'
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://fr.archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse
deb-src http://fr.archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu edgy-security main restricted
deb-src http://security.ubuntu.com/ubuntu edgy-security main restricted
deb http://security.ubuntu.com/ubuntu edgy-security universe multiverse
deb-src http://security.ubuntu.com/ubuntu edgy-security universe multiverse

Enregistrez et faites :
$ sudo apt-get update && sudo apt-get upgrade

pour procéder à la mise à jour
2 / Supprimer les services inutiles

Typiquement, sur un serveur, il y a pas mal de services, dont vous n’aurez jamais aucune utilité, qui méritent d’être débarqués. Quel intérêt de charger ppp par exemple ?

Par conséquent, vous pouvez supprimer sans vergogne le superflu et désactiver les services associés.

J’ai pris le parti de dégager ppp, daytime, telnet, time, finger, talk, ntalk, ftp, discard, pcmciautils. Dont acte :

$ sudo apt-get remove --purge ppp lpr nfs-common pidentd pcmcia-cs ppoe ppoeconf pppconfig[1] $ sudo update-rc.d --remove ppp $ sudo update-rc.d --remove telnet $ sudo update-rc.d --remove time $ sudo update-rc.d --remove finger $ sudo update-rc.d --remove talk $ sudo update-rc.d --remove ntalk $ sudo update-rc.d --remove ftp $ sudo update-rc.d --remove discard $ sudo update-rc.d --remove pcmciautils

3 / Supprimer la connexion root de SSH

Accéder son serveur en ssh, c’est bien. Se faire enfoncer le fion parce qu’on a bêtement laissé l’accès root en connexion, c’est plus embêtant. Pour parer à cette sale éventualité, interdisons l’accès au serveur en ssh au compte root.
$ sudo nano /etc/ssh/sshd_config 

Dans ce fichier, cherchez la chaine « PermitRootLogin » et placez sa valeur à « no ».

Fermez le fichier et enregistrez le.

4 / Sécurisation noyau

Maintenant, nous allons, sous compte root, modifier les paramètres ipv4 afin de sécuriser un peu plus notre serveur, notamment en ignorant les paquets broadcast, désactiver le routage des paquets d’origine interne, désactiver les autorisations de redirection depuis le serveur, loguer les paquets falsifiés, …
$ sudo -s
$ echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
$ echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcast $ echo "1" > /proc/sys/net/ipv4/tcp_syncookies $ echo "1024" > /proc/sys/net/ipv4/tcp_max_syn_backlog $ echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter $ echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects $ echo "0" > /proc/sys/net/ipv4/conf/all/secure_redirects $ echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses $ echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
$ exit

5 / Synchronisation du serveur (NTP)

Avoir un serveur, c’est bien. Avoir un serveur à l’heure, c’est mieux. Intéressons nous à la synchronisation de notre machine sur un serveur d’horodatage :
$ sudo ntpdate ntp.dedibox.fr $ sudo apt-get install ntp-simple $ sudo nano /etc/ntp.conf[2] 

Dans le fichier ntp.conf, indiquer ces deux lignes:

server pool.ntp.org
server ntp.dedibox.fr

Enregistrez, quittez.
6 / Fail2ban et Chkrootkit

Administrer une machine, c’est aussi faire face à une multitude de comiques qui tenteront d’accéder par tous les moyens à un compte. La méthode n’est sans doute pas parfaite mais 2 utilitaires nommés fail2ban et chkrootkit peuvent vous faciliter la vie.

Fail2ban scanne vos fichiers de log en temps réel et banni, si l’option est activée, les gugus qui s’approchent d’un peu trop près du serveur. Il s’installe comme suit :
$ sudo apt-get install fail2ban 

ATTENTION : Avec la version 6.10 d’Ubuntu, vous installerez la version 0.6.1 de fail2ban. Elle est buggée. Suivez ces indications pour corriger l’erreur

Quant à chkrootkit, son rôle se cantonne à vérifier fréquemment la présence de rootkits et vous en avertir.
$ sudo apt-get install chkrootkit 

Alors que fail2ban tourne en daemon, chkrootkit doit être lancé à la mimine. Pour ne pas trop se fatiguer (faut pas déconner, non plus), assignons-lui un cron :
$ sudo crontab -e

Dans le fichier cron, plaçons cette ligne :

0 3 * * *  chkrootkit 2>&1 | mail votre@adresse.mail -s "Rapport quotidien RootKit"

Enregistrez, quittez. Vous recevrez alors par mail [3] quotidiennement, à 3 heures du matin, le rapport.

Le chapitre 1 est clos.

Votre serveur est installé et sécurisé contre les principales attaques.

J’aborderai, dans les prochains chapitres, l’installation et la configuration du serveur de mail postfix, l’installation d’un serveur LAMP (Linux – Apache – Mysql – PHP), la configuration de fail2ban que nous n’avons pour l’instant qu’installé, la configuration d’Apache afin de gérer les Vhosts et l’installation de ProFTP.

Notes :

[1] Indiquer oui à la demande de suppression des autres paquets

[2] Il se peut que ce fichier n’existe pas. Le créer, le cas échéant.

[3] L’installation et la configuration de Postfix seront abordées dans un prochain billet

Giskette

Geekette coquette avec un chat et un gros défaut... mes parents : je m'appelle Gisèle

8 réponses

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *


*