Généralités sur debian

De Linux Server Wiki
Aller à la navigation Aller à la recherche

Le lancement automatique au boot

Quand vous installez des serveurs sous debian, un fichier permettant de le lancer, de l'arrêter, et plus rarement de reloader sa configuration est créé dans /etc/init.d/ Lorsque vous lancez votre serveur, certains services devront être lancé automatiquement. Ce lancement est effectué grâce à des fichiers situés dans /etc/rc?.d/ Le point d'interrogation (?) représente un chiffre contenu entre 0 et 6. Ce chiffre représente le runlevel. Le runlevel par défaut qui est exécuté au boot est défini dans le fichier /etc/inittab Chez moi par exemple, j'ai la ligne suivante dans mon /etc/inittab :

id:2:initdefault:

Cela signifie que lorsque je démarre mon serveur, il passe directement en init 2. C'est donc les fichiers situés dans /etc/rc2.d/ qui seront utilisés pour lancer les services.

Il est bon de noter que les fichiers situés dans /etc/rc2.d/ sont en fait des liens virtuels pointant vers le lanceur situé dans /etc/init.d/ Si on supprime l'un de ces lignes virtuels, le service en question ne sera plus lancé automatiquement. Si on ajoute un lien, le service correspondant sera alors automatiquement lancé au boot.

Vous avez peut-être remarqué que les liens ne sont pas nommé uniquement par le nom du service qu'ils lancent, mais qu'ils sont préfixés d'une lettre et de deux chiffres. Un lien commençant par un S sera lancé, alors qu'un lien commençant par un K sera stoppé (K comme Kill) Le nombre suivant la lettre S ou K définit la priorité de lancement ou d'arrêt.

Vous pouvez changer le runlevel actuel avec la commande telinit suivit du nombre voulu. L'init 0 correspond à l'arrêt du serveur. L'init 6 correspond au reboot. L'init 1 est généralement utilisé pour un système single-user, et les init 2 à 5 pour un système multi-user.

A titre d'information, voici comment créer manuellement un lien virtuel pour ajouter un service au lancement automatique :

ln -s /etc/init.d/exemple /etc/rc2.d/S20exemple

Notez tout de même que beaucoup de serveurs (apache, proftpd, ...) proposent dans leur fichier /etc/default/ de définir s'ils doivent se lancer ou non au boot. Cela permet de ne pas toucher aux fichiers de /etc/rc?.d/

Notez aussi que l'outil update-rc.d permet de créer automatiquement les liens entre /etc/rc?.d/[S|K]NNnom pointant vers le script /etc/init.d/nom.

Configurer les locales

Les paramètres régionaux (locales en anglais) sont un ensemble de définitions de textes et de formats des fichiers.

Pour modifier la locale sous Debian, tapez :

dpkg-reconfigure locales

Au premier menu, cochez les locales suivantes avec la touche espace :

fr_FR ISO-8859-1
fr_FR.UTF-8 UTF-8
fr_FR.UTF-8@euro UTF-8
fr_FR@euro ISO-8859-15

Au menu suivant, définissez fr_FR.UTF-8 comme locale active par défaut.

A titre d'information, les locales actives sont listées dans /etc/locale.gen. Vous pouvez modifier manuellement les locales actives en les ajoutant dans ce fichier puis en utilisant la commande locale-gen

Si vous avez des fichiers écrits avec une locale différente, vous pouvez rectifier vos fichiers avec iconv.

Configuration réseau

Configurer l'hostname du serveur

Généralement, l'hostname de votre serveur correspond au nom de la machine chez la société chez qui vous louez le serveur. C'est ce même nom qui est affiché dans la ligne de votre shell lorsque vous vous loguez en ssh. Si vous possédez votre domaine, vous voudrez probablement avoir votre propre hostname. Dans mon cas, mon serveur s'appelle srv.domain.tld.

Le premier fichier à modifier est /etc/hostname. Ce fichier défini notamment le nom affiché dans le shell. Tapez :

