 |
| DenisG.net | |
|
 | |
|
|
| | RecycLinux | |
|
|
|
|
|
Retour à Réseaux & Linux
(ou comment mettre en place un réseau de bornes internet verrouillées)
Cette page est obsolète, maintenant. Les versions de logiciels cités ici sont dépassées.
LTSP aussi a beaucoup progressé depuis.
Je laisse cette page en ligne pour information, mais ne la suivez pas à la lettre,
le site http://ltsp.org vous en dira beaucoup plus...
Sommaire de la page :
Sur ce sujet, voir aussi
le site de l'Association RecycLinux
Introduction :
En tant qu'administrateur réseau dans un lycée, je passais souvent des
journées entières
à remettre en état les ordinateurs du C.D.I. (sous Windows 98),
voire à tout réinstaller,
suite à diverses dégradations plus ou moins volontaires :
- Changement de fond d'écran et d'apparence des icônes
- Installation de programmes
- Effacement de fichiers ou de programmes
- Destruction gratuite pour le plaisir du vandalisme
Les logiciels de protection pour Windows (WinProtector, WinLock, etc.) étaient évidemment les premiers désinstallés !
Les élèves savent très bien chercher le moyen de les désactiver sur Google...
Pour éviter d'y passer ma vie, j'ai décidé de mettre en place
un serveur LTSP ( Linux Terminal Server Project) et
des terminaux (ou clients légers), c'est-à-dire des postes sans disque dur qui ne font qu'afficher
ce qui se passe sur le serveur. Les élèves, n'ayant pas les droits suffisants, ne peuvent
modifier la configuration du serveur, ni rien y installer ou désinstaller. De plus, toute modification
à apporter au système n'est à faire qu'une seule fois, sur le serveur, et s'applique automatiquement
à tous les terminaux.
Le système d'exploitation Linux nous met aussi à l'abri des virus.
Il faut bien comprendre que pour une utilisation bureautique, un PC passe 99% de
son temps à attendre les ordres de l'utilisateur, il peut donc en gérer plusieurs en même temps.
Dans le pire des cas, si tous les utilisateurs envoient des ordres au même instant,
le léger retard dû à la file d'attente est à peine perceptible.
On peut même avoir un gain
car un programme déjà chargé en mémoire par un premier utilisateur est accessible
plus rapidement pour les suivants.
C'est le serveur qui fait tout, c'est donc lui qu'il faut soigner !
Compter au minimum 512 Mo + 64 Mo par client pour la RAM.
Les clients, eux, se
contenteront de 32 Mo, d'un lecteur de disquettes (ou d'un petit disque dur)
pour booter, d'une carte vidéo et d'une carte réseau.
Préférez des cartes réseau classiques
(3Com ou Realtek, par exemple), reconnues par tous les Linux. De même pour les
cartes vidéo. Les claviers et souris PS/2 sont reconnus sans soucis.
Attention aux souris USB qui nécessitent une manipulation particulière.
( voir plus bas)
Mise en place du CDI :
- Les terminaux, des vieux Pentium II obsolètes pour Windows XP,
et l'imprimante laser (qui n'est plus réseau aujourd'hui mais sur port parallèle,
contrairement à l'illustration ci-contre) sont dans le CDI,
accessibles aux élèves.
- Le serveur, un Celeron 2.6 GHz, 1 Go de RAM,
tournant sous Ubuntu Linux,
est dans le local de brassage réseau,
fermé à clé.
- L'accès à internet se fait par le réseau pédagogique du lycée
(contenu filtré, certains ports bloqués).
Seuls l'accès à internet, grâce à une version bridée du navigateur Firefox
(),
et l'utilisation d'un logiciel de bureautique,
OpenOffice.org sont
possibles pour l'instant.
J'ai choisi l'interface graphique
IceWM
qui est très légère et dont la configuration nécessite
l'édition de fichiers texte, que j'ai protégés en écriture.
|
|
Deuxième étape, une autre salle informatique :
Dans le batiment voisin, j'ai transformé en clients légers les 8 Pentiums III d'une salle
informatique (anciennement sous Windows 98), souvent victimes des mêmes tentatives de vandalismes, pour qu'ils accèdent
eux aussi au serveur LTSP.
Dans chaque salle, un poste pilote une imprimante (sur port parallèle) et les élèves ne peuvent
imprimer que sur l'imprimante qui est dans leur salle.
Les deux sous-réseaux sont reliés au serveur par un switch dédié au réseau LTSP.
Seules les infos vers internet passent par le réseau pédagogique du lycée, pour ne
pas l'encombrer, en effet tous les mouvements de souris et tous les évènements d'affichage
sont transmis au serveur par le réseau
(simple précaution, je pense qu'il pourrait supporter cette
charge sans trop de problèmes).
|
|
Installation du serveur :
Attention, les informations ci-dessous sont pour LTSP 4.1.
Elles sont peut-être aussi valables pour les versions ultérieures, mais ça n'a pas été
encore testé.
Sur une machine où Linux
a été installé (quelle que soit la distribution ),
ainsi que l'interface graphique et les logiciels souhaités :
-
Télécharger
et exécuter (en root) l'installeur ltspadmin, qui va
ensuite
télécharger et configurer tous les composants nécessaires
- La documentation sur
le site de LTSP
est très bien faite, et existe en français. N'oubliez pas
le WIKI.
- Adapter le fichier /etc/dhcpd.conf :
ddns-update-style none;
default-lease-time 21600;
max-lease-time 21600;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
option domain-name-servers 192.168.0.1;
option domain-name "mon-lycee.fr"; # Par exemple...
option root-path "192.168.0.1:/opt/ltsp/i386";
option option-128 code 128 = string;
option option-129 code 129 = text;
subnet 192.168.0.0 netmask 255.255.255.0 {
use-host-decl-names on;
option log-servers 192.168.0.1;
host client1 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.0.2;
filename "/tftpboot/lts/vmlinuz-2.6.9-ltsp-3";
}
Ne pas oublier de relancer dhcpd avec /etc/init.d/dhcpd restart par exemple
Attention si le serveur est sous Ubuntu Linux 5.10 : la version Ubuntu de LTSP utilise
le fichier /etc/ltsp/dhcpd.conf, même s'il y a un /etc/dhcpd.conf ou /etc/dhcp3/dhcpd.conf.
- Fichier /etc/hosts : mettre les adresses de tous les clients
- Ce qui sera la racine des terminaux (leur / ) se situe dans /opt/ltsp/i386,
il faut donc modifier aussi le fichier /opt/ltsp/i386/etc/lts.conf :
[Default]
SERVER = 192.168.0.1
XSERVER = auto
X_MOUSE_PROTOCOL = "ImPS/2" # ceci pour avoir la molette de la souris
X_MOUSE_DEVICE = "/dev/psaux" # avec une souris PS/2
X_MOUSE_RESOLUTION = 400
USE_XFS = N
SCREEN_01 = startx
XkbModel = "pc105"
XkbLayout = "fr-latin9" # clavier français
Installation des clients :
Utiliser un PC portable comme client (carte réseau PCMCIA non reconnue par Rom-o-matic) :
- Télécharger "LTSP-3.0 - Wireless" sur
la page de téléchargement de Sourceforge,
que votre carte réseau soit avec ou sans fil
- Décompresser le fichier (avec
tar xvzf)
- Créer la disquette de boot en suivant le README
Attention : le client boote avec un noyau 2.4.19-ltsp-1 (contenu dans la disquette).
Si vous devez charger des modules lors du boot, vous devez posséder les modules
correspondant à ce noyau.
Pour cela :
- Sur la page Sourceforge (voir plus haut), télécharger ltsp_kernel-3.0.5-i386.tgz
- Décompresser le fichier (avec
tar xvzf)
- Copier lib/modules/2.4.19-ltsp-1 de l'archive décompressée dans /opt/ltsp/i386/lib/modules
Souris USB :
Je n'ai réussi à faire fonctionner une souris USB sur un client qu'en le
bootant avec un noyau 2.4.26-ltsp-3 (à préciser dans /etc/dhcpd.conf,
ne pas oublier de relancer dhcpd avec /etc/init.d/dhcpd restart par exemple).
Ajouter dans /opt/ltsp/i386/etc/lts.conf :
[nom_de_la_station]
MODULE_01 = mousedev
MODULE_02 = usbmouse
X_MOUSE_DEVICE = "/dev/input/mice"
Unité USB branchée sur le serveur :
Pour utiliser sur les clients une unité USB branchée sur le serveur (clé USB, appareil numérique...)
- Créer un répertoire /mnt/usb avec droits 777
mkdir /mnt/usb
chmod 777 /mnt/usb
- Sur le client, en root, taper
mount -t vfat -o umask=000,utf8 /dev/sda1 /mnt/usb
avec vfat pour une unité formatée en FAT32 et msdos pour une
unité formatée en FAT16, et en condidérant que l'unité USB est en /dev/sda1
(dmesg après branchement vous le dira).
Attention : Cette méthode donne accès à l'unité USB à tous les clients.
A n'utiliser que dans le cas où vous pouvez faire confiance à tous les gens connectés.
Si le serveur sert aussi de poste de travail, l'automount (ou hotplug) ne donne l'accès
qu'à la personne loguée localement sur le serveur.
Pour que les autres puissent lire/écrire et démonter l'unité une fois le travail fini,
ajouter une ligne du genre :
/dev/sda1 /mnt/usb vfat users,noauto,gid=1000,uid=1000,umask=002 0 0
dans le fichier /etc/fstab, avec l'UserID et le GroupID qui vous concernent au lieu de 1000.
Ensuite monter l'unité avec mount /mnt/usb ou laisser hotplug s'en charger au branchement.
Lecteur de disquette/CD-ROM local (sur le client) :
- Installer samba :
apt-get install smbfs sous Debian
- Ajouter
[nom_de_la_station]
LOCAL_DEVICE_01 = /dev/fd0:floppy
LOCAL_DEVICE_02 = /dev/cdrom:cdrom
dans lts.conf, en adaptant le nom de la station et du CDROM
- Télécharger les scripts
LDA-setup.sh
et LDA-shutdown.sh,
les rendre exécutables pour tout le monde (avec
chmod a+x),
et les copier dans /usr/local/bin
- Pour GDM :
- Ajouter
/usr/local/bin/LDA-setup.sh en 3ème ligne de /etc/X11/gdm/PostLogin/Default
- Ajouter
/usr/local/bin/LDA-shutdown.sh en 3ème ligne de /etc/X11/gdm/PostSession/Default
- Pour accéder aux disques locaux, ouvrir le gestionnaire de fichiers (nautilus, par exemple)
et taper :
smb://nobody@STATION/drives
dans la barre d'adresse en adaptant le nom de la station
Cliquer ici
pour plus de détails (en anglais).
Scanner HP 5300C USB sur un client :
Pour brancher un scanner sur un client LTSP, il faut télécharger
les modules LTSP Scanners
et suivre
les notes d'installation.
Le scanner HP 5300C utilise une émulation SCSI sur USB.
Il nécessite pour fonctionner le module de noyau 'hpusbscsi' ainsi que le driver 'avision'.
- Dans /opt/ltsp/i386/etc/sane.d/avision.conf, décommenter la ligne :
# usb 0x03f0 0x0701 (enlever le dièse devant)
- /opt/ltsp/i386/etc/rc.d/usbscanner doit contenir :
mknod /dev/usb/scanner c 180 48
mknod /dev/usb/scanner0 c 180 48
- Dans /opt/ltsp/i386/etc/lts.conf, ajouter ces lignes dans la section concernant
le client auquel est connecté le scanner :
MODULE_01 = scanner
MODULE_02 = hpusbscsi
RCFILE_01 = xinetd
RCFILE_02 = usbscanner
- Pour un autre modèle de scanner, commencer par repérer le code USB associé
(0x03f0 0x0701 pour moi) donné par la commande
dmesg au moment où
vous connectez le scanner, et chercher ce code dans le fichier
/opt/ltsp/i386/lib/modules/VOTRENOYAU/modules.usbmap pour connaître le module
à charger. Ensuite appeler ce module au boot de la station (hpusbscsi dans mon exemple)
Conclusion
Ce principe n'est pas du tout nouveau : les gros systèmes (mainframes, UNIX...)
l'utilisent depuis longtemps, mais LTSP l'a adapté à l'utilisation quotidienne et éducative.
J'ai fondé l'Association RecycLinux (voir le site
www.recyclinux.com) dont
l'objet est de recycler des vieux ordinateurs obsolètes en clients légers grâce à cette
technologie. Ceci permettra par exemple de réduire la pollution engendrée par ces
vieilles machines lorsqu'elles
sont mises en décharge.
J'ai aussi adapté la technologie LTSP chez moi
( cliquer ici pour voir mon réseau personnel)
pour me simplifier la
configuration et le maintien à jour des logiciels.
|