Table des matières

, , ,

Ubuntu server

Préparation avant installation

Avant d'installer Ubuntu serveur, quelques informations sont à prendre en compte :

Besoins matériels

Le minimum requis pour l'installation est de 256Mo RAM et un espace disque de 2 GO (installation de base) ou 3 Go (installation de toutes les options de tasksel 1).

L'édition serveur offre un socle pour le support de serveurs applicatifs de toutes sortes. C'est une version minimale de la plate-forme, qui permet d'offrir les services voulus comme le partage de fichiers, le service d'impression, l'hébergement de sites web, le service de messagerie 2) , etc.

Les besoins pour UEC sont totalement différents (pour cela voir la page UEC).

Différences entre version serveur et desktop

Il y a quelques différences entre ces deux versions.

Il est à noter que les deux utilisent les mêmes dépôts APT, ce qui rend aussi facile l'installation d'applications serveurs sur un poste de travail que sur un serveur.

Les différences entre les deux éditions sont l'absence d'environnement graphique X sur la version serveur, le processus d'installation et les options différentes du noyau3).

Différences des options du noyau

La version 64 bits d'Ubuntu fonctionnant sur un processeur 64 bits n'est pas limitée dans l'adressage d'espace mémoire.

Pour voir toutes les options de configuration du noyau, vous pouvez jeter un oeil au fichier /boot/config-2.6.35-server. Le livre Linux Kernel in a Nutshell présente également les options disponibles.

Sauvegardes

Avant d'installer Ubuntu Serveur, vous devriez être sur d'avoir sauvegardé la totalité des données présentes sur le disque dur.

Si ce n'est pas le premier système d'exploitation que vous installez sur cet ordinateur, il y a de fortes chances pour que vous ayez à re-partitionner votre disque dur, pour faire de la place à Ubuntu.

A chaque re-partitionnement d'un disque, il faut être prêt à perdre la totalité des informations qu'il contenait, que vous ayez fait une erreur, ou que quelque chose se déroule mal pendant le partitionnement. Même si les programmes utilisés pendant le processus d'installation sont relativement stables, certains étant utilisés depuis des années, il ne faut pas perdre de vue qu'ils effectuent des actions destructrices.

Installation depuis le CD

Les premières étapes pour installer Ubuntu Serveur depuis le CD d'installation sont les mêmes que pour installer n'importe quel système d'exploitation depuis un CD.

A la différence de la version Desktop, la version serveur ne dispose pas d'un programme d'installation graphique. A la place, la version serveur utilise un processus basé sur des choix de menus type console.

La suite de la description ne concerne que la version de base. Pour plus d'informations sur UEC, merci de consulter la page dédiée.

A certaines étapes de l'installation, vous aurez besoin de lire l'écran d'aide du système d'installation. Pour cela, taper F1.

Tasksel

Pendant l'installation, vous avez la possibilité d'installer des paquets additionnels depuis le CD. Ces paquets sont groupés par type de service :

L'installation de ces groupes de paquets est possible grâce à l'utilitaire Tasksel. Une des différences les plus importantes entre Ubuntu (debian) et les autres distributions GNU/Linux est qu'une fois installée, un paquet est déjà configuré avec des options par défauts fonctionnelles, et éventuellement, vous demande des informations complémentaires. En outre, quand vous installez une tâche, les paquets ne sont pas seulement installés, mais aussi configurés de façon à fournir un service totalement fonctionnel.

Une fois le processus d'installation fini, vous pouvez voir une liste des tâches disponibles en tapant cette commande :

tasksel --list-tasks
La sortie de la commande va lister les tâches des autres versions d'Ubuntu, comme Kubuntu et Edubuntu. Notez que vous pouvez appeler la commande tasksel elle même, ce qui va vous apporter un menu avec les différentes tâches disponibles.

Vous pouvez voir une liste des paquetages installés avec chaque tâches en utilisant l'option –task-packages. Par exemple, pour lister les paquets installés avec la tâche Serveur DNS, entrez :

tasksel --task-packages dns-server

La sortie devrait rendre :

bind9-doc
bind9utils
bind9

Si vous n'avez pas installé une des tâches pendant le processus d'installation, mais que par exemple vous avez décidé de faire de votre serveur LAMP un nouveau serveur DNS, vous pouvez simplement insérer le CD d'installation et depuis un terminal, saisir :

