« Généralités sur debian » : différence entre les versions
Aucun résumé des modifications |
mAucun résumé des modifications |
||
(9 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[[Category:Debian]] | |||
[[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 | 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> | ||
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 15 : | 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 | Vous pouvez changer le runlevel actuel avec la commande telinit suivit du nombre voulu. | ||
L'init 0 | 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 : | |||
<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 45 : | 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>. | ||
== | =Configuration réseau= | ||
=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 | 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 | 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 | 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 85 : | Ligne 83 : | ||
netmask 64 | netmask 64 | ||
#mtu 1280 | #mtu 1280 | ||
</nowiki></pre> | </nowiki></pre> | ||
Ligne 91 : | Ligne 88 : | ||
<pre> | <pre> | ||
::1 localhost.localdomain localhost | ::1 localhost.localdomain localhost | ||
2001:41d0:1:127d::1 | 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 113 : | Ligne 119 : | ||
linux_logo > /etc/motd | linux_logo > /etc/motd | ||
echo >> /etc/motd | echo >> /etc/motd | ||
echo "Debian GNU/Linux | 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 "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