ipernet
30/12/2007, 18h30
Un tuto spécial Slackware.
Hormis lors de la mise à jour de la distribution et rapatriement de quelques librairies, tout sera configuré, compilés et installés à partir des sources. Ce n'est donc pas pas un tuto exclusivement réservé à cette distrib.
Il est réalisé sur un Superplan 08 L +, Slackware 10.2. Vous le suivez à vos risques et périls et il n'est pas forcément exhaustif
Le nom du serveur donné ici sera ns10000
1. Livraison du serveur, premières vérifications
Premières vérifications qui peuvent éviter quelques soucis dans un futur proche (problèmes réellement rencontrés) :
Vérification host
#ping ns10000
ping: unknown host ns10000
En fait le fichier host était bancal (ça commencait mal :p) :
#cat /etc/hosts
127.0.0.1 localhost
91.121.14.48 2-ns10000.ovh.net ns10000
On corrige en (avec vi ou en ramenant ça chez soi en sftp, on installe nano dès qu'on peut) :
127.0.0.1 localhost
91.121.14.48 ns10000.ovh.net ns10000
Vérification horloge
#date
La date était elle aussi en retard de deux mois.
Premier problème rencontré :
Mettre à jour la date du serveur en l'enregistrant dans le bios grâce à la commande hwclock ne marche pas.
#hwclock --show
select() to /dev/rtc to wait for clock tick timed out
#hwclock --systohc --debug
hwclock from util-linux-2.12p
Using /dev/rtc interface to clock.
Last drift adjustment done at 1137365083 seconds after 1969
Last calibration done at 1137365083 seconds after 1969
Hardware clock is on UTC time
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
select() to /dev/rtc to wait for clock tick timed out
...got clock tick
#hwclock --set --date="09/11/07 13:56:00" --utc --debug
Issuing date command: date --date="09/11/07 13:56:00" +seconds-into-epoch=%s
response from date command = seconds-into-epoch=1189511760
date string 09/11/07 13:56:00 equates to 1189511760 seconds since 1969.
hwclock from util-linux-2.12p
Using /dev/rtc interface to clock.
Last drift adjustment done at 1137365083 seconds after 1969
Last calibration done at 1137365083 seconds after 1969
Hardware clock is on UTC time
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
select() to /dev/rtc to wait for clock tick timed out
...got clock tick
select() to /dev/rtc to wait for clock tick timed out
Une recherche sur Google nous indiquera qu'il existe un bug avec les Intel dualcore et que l'on peut contourner le problème en utilisant l'option "--directisa" avec hwclock
#hwclock --help | grep directisa
--directisa access the ISA bus directly instead of /dev/rtc
Autant vous dire tout de suite que ca ne marchera pas mieux :p (bus isa inexistant ?)
root@ns10000:/# hwclock --show --directisa
root@ns10000:/#
et que jusqu'à présent je n'ai pas trouvé comment enregistrer dans le bios du serveur la bonne date. Je suis donc obligé de la mettre à jour à chaque (rare) reboot (grâce à NTP que nous verrons plus loin)
Installation de nano
Nano est très pratique et on en a tout le temps besoin. Installons le en priorité
root@ns10000:/home# wget http://repository.slacky.eu/slackware-11.0/office/nano/2.0.6/nano-2.0.6-i486-1sl.tgz
root@ns10000:/home# installpkg nano-2.0.6-i486-1sl.tgz
Utilisateur autre que root
Afin de se logger avec un autre utilisateur que root, on crée un nouvel utilisateur (ici "toto")que l'on n'oublie pas de placer dans le groupe wheel (pour pouvoir se logger en root depuis cet user) :
# useradd -g users -G wheel -s /bin/bash toto
# passwd toto
Une fois effectué, tenter de vous connecter en SSH avec cet utilisateur, puis de vous loggeur en root.
Modification de sshd_config
Attention, les modifications suivantes empecheront les techs OVH d'accèder à votre serveur. A vos risques et périls de les effectuer
On change le port par défaut pour éviter une bonne partie de scan, on interdit au root de se connecter directement (on se connectera avec l'utilisateur "toto")
/etc/ssh/sshd_config
Port 8655
PermitRootLogin no
PermitEmptyPasswords no
AllowUsers toto
SyslogFacility AUTH
LogLevel INFO
On restart (et on ne stop surtout pas !) le démon :
root@ns10000:/etc/rc.d# ./rc.sshd restart
Vous vous connecter maintenant en utilisant votre nouvel utilisateur non root sur le nouveau port.
2. Mise à jour de la distribution avec slackpkg
Téléchargement de slackpkg
#cd /home/
#wget http://heanet.dl.sourceforge.net/sourceforge/slackpkg/slackpkg-2.61-noarch-2.tgz
#installpkg slackpkg-2.61-noarch-2.tgz
Configuration de slackpkg
On désactive la vérification GPG (GPG n'est pas installé pour le moment (on évite ainsi le message de rappel récurrent suivant à chaque fois qu'on utilise slackpkg) :
gpg package not found! Please disable GPG in /etc/slackpkg/slackpkg.conf or install
the gnupg package.
To disable GPG, edit slackpkg.conf and change the value of the CHECKGPG variable
to off - you can see an example in the original slackpkg.conf.new file distributed
with slackpkg.
On active un des miroirs des paquets slackware-10.2 en décommantant une des lignes du michier mirrors :
/etc/slackpkg/mirrors
http://ftp.belnet.be/packages/slackware/slackware-10.2/
Note : On peut tout a fait passer en slackware 12, cependant certaine mise à jour touchant au coeur du système sont à faire avec précaution. Dans ce tutorial nous restons en Slackware 10.2
On peut maintenant mettre à jour la liste interne des paquets de slackpkg :
#slacpkg update
Et ensuite demander la liste des paquets upgradables :
#slackpkg upgrade-all
http://hiboox.com/lang-fr/image.php?img=xu81a9er.png
A vous ensuite de choisir quels paquets vous souhaitez mettre à jour.
3. Installer le nécessaire pour les compilations
Utilisons l'outil de package de la distribution pour récupérer les compilateurs et dépendances nécessaires par la suite.
Dans un premier temps regardons ce qui est installé :
# slackpkg search glib
The list below shows all packages with the selected pattern.
...
[ installed ] - glibc-solibs-2.3.5-i486-6_slack10.2
[ installed ] - glibc-zoneinfo-2.3.5-noarch-8_slack10.2
[uninstalled] - glib-1.2.10-i386-2
[uninstalled] - glib2-2.6.6-i486-1
[uninstalled] - glibc-2.3.5-i486-5
[uninstalled] - glibc-i18n-2.3.5-noarch-5
[uninstalled] - glibc-profile-2.3.5-i486-5
Nous pouvons ainsi installer :
# slackpkg install glib
# slackpkg install glib2
# slackpkg install glibc
Idem pour gcc :
# slackpkg install gcc
# slackpkg search gcc
The list below shows all packages with the selected pattern.
[ installed ] - gcc-4.1.2-i486-1
[ installed ] - gcc-g++-4.1.2-i486-1
[uninstalled] - gcc-gfortran-4.1.2-i486-1
[uninstalled] - gcc-gnat-4.1.2-i486-1
[uninstalled] - gcc-java-4.1.2-i486-1
[uninstalled] - gcc-objc-4.1.2-i486-1
[uninstalled] - gcc-g77-3.4.6-i486-1
Les outils de compilation sont installés. Ils nous manque plus que les kernels-headers aussi nécessaires. Nous allons télécharger les sources complètes du noyau de la machine qui les contient (et nous pourrons ainsi envisager ultérieurement de toucher au noyau).
Tout d'abord enlevons les éventuels kernel-headers/sources déjà installés et qui ne sont pas forcément ceux du noyau sur lequel vous êtes (slackware 10.2 est prévu pour tourner sur un noyau 2.4.32, vous disposez alors des kh/s 2.4.32 dans les dépots unqiuement. Si vous êtes passé en slackware 12, vous aurez les kh/s 2.6.21.5):
Noyau de la machine :
# uname -r
2.6.21.5-grsec-xxxx-grs-ipv4-32
#slackpkg remove kernel-headers
#slackpkg remove kernel-source
Est ce propre ?
cd /usr/src/ && ls -lh devrait etre vide, sinon faite un peu de nettoyage
Dl des sources complètes relatives au noyau, décompression et lien symbolique :
root@ns10000:/usr/src# wget http://www.eu.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.5.tar.gz
root@ns10000:/usr/src# tar xvf linux-2.6.21.5.tar.gz
root@ns10000:/usr/src# ln -s /usr/src/linux-2.6.21.5 linux
On n'oublie pas :
root@ns10000:/usr/src# cd linux/
root@ns10000:/usr/src# make mrproper
Tant qu'on y on peut préparer le terrain à une futur recompilation du noyau.
# cd /usr/include
root@ns10000:/usr/include# ln -s /usr/src/linux/include/linux linux
root@ns10000:/usr/include# ln -s /usr/src/linux/include/asm-i386 asm
root@ns10000:/usr/include# ln -s /usr/src/linux/include/asm-generic asm-generic
Et voila, nous avons de quoi compiler les logiciels que nous allons utilisez et de toucher aussi à la recompilation du noyau (qui ne sera cependant pas aborder ici)
Hormis lors de la mise à jour de la distribution et rapatriement de quelques librairies, tout sera configuré, compilés et installés à partir des sources. Ce n'est donc pas pas un tuto exclusivement réservé à cette distrib.
Il est réalisé sur un Superplan 08 L +, Slackware 10.2. Vous le suivez à vos risques et périls et il n'est pas forcément exhaustif
Le nom du serveur donné ici sera ns10000
1. Livraison du serveur, premières vérifications
Premières vérifications qui peuvent éviter quelques soucis dans un futur proche (problèmes réellement rencontrés) :
Vérification host
#ping ns10000
ping: unknown host ns10000
En fait le fichier host était bancal (ça commencait mal :p) :
#cat /etc/hosts
127.0.0.1 localhost
91.121.14.48 2-ns10000.ovh.net ns10000
On corrige en (avec vi ou en ramenant ça chez soi en sftp, on installe nano dès qu'on peut) :
127.0.0.1 localhost
91.121.14.48 ns10000.ovh.net ns10000
Vérification horloge
#date
La date était elle aussi en retard de deux mois.
Premier problème rencontré :
Mettre à jour la date du serveur en l'enregistrant dans le bios grâce à la commande hwclock ne marche pas.
#hwclock --show
select() to /dev/rtc to wait for clock tick timed out
#hwclock --systohc --debug
hwclock from util-linux-2.12p
Using /dev/rtc interface to clock.
Last drift adjustment done at 1137365083 seconds after 1969
Last calibration done at 1137365083 seconds after 1969
Hardware clock is on UTC time
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
select() to /dev/rtc to wait for clock tick timed out
...got clock tick
#hwclock --set --date="09/11/07 13:56:00" --utc --debug
Issuing date command: date --date="09/11/07 13:56:00" +seconds-into-epoch=%s
response from date command = seconds-into-epoch=1189511760
date string 09/11/07 13:56:00 equates to 1189511760 seconds since 1969.
hwclock from util-linux-2.12p
Using /dev/rtc interface to clock.
Last drift adjustment done at 1137365083 seconds after 1969
Last calibration done at 1137365083 seconds after 1969
Hardware clock is on UTC time
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
select() to /dev/rtc to wait for clock tick timed out
...got clock tick
select() to /dev/rtc to wait for clock tick timed out
Une recherche sur Google nous indiquera qu'il existe un bug avec les Intel dualcore et que l'on peut contourner le problème en utilisant l'option "--directisa" avec hwclock
#hwclock --help | grep directisa
--directisa access the ISA bus directly instead of /dev/rtc
Autant vous dire tout de suite que ca ne marchera pas mieux :p (bus isa inexistant ?)
root@ns10000:/# hwclock --show --directisa
root@ns10000:/#
et que jusqu'à présent je n'ai pas trouvé comment enregistrer dans le bios du serveur la bonne date. Je suis donc obligé de la mettre à jour à chaque (rare) reboot (grâce à NTP que nous verrons plus loin)
Installation de nano
Nano est très pratique et on en a tout le temps besoin. Installons le en priorité
root@ns10000:/home# wget http://repository.slacky.eu/slackware-11.0/office/nano/2.0.6/nano-2.0.6-i486-1sl.tgz
root@ns10000:/home# installpkg nano-2.0.6-i486-1sl.tgz
Utilisateur autre que root
Afin de se logger avec un autre utilisateur que root, on crée un nouvel utilisateur (ici "toto")que l'on n'oublie pas de placer dans le groupe wheel (pour pouvoir se logger en root depuis cet user) :
# useradd -g users -G wheel -s /bin/bash toto
# passwd toto
Une fois effectué, tenter de vous connecter en SSH avec cet utilisateur, puis de vous loggeur en root.
Modification de sshd_config
Attention, les modifications suivantes empecheront les techs OVH d'accèder à votre serveur. A vos risques et périls de les effectuer
On change le port par défaut pour éviter une bonne partie de scan, on interdit au root de se connecter directement (on se connectera avec l'utilisateur "toto")
/etc/ssh/sshd_config
Port 8655
PermitRootLogin no
PermitEmptyPasswords no
AllowUsers toto
SyslogFacility AUTH
LogLevel INFO
On restart (et on ne stop surtout pas !) le démon :
root@ns10000:/etc/rc.d# ./rc.sshd restart
Vous vous connecter maintenant en utilisant votre nouvel utilisateur non root sur le nouveau port.
2. Mise à jour de la distribution avec slackpkg
Téléchargement de slackpkg
#cd /home/
#wget http://heanet.dl.sourceforge.net/sourceforge/slackpkg/slackpkg-2.61-noarch-2.tgz
#installpkg slackpkg-2.61-noarch-2.tgz
Configuration de slackpkg
On désactive la vérification GPG (GPG n'est pas installé pour le moment (on évite ainsi le message de rappel récurrent suivant à chaque fois qu'on utilise slackpkg) :
gpg package not found! Please disable GPG in /etc/slackpkg/slackpkg.conf or install
the gnupg package.
To disable GPG, edit slackpkg.conf and change the value of the CHECKGPG variable
to off - you can see an example in the original slackpkg.conf.new file distributed
with slackpkg.
On active un des miroirs des paquets slackware-10.2 en décommantant une des lignes du michier mirrors :
/etc/slackpkg/mirrors
http://ftp.belnet.be/packages/slackware/slackware-10.2/
Note : On peut tout a fait passer en slackware 12, cependant certaine mise à jour touchant au coeur du système sont à faire avec précaution. Dans ce tutorial nous restons en Slackware 10.2
On peut maintenant mettre à jour la liste interne des paquets de slackpkg :
#slacpkg update
Et ensuite demander la liste des paquets upgradables :
#slackpkg upgrade-all
http://hiboox.com/lang-fr/image.php?img=xu81a9er.png
A vous ensuite de choisir quels paquets vous souhaitez mettre à jour.
3. Installer le nécessaire pour les compilations
Utilisons l'outil de package de la distribution pour récupérer les compilateurs et dépendances nécessaires par la suite.
Dans un premier temps regardons ce qui est installé :
# slackpkg search glib
The list below shows all packages with the selected pattern.
...
[ installed ] - glibc-solibs-2.3.5-i486-6_slack10.2
[ installed ] - glibc-zoneinfo-2.3.5-noarch-8_slack10.2
[uninstalled] - glib-1.2.10-i386-2
[uninstalled] - glib2-2.6.6-i486-1
[uninstalled] - glibc-2.3.5-i486-5
[uninstalled] - glibc-i18n-2.3.5-noarch-5
[uninstalled] - glibc-profile-2.3.5-i486-5
Nous pouvons ainsi installer :
# slackpkg install glib
# slackpkg install glib2
# slackpkg install glibc
Idem pour gcc :
# slackpkg install gcc
# slackpkg search gcc
The list below shows all packages with the selected pattern.
[ installed ] - gcc-4.1.2-i486-1
[ installed ] - gcc-g++-4.1.2-i486-1
[uninstalled] - gcc-gfortran-4.1.2-i486-1
[uninstalled] - gcc-gnat-4.1.2-i486-1
[uninstalled] - gcc-java-4.1.2-i486-1
[uninstalled] - gcc-objc-4.1.2-i486-1
[uninstalled] - gcc-g77-3.4.6-i486-1
Les outils de compilation sont installés. Ils nous manque plus que les kernels-headers aussi nécessaires. Nous allons télécharger les sources complètes du noyau de la machine qui les contient (et nous pourrons ainsi envisager ultérieurement de toucher au noyau).
Tout d'abord enlevons les éventuels kernel-headers/sources déjà installés et qui ne sont pas forcément ceux du noyau sur lequel vous êtes (slackware 10.2 est prévu pour tourner sur un noyau 2.4.32, vous disposez alors des kh/s 2.4.32 dans les dépots unqiuement. Si vous êtes passé en slackware 12, vous aurez les kh/s 2.6.21.5):
Noyau de la machine :
# uname -r
2.6.21.5-grsec-xxxx-grs-ipv4-32
#slackpkg remove kernel-headers
#slackpkg remove kernel-source
Est ce propre ?
cd /usr/src/ && ls -lh devrait etre vide, sinon faite un peu de nettoyage
Dl des sources complètes relatives au noyau, décompression et lien symbolique :
root@ns10000:/usr/src# wget http://www.eu.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.5.tar.gz
root@ns10000:/usr/src# tar xvf linux-2.6.21.5.tar.gz
root@ns10000:/usr/src# ln -s /usr/src/linux-2.6.21.5 linux
On n'oublie pas :
root@ns10000:/usr/src# cd linux/
root@ns10000:/usr/src# make mrproper
Tant qu'on y on peut préparer le terrain à une futur recompilation du noyau.
# cd /usr/include
root@ns10000:/usr/include# ln -s /usr/src/linux/include/linux linux
root@ns10000:/usr/include# ln -s /usr/src/linux/include/asm-i386 asm
root@ns10000:/usr/include# ln -s /usr/src/linux/include/asm-generic asm-generic
Et voila, nous avons de quoi compiler les logiciels que nous allons utilisez et de toucher aussi à la recompilation du noyau (qui ne sera cependant pas aborder ici)