sudo tasksel install dns-server

Mise à jour

Il existe deux commandes pour mettre à jour Ubuntu via la ligne de commande :

sudo apt-get update && sudo apt-get upgrade

La commande upgrade permet d'installer les versions les plus récentes de tous les paquets de la version d'Ubuntu en cours.

sudo apt-get update && sudo apt-get dist-upgrade

La commande dist-upgrade effectue la fonction upgrade en y ajoutant une gestion intelligente des changements de dépendances dans les nouvelles versions de paquets. Cette commande est recommandée pour les serveurs en production.

Mise à niveau (Migration)

Pour réaliser une mise à niveau en ligne de commande, consultez ce paragraphe.

Configuration réseau

Ubuntu desktop est livré avec un certain nombre d'utilitaires graphiques pour configurer une interface réseau. Étant en environnement serveur, nous allons nous focaliser sur la configuration du réseau uniquement en ligne de commande.

Interface Ethernet

Les interfaces Ethernet sont identifiées par le système en utilisant par convention le nommage ethX, ou X représente une valeur numérique. La première interface est typiquement identifiée comme eth0, la seconde comme eth1, et les suivantes dans l'ordre numérique.

Les interfaces Ethernet peuvent aussi être identifiée sous la forme p1p5.

Si le serveur tourne sur VirtualBox, les interfaces peuvent également être sous la forme enp0sX.

Identifier une interface

Pour rapidement identifier toutes les interfaces Ethernet, vous pouvez utiliser la commande ifconfig :

ifconfig -a | grep eth
eth0    Link encap:Ethernet    HWaddr 00:15:c5:4a:16:5a

Une autre application qui peut vous aider à identifier toutes les interfaces disponibles sur le système est la commande lshw.

Dans l'exemple ci-dessous, lshw montre une interface Ethernet unique, avec comme nom logique eth0, avec le bus d'information, les détails du driver et toutes les fonctionnalités supportées.

sudo lshw -class network
  *-network
    description: Ethernet interface
    product: BCM4401-B0 100Base-TX
    vendor: Broadcom Corporation
    physical id: 0
    bus info: pci@0000:03:00.0
    logical name: eth0
    version: 02
    serial: 00:15:c5:4a:16:5a
    size: 10MB/s
    capacity: 100MB/s
    width: 32 bits
    clock: 33MHz
    capabilities: (snipped for brevity)
    configuration: (snipped for brevity)
    resources: irq:17 memory:ef9fe000-ef9ffffff

Noms logiques des interfaces Ethernet

Les noms logiques sont configurés dans le fichier /etc/udev/rules.d/70-persistent-net.rules .

Si vous voulez contrôler quelle interface reçoit tel nom logique, trouvez la ligne contenant l'adresse physique MAC et modifiez la valeur NAME=ethX. Rebootez le système pour valider le changement.

Configuration des interfaces Ethernet

ethtool est un programme qui affiche ou change les paramètres des cartes Ethernet, comme l'auto-négociation, la vitesse du port, le mode duplex, et le Wake-on-Lan. Il n'est pas installé par défaut, mais est disponible dans les dépots.

sudo apt-get install ethtool

Cet exemple montre comment voir les fonctionnalités supportées et comment configurer une interface Ethernet :

sudo ethtool eth0
  Settings for eth0:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Half 1000baseT/Full
    Supports auto-negotiation: Yes
    Advertised link modes:  10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Half 1000baseT/Full
    Advertised auto-negotiation: Yes
    Speed: 1000Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 1
    Transceiver: internal
    Auto-negotiation: on
    Supports Wake-on: g
    Wake-on: d
    Current message level: 0x000000ff (255)
    Link detected: yes

Les changements faits avec ethtool sont temporaires, et seront perdus au démarrage suivant. Si vous voulez que ces paramètres soit définitifs, ajoutez les commandes ethtool après une instruction pre-up dans le fichier de configuration : /etc/network/interfaces.

L'exemple suivant montre comment une interface identifiée comme eth0 peut être configurée d'une manière permanente avec une vitesse de 1000Mb/s en full duplex :

auto eth0
iface eth0 inet static
pre-up /usr/sbin/ethtool -s eth0 speed 1000 duplex full
L'exemple ci-dessus montre une interface configurée en mode static. Cette solution fonctionne également avec une configuration DHCP.

