« Généralités sur debian » : différence entre les versions

De Linux Server Wiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
mAucun résumé des modifications
 
(8 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
[Category:Debian]
[[Category:Debian]]
[Category:Serveur]
[[Category:Serveur]]
=Le lancement automatique au boot=
=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/
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 l'init. L'init par défaut qui est exécuté au boot est défini dans le fichier /etc/inittab
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 :
Chez moi par exemple, j'ai la ligne suivante dans mon /etc/inittab :
<pre>id:2:initdefault:</pre>
<pre>id:2:initdefault:</pre>
Celà signifie que lorsque je démarre mon serveur, il passe directement en <code>init 2</code>. C'est donc les fichiers situés dans /etc/rc2.d/ qui seront utilisés pour lancer les services.
Cela signifie que lorsque je démarre mon serveur, il passe directement en <code>init 2</code>. 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 <code>/etc/rc2.d/</code> sont en fait des liens virtuels pointant vers le lanceur situé dans <code>/etc/init.d/</code>
Il est bon de noter que les fichiers situés dans <code>/etc/rc2.d/</code> sont en fait des liens virtuels pointant vers le lanceur situé dans <code>/etc/init.d/</code>
Ligne 17 : Ligne 17 :
Le nombre suivant la lettre S ou K définit la priorité de lancement ou d'arrêt.
Le nombre suivant la lettre S ou K définit la priorité de lancement ou d'arrêt.


Vous pouvez changer l'init actuel avec la commande telinit suivit du numéro de l'init voulu.
Vous pouvez changer le runlevel actuel avec la commande telinit suivit du nombre voulu.
L'init 0 correspont a 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.
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 un lien virtuel pour ajouter un service au lancement automatique :


A titre d'information, voici comment créer manuellement un lien virtuel pour ajouter un service au lancement automatique :
<pre>ln -s /etc/init.d/exemple /etc/rc2.d/S20exemple</pre>
<pre>ln -s /etc/init.d/exemple /etc/rc2.d/S20exemple</pre>


Notez tout de même que beaucoup de serveurs (apache, proftpd, ...) proposent dans leur fichier <code>/etc/default/</code> 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 tout de même que beaucoup de serveurs (apache, proftpd, ...) proposent dans leur fichier <code>/etc/default/</code> 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 <code>update-rc.d</code> permet de créer automatiquement les liens entre <code>/etc/rc?.d/[S|K]NNnom</code> pointant vers le script <code>/etc/init.d/nom</code>.


=Configurer les locales=
=Configurer les locales=
Ligne 47 : Ligne 48 :
Si vous avez des fichiers écrits avec une locale différente, vous pouvez rectifier vos fichiers avec <code>iconv</code>.
Si vous avez des fichiers écrits avec une locale différente, vous pouvez rectifier vos fichiers avec <code>iconv</code>.


===ArchLinux===
=Configuration réseau=
 
Pour modifier la locale sous ArchLinux, il y a 3 étapes distinctes :
* Indiquer quelles locales peuvent être utilisées en modifiant le fichier <code>/etc/locale.gen</code> : il faut les décommenter en retirant le #
* Re-générer les locales en tapant en root la commande <code>locale-gen</code>
* Préciser laquelle utiliser dans le fichier <code>/etc/rc.conf</code> à la variable <code>LOCALE</code> quasiment tout en haut du fichier. Exemple : <code>LOCALE="fr_FR.utf8"</code>


=Configurer l'hostname du serveur=
==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 core.csnu.org.
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 <code>/etc/hostname</code>. Ce fichier défini notamment le nom affiché dans le shell. Tapez :
Le premier fichier à modifier est <code>/etc/hostname</code>. Ce fichier défini notamment le nom affiché dans le shell. Tapez :
<pre>
<pre>
echo core.csnu.org > /etc/hostname
echo srv.domain.tld > /etc/hostname
</pre>
</pre>


Il faut aussi modifier le fichier <code>/etc/hosts</code> et modifier la correspondance entre l'ip de la machine et l'hostname. Dans mon cas :
Il faut aussi modifier le fichier <code>/etc/hosts</code> et modifier la correspondance entre l'ip de la machine et l'hostname. Dans mon cas :
<pre>
<pre>
213.186.47.110  core.csnu.org
213.186.47.110  srv.domain.tld
</pre>
</pre>


=Configurer une adresse ipv4=
==Configurer une adresse ipv4==


=Configurer une adresse ipv6=
==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.
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.
Ligne 87 : Ligne 83 :
       netmask 64
       netmask 64
       #mtu 1280
       #mtu 1280
      up echo 0 > /proc/sys/net/ipv6/conf/all/autoconf
</nowiki></pre>
</nowiki></pre>


Ligne 93 : Ligne 88 :
<pre>
<pre>
::1 localhost.localdomain localhost
::1 localhost.localdomain localhost
2001:41d0:1:127d::1 core.csnu.org
2001:41d0:1:127d::1 srv.domain.tld
</pre>
 
Si vous avez des erreurs du type <code>IPv6 addrconf: prefix with wrong length 56</code> dans votre fichier <code>/var/log/kern.log</code>, ajoutez les lignes suivantes dans votre sysctl :
<pre>
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.default.autoconf = 0
net.ipv6.conf.eth0.autoconf = 0
</pre>
</pre>
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=
=Automatiser la création du motd=
Ligne 115 : Ligne 119 :
linux_logo > /etc/motd
linux_logo > /etc/motd
echo >> /etc/motd
echo >> /etc/motd
echo "Debian GNU/Linux 4.0" >> /etc/motd
echo "Debian GNU/Linux `cat /etc/debian_version`" >> /etc/motd
echo >> /etc/motd
echo >> /etc/motd
uname -a >> /etc/motd
uname -a >> /etc/motd
echo >> /etc/motd
echo >> /etc/motd
echo "server    : `hostname | cut -f 1 -d "."`" >> /etc/motd
echo "server    : `hostname | cut -f 1 -d "."`" >> /etc/motd
echo "ip        : `cat /etc/network/interfaces | grep "address" | head -n 1 | cut -f 2 -d " "`"  >> /etc/motd
echo "ip6 : `tac /etc/network/interfaces | grep "address" |  head -n 1 | cut -f 2 -d " "`" >> /etc/motd
echo "hostname  : `hostname`" >> /etc/motd
echo "hostname  : `hostname`" >> /etc/motd
echo >> /etc/motd
echo >> /etc/motd

Dernière version du 28 juin 2013 à 23:37

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