echo srv.domain.tld > /etc/hostname

Il faut aussi modifier le fichier /etc/hosts et modifier la correspondance entre l'ip de la machine et l'hostname. Dans mon cas :

213.186.47.110  srv.domain.tld

Configurer une adresse ipv4

Configurer une adresse ipv6

Si la société chez qui vous louez votre serveur vous a alloué un bloc ipv6 vous voudrez peut-être configurer des adresses ipv6 sur votre serveur. Dans mon cas, le bloc ipv6 est 2001:41D0:1:127d::/64. Pour ajouter l'adresse ipv6 2001:41d0:1:127d::1 à l'interface eth0 de votre serveur, tapez:

ifconfig eth0 inet6 add 2001:41d0:1:127d::1/64

Pour supprimer cette adresse ipv6 :

ifconfig eth0 inet6 del  2001:41d0:1:127d::1/64

Pour que l'adresse ipv6 soit configurée automatiquement au boot il faut ajouter les lignes suivantes dans /etc/network/interfaces :

iface eth0 inet6 static
       address 2001:41d0:1:127d::1
       netmask 64
       #mtu 1280

Enfin, il faut modifier /etc/hosts :

::1 localhost.localdomain localhost
2001:41d0:1:127d::1 srv.domain.tld

Si vous avez des erreurs du type IPv6 addrconf: prefix with wrong length 56 dans votre fichier /var/log/kern.log, ajoutez les lignes suivantes dans votre sysctl :

net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.default.autoconf = 0
net.ipv6.conf.eth0.autoconf = 0

Pensez à adapter/ajouter des lignes de ce genre pour chacune de vos interfaces réseau. Cette alerte est liée au fait que les routeurs (ovh dans mon cas) annoncent un /56 alors que vous utilisez un /64.

Automatiser la création du motd

Le fichier /etc/motd contient le message qui doit être affiché lorsque quelqu'un se log en ssh. Vous pouvez y entrer par exemple un message que vous voulez passer aux utilisateurs du serveur.

Si vous voulez bénéficier d'un motd graphique, installez le paquet linuxlogo :

aptitude install linuxlogo

Vous pouvez créer un logo en dirigeant la sorti de la commande linux_logo vers /etc/motd :

linux_logo > /etc/motd

Si vous voulez automatiser la création d'un motd dynamique qui se modifiera par exemple à chaque changement de kernel il faut créer un script sh qui sera lancé à chaque démarrage. Personnellement, je me sers du fichier /etc/rc.local. Voici mon fichier /etc/rc.local :

#!/bin/sh -e
linux_logo > /etc/motd
echo >> /etc/motd
echo "Debian GNU/Linux `cat /etc/debian_version`" >> /etc/motd
echo >> /etc/motd
uname -a >> /etc/motd
echo >> /etc/motd
echo "server    : `hostname | cut -f 1 -d "."`" >> /etc/motd
echo "hostname  : `hostname`" >> /etc/motd
echo >> /etc/motd
/bin/cp /etc/motd /etc/issue
exit 0

Des mails temporaires avec exim4

Vous aurez peut-être temporairement besoin d'un serveur smtp local pour gérer vos envois de mails (crontab, ...). Pour celà, nous allons rapidement configurer Exim4. Pour commencez, installez mailx:

aptitude install mailx

mailx permet d'envoyer et de recevoir des mails (c'est un MUA, ou Mail User Agent). Les dépendances de mailx sous debian vont installer un serveur smtp. Sous debian, c'est exim4 qui va est installé par défaut.

Vous serrez amené à répondre à plusieurs questions pour la configuration d'exim4. Rien de bien compliqué. Pour une raison obscure, lors de l'installation, je ne pouvais pas modifier le nom du serveur (mailname). Si vous êtes dans le même cas de figure, il suffit de modifier le fichier /etc/mailname et d'y entrer votre domaine. Une fois cela fait, il ne reste plus qu'à relancer la configuration d'exim:

dpkg-reconfigure exim4-config