Adressage IP

Adressage temporaire

Pour une configuration temporaire, vous pouvez utiliser les commandes standards comme ip, ifconfig, et route, qui fonctionnent également sur les autres systèmes d'exploitations GNU/Linux.

Ces commandes vous permettent d'appliquer une configuration, qui prend effet immédiatement, bien qu'elle ne soit pas persistente, et qu'elle soit perdue au redémarrage.

Pour configurer temporairement une adresse IP, vous pouvez utiliser la commande ifconfig de cette manière :

sudo ifconfig eth0 192.168.1.1 netmask 255.255.255.0

Pour vérifier la configuration de l'adresse de la carte eth0, réutilisez ifconfig :

ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:15:c5:4a:16:5a
     inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
     inet6 addr: fe80::215:c5ff:fe4a:165a/64 Scope:Link
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
     RX packets:466475604 errors:0 dropped:0 overruns:0 frame:0
     TX packets:403172654 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:1000
     RX bytes:2574778386 (2.5 GB) TX bytes:1618367329 (1.6 GB)
     Interrupt:16

Pour configurer une passerelle par défaut, vous pouvez utiliser la commande route :

sudo route add default gw 192.168.1.240 eth0

et pour vérifier la configuration de la passerelle :

route -r

Si vous avez besoin d'un serveur DNS temporairement, vous pouvez ajouter l'adresse d'un serveur DNS dans le fichier /etc/resolv.conf : (* Cette information est obsolete dans les dernières version : faire man resolvconf et lire le README de resolvconf *)

nameserver 192.168.1.1
nameserver 192.168.1.2

Si vous n'avez plus besoin de cette configuration et voulez purger toute la configuration d'une interface, vous pouvez utiliser la commande ip qui vide les options :

ip addr flush eth0
Purger la configuration IP ne nettoie pas le contenu de /etc/resolv.conf. Il faut supprimer les entrées manuellement.

Adressage IP Dynamique

Pour configurer votre serveur afin d'utiliser un adressage IP dynamique, ajoutez la méthode dhcp à l'interface appropriée dans /etc/network/interfaces :

auto eth0
iface eth0 inet dhcp

Après avoir modifié la configuration de la carte réseau comme ci-dessus, vous pouvez manuellement appliquer le changement avec la commande ifup, qui initialise le processus DHCP via dhclient.

sudo ifup eth0

Pour désactiver manuellement une carte réseau, utilisez la commande ifdown, qui va initier le processus d'arrêt de DHCP et arrêter l'interface.

sudo ifdown eth0

Adressage IP statique

Pour configurer le système en adressage IP statique, ajoutez la méthode static à l'interface appropriée dans /etc/network/interfaces :

auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.240

Vous pouvez activer/désactiver l'interface en utilisant les commandes ifup et ifdown comme vu précédemment.

L'interface de Loopback

L'interface de loopback est identifiée par le système comme lo et son adresse IP par défaut est 127.0.0.1. Cela peut être vérifié avec la commande ifconfig :

ifconfig lo
lo    Link encap:Local Loopback
      inet addr:127.0.0.1 Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING MTU:16436 Metric:1
      RX packets:2718 errors:0 dropped:0 overruns:0 frame:0
      TX packets:2718 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:183308 (183.3 KB) TX bytes:183308 (183.3 KB)

Par défaut, il doit y avoir deux lignes dans le fichier /etc/network/interfaces qui configure automatiquement l'interface de loopback. Il est recommandé de conserver ces paramètres par défaut à moins d'avoir un but précis de le faire :

auto lo
iface lo inet loopback

Résolution de noms

Pour configurer le système pour utiliser la résolution de nom DNS, ajoutez l'adresse IP des serveurs DNS appropriés à votre réseau dans le fichier /etc/resolv.conf. Vous pouvez également ajouter un suffix DNS correspondant à votre nom de domaine réseau.

search ubuntu-fr.lan
nameserver 192.168.1.1
nameserver 192.168.1.2

L'option search peut également être utilisée avec plusieurs domaines, de telle sorte que les requêtes DNS seront complétées avec le suffix dans l'ordre indiqué par le fichier /etc/resolv.conf.

Par exemple, si votre réseau dispose de plusieurs sous-domaine DNS : un parent ubuntu-fr.lan, et deux sous-domaines dev.ubuntu-fr.lan et asso.ubuntu-fr.lan, le fichier de configuration ressemblera à ceci :

search ubuntu-fr.lan dev.ubuntu-fr.lan asso.ubuntu-fr.lan
nameserver 192.168.1.1
nameserver 192.168.1.2

et si vous essayer de faire un ping sur le nom serveur1, votre système va automatiquement interroger le DNS en utilisant le FQDN (Fully Qualified Domain Name) dans cet ordre :

  1. serveur1.ubuntu-fr.lan
  2. serveur1.dev.ubuntu-fr.lan
  3. serveur1.asso.ubuntu-fr.lan

Si aucune réponse ne correspond, le serveur DNS renverra un résultat notfound et la requête DNS échouera.

Noms d'hôtes statiques

Les noms d'hôtes statiques peuvent être définis localement dans le fichier /etc/hosts.

Les entrées dans le fichier hosts seront prioritaire par rapport au DNS par défaut. Cela implique que si votre système essaie de résoudre un nom d'hôte et qu'une entrée correspond dans le fichier hosts, il ne va pas essayer d'interroger le DNS.

Dans certaines configurations, spécialement quand l'accès à Internet n'est pas requis, les serveurs qui communiquent avec un nombre limité de ressources peuvent être paramétrés pour utiliser avec avantage les noms d'hôtes statiques en lieu et place du DNS.

L'exemple suivant est un exemple de fichier hosts, dans lequel un certain nombre de serveurs ont été identifiés simplement par leur nom d'hôte, leur alias et leur FQDN équivalent :

127.0.0.1 localhost
127.0.1.1 ubuntu-serveur
192.168.1.1 serveur1 www serveur1.ubuntu-fr.lan
192.168.1.2 serveur2 mail serveur2.ubuntu-fr.lan
192.168.1.3 serveur3 file serveur3.ubuntu-fr.lan
192.168.1.4 serveur4 backup serveur4.ubuntu-fr.lan

Configuration NSS (Name Service Switch)

L'ordre dans lequel votre système sélectionne une méthode de résolution de noms en adresses IP est contrôlé par le fichier de configuration de NSS (Name Service Switch) /etc/nsswitch.conf. Comme mentionné dans la section précédente, typiquement, les noms d'hôtes statiques définis dans /etc/hosts sont prioritaires par rapport à la résolution de noms DNS.

L'exemple suivant montre la ligne responsable de cet ordre dans le fichier /etc/nsswitch.conf :

hosts:    files mdns4_minimal [NOTFOUND=return] dns mdns4

Pont

Faire un pont entre de nombreuses interfaces est une configuration un peu plus avancée, mais est vraiment utile dans de nombreux scénarios. Un premier scénario est de configurer un pont avec plusieurs interfaces réseau, et d'utiliser un firewall pour filtrer le trafic entre deux segments du réseau. Un autre scénario est d'utiliser un pont sur un système avec une interface pour permettre à des machines virtuelles d'accéder directement au réseau externe. L'exemple ci-dessous reprend ce dernier scénario :

Avant de configurer un pont, vous devrez installer le paquet bridge-utils :

sudo apt-get install bridge-utils

Ensuite, configurer le pont en éditant le fichier /etc/network/interfaces :

auto lo
iface lo inet loopback

auto br0
iface br0 inet static
  address 192.168.1.10
  network 192.168.1.0
  netmask 255.255.255.0
  broadcast 192.168.1.255
  gateway 192.168.1.1
  bridge_ports eth0
  bridge_fd 9
  bridge_hello 2
  bridge_maxage 12
  bridge_stp off

Redémarrer le réseau pour initialiser le pont :

sudo /etc/init.d/networking restart

Le nouveau pont devrait maintenant fonctionner. brctl donne des informations utiles à propos de l'état du pont, quelles interfaces sont configurées pour le pont, etc. Voir le man brctl pour plus d'informations.


Basé sur « Ubuntu Server Guide - Community Ubuntu Documentation ».

1)
Attention tasksel installe des métapaquets
2)
sous condition d'avoir un nom de domaine et une IP fixe en ce qui concerne le partage de fichier et l'hébergement de sites web