Linux par l'exempleVersion 1.0.8 du 07/11/1999 Qui n'a pas au moins une fois, lors du paramétrage de certains programmes Linux, regretté de ne pas avoir un exemple sous la main? C'est fort de cette constatation que j'ai décidé de tenter d'apporter une solution à ce problème à travers cette modeste contribution. Sommaire
Avant propos Avant proposL'installation et les paramétrages ci-après décrits, ont été fait (à l'origine) à partir d'une distribution RedHat 5.0. Néanmoins, moyennant quelques modifications (au niveau de l'emplacement des fichiers surtout), la partie configuration reste valable pour n'importe quelle distribution. La machine est un serveur intranet mais j'ai ajouté dans certains cas des remarques particulières à l'utilisation avec un portable (paramétrages X en particulier). Cette documentation peut donc aussi vous guider lors de l'installation de Linux sur un portable IBM ThinkPad 380Z. Remarques:
1. INSTALLATION1.1 PartitionnementLe partitionnement se fait avec Disk Druid (un outil assez convivial) ou bien FDisk (un peu plus spartiate, mais présent sur de nombreuses distributions). J'ai créé les partitions suivantes sur un disque de 6 Go: / de 100 Mo, la racine, montée en /dev/hda1 /var de 2 Go, pour les impressions et le courrier, montée en /dev/hda5 /ftpd de 1 Go, la zone FTP, montée en /dev/hda6 /httpd de 1 Go, la zone Web, montée en /dev/hda7 /usr de 600 Mo, la zone des programmes, montée en /dev/hda8 /home de 400 Mo, les répertoires utilisateurs, montée en /dev/hda9 /tmp de 200 Mo, pour les fichiers temporaires, montée en /dev/hda10 Par ailleurs, une partition de swap de 100 Mo a été créée. Il est d'usage de faire un swap d'environ 2 fois la taille de la RAM. Remarques:
1.2 PackagesSi l'on n'est pas sûr de ses besoins, que l'on a un disque dur de taille suffisante et partitionné correctement, on peut installer tous les packages, ainsi on est sûr d'avoir tous les outils nécessaires. Par la suite, les packages qui s'avèreront inutiles peuvent être désinstallés sans aucun problème (par rpm -e). Bien entendu, cette solution de facilité n'est à utiliser que si l'on ne connait pas bien le contenu du CD-ROM et ce dont on a besoin. Une sélection plus rigoureuse et limitée sera toujours meilleure et permettra de réduire d'autant la partition /usr. 1.3 Réseau et carteLa carte réseau utilisée était une Intel EtherExpress Pro. Je n'ai pas pu utiliser la détection automatique qui ne fonctionne pas avec elle. Lorsque le programme demande les paramètres, il faut indiquer io=0x300 irq=10 (la carte a été paramétrée et le PnP désactivé sous DOS auparavant). Cela va charger le module de la carte Intel au boot et lui permettre de fonctionner. C'est le fichier /etc/conf.modules qui sera modifié comme suit: alias eth0 eepro options eepro io=0x300 irq=10 Pour la configuration réseau, j'ai pris l'adresse 55.134.16.33, le subnet mask 255.255.240.0, la passerelle par défaut 55.134.16.9 et le DNS 127.0.0.1 (c'est en accord avec l'adressage général de l'entreprise). L'hôte sera localhost.localdomain et le domaine localdomain (valeurs par défaut). Remarques:
1.4 XWindowIl faut ensuite installer XFree86. Xconfigurator a détecté chaque fois correctement la carte graphique. Ensuite, j'ai utilisé le moniteur Spécial; puis choisi Super VGA étendu, 800x600 à 60 Hz et la plage de fréquence 50-70 (c'était un 15 pouces, SVGA, pour lequel je n'avais pas d'autres caractéristiques). Le test fut ok (cela fonctionne la plupart du temps avec un moniteur 15'' classique, mais en cas de doûte consultez votre notice). Ensuite, j'ai préféré choisir moi-même la définition et le nombre de couleurs: ce sera 800x600 16 bits. Remarques:
1.5 DaemonsUn certain nombre de daemons (services) sont proposés en démarrage automatique par la RedHat. En cas de doute, il vaut mieux ne rien changer à ce niveau pour le moment. Sinon, il faut savoir que dans le cadre d'un serveur, on peut lancer (non exhaustif): atd (exécutions différées), crond (exécutions automatiques), inetd, httpd (serveur web), network, random, smb (liaison avec des postes clients Windows). Remarque: pour le portable, on peut ajouter apmd (gestion de la batterie; c'est facultatif la gestion BIOS étant suffisante) et pcmcia (pour les ports du même nom). 1.6 Lilo (Linux Loader)Le chargeur a été installé sur le bloc de démarrage (Master Boot Record) du premier disque. Dans ce cas, on est sûr que quel que soit le BIOS, ça fonctionnera. Les autres possibilités peuvent poser des problèmes dans certains cas. Par ailleurs, une disquette de boot d'urgence a été créée pour éviter d'être bloqué en cas de problème avec lilo ou le disque dur. Remarques:
2. COMPLEMENTS D'INSTALLATIONAprès le premier démarrage, il va falloir faire quelques modifications pour avoir un système complet (serveur comme portable) et en particulier compiler un nouveau noyau (il est toujours bon de faire un noyau règlé et compilé pour sa machine). Pour commencer, je conseille de travailler dans un shell sous XWindow (lancement par la commande startx, puis ouverture d'un terminal): le shell est plus large, on a accès à des utilitaires plus conviviaux et en prime, c'est plus joli. Remarque: attention au verrouillage du pavé numérique qui peut gèner la manipulation des fenêtres sous X: sous fvwm, il empêche l'accès aux menus et gadgets des fenêtres. Avant toute chose, afin de prévenir des problèmes lors de l'installation de nouveau packages, il vaut mieux conserver une trace de l'installation originale par la commande rpm -qa >/root/liste_install. Le fichier en question contiendra la liste des packages installés et leur version. Toute modification sur les packages devrait être ajoutée à cette liste afin d'avoir un bon suivi des ajouts/suppressions/mises à jour et ainsi pouvoir les annuler sans dommage. Le système rpm gère une base de données de ce qui est installé (très complète) mais il ne fait pas d'historique d'où l'intérêt de ce fichier pour se souvenir de "ce qui a été". 2.1 Configuration du réseauLe nom d'hôte est zeus.olympe (notre serveur est zeus, logique non?) et le domaine olympe. Routage: la passerelle est en 55.134.16.9 et utilise le device eth0. Le fichier /etc/sysconfig/network doit contenir: NETWORKING=yes FORWARD_IPV4=no HOSTNAME=zeus.olympe DOMAINNAME=olympe GATEWAY=55.134.16.9 GATEWAYDEV=eth0 Les hôtes (fichier /etc/hosts) sont: 127.0.0.1 localhost 55.134.16.33 zeus Si ça n'a pas été fait à l'installation (c'est le cas du portable), il faut également paramètrer la carte réseau en éditant les caractéristiques de eth0. L'adresse est 55.134.16.33 et le subnet mask 255.255.240.0. Par ailleurs, j'ai demandé à ce que l'inferface soit activée au boot et que les utilisateurs ne puissent pas la désactiver. Enfin, aucun protocole n'est utilisé. Tout cela donnera le fichier de configuration de l'interface /etc/sysconfig/network-scripts/ifcfg-eth0 suivant: DEVICE=eth0 USERCTL=no ONBOOT=yes BOOTPROTO=none BROADCAST=55.134.31.255 NETWORK=55.134.16.0 NETMASK=255.255.240.0 IPADDR=55.134.16.33 Remarques:
2.2 Recompilation du noyau / LiloPour plus d'information à ce sujet, consulter le Manuel de l'utilisateur RedHat, Configuration post-installation, le KERNEL-HOWTO ou le PCMCIA-HOWTO. C'est une opération indispensable pour au moins trois raisons dans notre cas: Le nouveau pilote de la carte réseau Intel (eepro.c) doit être copié
dans le répertoire /usr/src/linux/drivers/net. Pour commencer, il faut se placer dans le répertoire /usr/src/linux. Ensuite, il faudra choisir les paramètres du noyau. Pour cela, il suffit d'exécuter make xconfig sous X ou make menuconfig sous terminal (pour créer le fichier /usr/src/linux/.config). Les paramètres par défaut sont assez bons, néanmoins voici quelques exemples de modifications/optimisations possibles en fonction de vos besoins (ces indications ne vous dispensent pas de cliquer sur le bouton Help des lignes qui vous posent problème):
Loadable module support Enable loadable module support -> Y (un noyau modulaire, c'est mieux)General setup processor type=pentium (à règler en fontion de votre proc)Floppy, IDE, and other block devices Include IDE/ATAPI TAPE support -> N (sauf si vous avez un Ditto?... je crois)Network device support (désactiver les cartes/types de cartes inutiles) Pocket and portable adaptors -> N (même sur le portable car je n'ai pas une des cartes listées)ISDN subsystem ISDN support -> N (si on n'est pas en numérique)CD-ROM drivers (not for SCSI or IDE/ATAPI drives) Support non-SCSI/IDE/ATAPI CDROM drives -> NCharacter devices (désactiver ce qui est inutile) Stallion multiport serial support -> N (par exemple; rarement utilisé)Sound Sound card support -> N (pas de carte son) Remarques (portable):
Ensuite, vous pouvez éventuellement éditer /usr/src/linux/Makefile pour modifier la ligne EXTRAVERSION de votre noyau (en -?perso par exemple): ainsi ce ne sera plus le noyau 2.0.36-3 mais le 2.0.36-4perso par exemple. Après ces opérations préparatoires, il faut lancer un make dep (pour gérer les dépendances entre modules) puis un make clean (pour nettoyer un peu). Ensuite vient la compilation du noyau par make boot (make bzImage pour les noyaux 2.2.x car ils sont trop gros et la commande classique finit sur une erreur) puis celle des modules par make modules. Avant d'installer ces derniers, il vaut mieux conserver les anciens. Si votre noyau est le 2.0.36, ils se trouvent dans le répertoire /lib/modules/2.0.36, qu'il suffit de renommer. Ensuite, on peut lancer make modules_install qui recréera un répertoire 2.0.36 avec les nouveaux modules. Si vous avez pris la peine de modifier le Makefile, l'installation se fera automatiquement dans un nouveau répertoire. Le nouveau noyau se trouve en /usr/src/linux/arch/i386/boot et s'appelle zImage ou bzImage. L'ancien se trouve en /boot et s'appelle vmlinuz (généralement). Pour des raisons de sécurité, il vaut mieux conserver l'ancien (sous vmlinuz.old) avant de copier le nouveau dans /boot sous vmlinuz. Vous pourrez également copier le nouveau fichier System.map de /usr/src/linux vers /boot. Après cela, il faudra modifier le fichier /etc/lilo.conf qui défini les conditions du boot, puis lancer lilo après cette modification. Le fichier a la structure suivante: boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 image=/boot/vmlinuz label=linux root=/dev/hda1 read-only On rajoutera les lignes suivantes pour notre cas (ou pour ajouter de nouveaux noyaux): image=/boot/vmlinuz.old label=old root=/dev/hda1 read-only Ne pas oublier de lancer la commande lilo. Ainsi au boot, en tapant old vous pourrez démarrer sur votre ancien noyau qui fonctionnait parfaitement dans le cas où le nouveau serait défectueux. Remarque: le BIOS du portable ne permet pas que toute la mémoire soit reconnue si vous avez plus de 64 Mo. Dans ce cas, vous devrez ajouter une ligne append="mem=xxM" dans lilo.conf. 2.3 PCMCIAAprès avoir fait un noyau tout neuf, il faut également recompiler les modules PCMCIA avant de se servir de notre portable. Version des packages utilisés: 3.1.0. Il faut se placer dans le répertoire /usr/src/linux/pcmcia-cs-x.x.x et commencer par la commande make config. Il faudra alors répondre aux questions posées: le répertoire source de Linux est /usr/src/linux et le répertoire d'install peut être / si on veut installer au bon endroit immédiatement ou /tmp (ou tout autre) si on veut faire des vérifications avant installation. Toutes les autres options proposées par défaut sont bonnes. Il suffit alors de faire make all puis make install pour les modules PCMCIA soient recompilés et installés. Le répertoire des modules /lib/modules/2.0.36 devrait alors contenir un sous-répertoire pcmcia. Pour de plus amples informations, consultez le PCMCIA-HOWTO. 2.4 LanguePar défaut, suivant la version de la RedHat que vous avez, il se peut que vous ayez des problèmes avec l'affichage des caractères accentués. Pour résoudre ce problème, il suffit de créer un fichier /etc/sysconfig/i18n qui sera lu lors du démarrage. Il doit contenir: LANG=fr LINGUAS=fr SYSFONT=lat1-16 SYSTERM=linux-lat Il sera éventuellement nécessaire d'exécuter la commande setfont lat1-16 pour que la console soit mise à jour. Pour résoudre d'autres problèmes, vous pouvez consulter le French-HOWTO. 2.5 SonCe n'est pas vraiment une utilisation serveur mais ça peut être agréable. Avant tout, il faut avoir pensé à activer le son dans le noyau avant de le recompiler. Il faut également choisir la bonne carte son et la compiler (plutôt sous forme de module mais vous pouvez aussi l'inclure au noyau). La carte du portable n'est pas détectée par Linux. Il s'agit d'une Crystal audio controller CS-4236. Vous pouvez lancer sndconfig pour tout installer. Au préalable, j'ai dû aller faire un tour sous Hublows pour savoir ce qu'elle avait comme paramètres (IBM ne donne pas beaucoup de doc avec ce portable) et je les ai reportés sous Linux: io=0x530 irq=5 dma=1,0 mpu_base=0x330 mpu_irq=15. A la fin, sndconfig m'a parfaitement joué le son exemple et tout a fonctionné... mais seulement jusqu'au reboot suivant. En effet, après un redémarrage, le son fonctionne en saccadé et Linux rapporte un conflit d'IRQ. J'ai fait pleins d'autres essais, en vain. Je suis en panne. Voici néanmoins les modifications apportées pour activer la carte son. Tout d'abord, le fichier /etc/conf.modules qui se verra rajouter les lignes suivantes: alias sound cs4232 alias midi opl3 options opl3 io=0x388 options cs4232 io=0x530 irq=5 dma=1,0 mpu_base=0x330 mpu_irq=15 Mais également le fichier /etc/sysconfig/soundcard: CARDTYPE=CS4232 2.6 Système RAIDPour raccourcir les délais de remise en oeuvre du système en cas de crash d'un disque dur, il a été créé un miroir (système RAID 1) avec un deuxième disque IDE. Nous avons donc:
Le fait de mettre le miroir sur un contrôleur différent est d'autant mieux pour la sécurité: en effet, même si le contrôleur lache, le miroir peut prendre le relai. Ce disque miroir sera partitionné exactement de la même manière que le premier (sauf le swap qui n'a pas besoin d'être dupliqué). Il faut ensuite créer le fichier /etc/raidtab. Une entrée de ce type devra alors être créée pour chaque partition à mettre en miroir: raiddev /dev/md0 raid-level 1 nr-raid-disks 2 nr-spare-disks 0 chunk-size 4 persistent-superblock 1 device /dev/hda5 raiddisk 0 device /dev/hdc5 raiddisk 1 Il faut ensuite exécuter mkraid /dev/md0. 3. SERVICES INTRANET3.1 DNS (bind 8.2.2)Le DNS est un des points les plus important de l'administration d'un réseau. Pour de plus amples explications, se référer au NET-3-HOWTO, au DNS-HOWTO et aux livres TCP/IP Administration de réseau ou DNS et Bind (aux Editions O'Reilly). Les fichiers qui nous intéressent sont /etc/host.conf, /etc/resolv.conf, /etc/hosts, /etc/nsswitch.conf, /etc/named.conf, ainsi que ceux du répertoire /var/named. host.conf doit contenir: order hosts,bind multi on Cela signifie que la recherche d'un hôte se fait d'abord par le fichier hosts puis par le service bind (DNS). resolv.conf contient le nom de domaine, les domaines de recherche éventuels et les adresses de DNS. Il doit donc avoir un contenu du type: domain olympe search olympe nameserver 55.134.16.33 hosts doit contenir au minimum: 127.0.0.1 localhost 55.134.16.33 zeus nsswitch.conf doit contenir une ligne du type (avec éventuellement quelques infos supplémentaires): hosts: files dns named.conf (ex named.boot de bind version 4) contient: options { directory "/var/named"; }; zone "." { type master; file "root.db"; }; zone "0.0.127.in-addr.arpa" { type master; file "local.127.0.0"; }; zone "olympe" { type master; file "olympe"; }; zone "134.55.in-addr.arpa" { type master; file "olympe.55.134"; }; La zone cache (".") a été modifiée: comme il n'y a pas de serveurs DNS racines, il faut que celui de notre intranet le soit (d'où le type master à la place du type hints). Les zones après 0.0.127.in-addr.arpa ont été rajoutées au fichier d'origine et concernent les fichiers de noms pour certains domaines (dont le nôtre). La ligne file de chaque paragraphe contient le nom des fichiers de références dans /var/named. root.db (le cache) contient normalement les DNS racines importants d'Internet (si on est connecté). Dans le cas d'une connection permanente à ce réseau, il faudra régulièrement le mettre à jour. Pour l'instant, il a été remplacé par le fichier suivant afin de faire de notre serveur un serveur racine: ; Default TTL $TTL 1d @ IN SOA zeus.olympe. root.zeus.olympe. ( 1999102800 ; Serial 3h ; Refresh 1h ; Retry 7d ; Expire 1d ) ; Negative cache TTL IN NS zeus.olympe. zeus.olympe. IN A 55.134.16.33 localhost. IN A 127.0.0.1 0.0.127.in-addr.arpa. IN NS zeus.olympe. olympe. IN NS zeus.olympe. 134.55.in-addr.arpa. IN NS zeus.olympe. En fait, il contient les règles pour résoudre chaque domaine ou sous-domaine de notre intranet. La ligne serial contient un numéro de série (du type AAAAMMJJxx) permettant d'identifier les versions du fichier de nom. Les autres lignes sont des intervalles de temps pour certaines opérations du serveur et pour la validité des données. Vous pouvez utiliser les valeurs ci-dessus qui sont raisonnables. local.127.0.0 est celui qui intéresse le serveur (c'est un cache local). Il doit être légèrement modifié: $TTL 1d @ IN SOA localhost. root.localhost. ( 1999102800 3h 1h 7d 1d ) NS localhost. 1 PTR localhost. olympe est celui qui intéresse notre domaine pour les accès distants. Il permet d'avoir une correspondance entre nom et adresse IP. C'est lui qui permettra à tout poste client utilisant ce DNS, de savoir où se connecter lorsqu'il demandera www.olympe par exemple. Il n'est pas indispensable d'avoir une correspondance facile pour toutes les machines mais uniquement pour celles qui sont accédées à distance; les autres peuvent être génériques. Il est à créer dans /var/named. $TTL 1d @ IN SOA zeus.olympe. root.zeus.olympe. ( 1999102800 3h 1h 7d 1d ) A zeus.olympe. NS zeus.olympe. MX 10 zeus.olympe. zeus A 55.134.16.33 mail CNAME zeus ftp CNAME zeus www CNAME zeus intranet CNAME zeus news CNAME zeus hera A 55.134.16.34 ares A 55.134.16.61 router A 55.134.16.9 pass1 A 55.134.16.13 pass2 A 55.134.16.14 S001279A CNAME pass1 S001281A CNAME pass2 16-0 A 55.134.16.0 16-1 A 55.134.16.1 ... olympe.55.134 est celui qui permet au serveur d'identifier l'origine de votre machine: il contient la correspondance entre adresse IP et nom. Il est associé à la zone 134.55.in-addr.arpa (pour les adresses du type 55.134.*) de named.conf. C'est un fichier indispensable pour le bon fonctionnement d'un DNS et qui doit contenir la correspondance pour toutes les machines du réseau. Dans le cas d'un gros réseau (nous avons 450 postes), il vaut mieux mettre en tête les machines remarquables (serveurs, routeurs, etc.) et ensuite donner un nom générique à toutes les autres machines. L'essentiel est qu'il existe une correspondance entre adresse et nom. $TTL 1d @ IN SOA zeus.olympe. root.zeus.olympe. ( 1999102800 3h 1h 7d 1d ) NS zeus.olympe. MX 10 zeus.olympe. 9.16 PTR router.olympe. 13.16 PTR pass1.olympe. 14.16 PTR pass2.olympe. 33.16 PTR zeus.olympe. 34.16 PTR hera.olympe. 61.16 PTR ares.olympe. 0.16 PTR 16-0.olympe. 1.16 PTR 16-1.olympe. ... Tout allait pour le mieux dans le meilleur des intranet, lorsqu'un système de messagerie commercial (appelons le Hades; ce sera aussi son nom de domaine) fut ajouté sur notre réseau. Le problème était le suivant: Hades arrivait un peu tard et n'offrait qu'un nombre limité de boîtes aux lettres (problème de licences) et il n'était donc pas question de balayer Olympe. Il fallait donc assimiler le nouveau domaine (faire entrer Hades dans l'Olympe ;-)) au niveau DNS afin de pouvoir envoyer du courrier de manière transparente depuis Olympe vers Hades, le rapatriement dans l'autre sens étant assuré par Fetchmail. Pour le DNS, cela a été fait en ajoutant ces quelques lignes dans le fichier root.db de notre DNS racine: hades. IN NS dns1.hades. dns1.hades. IN A 55.37.146.2 dns1.hades est le DNS racine du domaine hades. Toute résolution concernant ce domaine sera donc transmise vers lui et de là, vers ses serveurs secondaires. Après modification de named.conf ou d'un des fichiers de paramétrage named, il faut penser à redémarrer le service de nom par la commande ndc restart ou bien, si les modifications portent sur le contenu des fichiers /var/named/* par ndc reload. Remarques:
3.2 HTTP (apache 1.3.9)Apache est le serveur Web. Ses fichiers de configuration sont situés dans /etc/httpd/conf: les anciens fichiers access.conf et srm.conf ont été inclus dans httpd.conf qui est désormais le fichier unique de configuration. Il faudra y remplacer systématiquement les pointeurs vers /home/httpd/html par /httpd/html qui est situé, dans notre cas, sur une partition à part et qui est donc plus sécurisé. Mais il y a bien d'autres choses configurables qui enrichissent les possibilités du serveur:
Chaque fois que des modifications sont effectuées, il faut penser à redémarrer le service par la commande /etc/rc.d/init.d/httpd restart. Pour de plus amples renseignements, se reporter à la documentation HTML qui se trouve dans le répertoire /home/httpd/html. Remarques:
3.3 FTP (wu-ftpd 2.6.0)Le FTP est un service général. Chaque utilisateur va pointer sur son répertoire de base (dans /home) et pouvoir ainsi y accéder à distance. L'accès anonyme permet à n'importe qui d'accéder au répertoire FTP prédéfini du serveur. Il s'agit du répertoire de base de l'utilisateur ftp. Ce répertoire de base devrait être /ftpd (car sur une partition à part, contrairement à /home/ftp). Le fichier de paramétrage est /etc/ftpaccess. Par rapport au fichier livré par défaut, il a été modifié: # création d'une seule classe d'utilisateur class all real,guest,anonymous * # pas de message avec les nom/version du daemon greeting brief email root@zeus.olympe # limitation à 10 utilisateurs simultanés limit all 10 Any /etc/ftp/max.msg # interdiction de retirer le fichier passwd noretrieve /etc/passwd # 3 essais max loginfails 3 # gestion des upload upload /ftpd * no upload /ftpd /pub/incoming yes root ftp 0311 nodirs # affichage auto du fichier README au login et au changement de rép. readme README* login readme README* cwd=* # messages de bienvenue, de changement de répertoire, de shutdown banner /etc/ftp/intro.msg message /etc/ftp/welcome.msg login message .message cwd=* shutdown /etc/ftp/shutmsg # utilisation des commandes compress yes all tar yes all chmod no guest,anonymous delete no guest,anonymous overwrite no guest,anonymous rename no guest,anonymous # journaux log transfers anonymous,real inbound,outbound # mode de vérification passwd-check rfc822 warn Pour que tout fonctionne, il ne faut pas oublier que le chemin qui mène aux fichiers messages est indiqué par rapport à la racine pour les utilisateurs standards et par rapport au répertoire de base /ftpd pour anonymous. Ainsi ces fichiers doivent se trouver dans /etc/ftp ainsi que /ftpd/etc/ftp. Par ailleurs, le répertoire /pub/incoming (pour la réception de fichiers) a les droits 3733 (écriture possible mais pas lecture). Pour plus de renseignements, voir la rubrique man ftpaccess. 3.4 IRC (ircd 2.9.32)Ce service de dialogue en direct n'est pas livré d'origine avec la RedHat, néanmoins le package ircd permet de l'installer. Le seul fichier à manipuler est le fichier /etc/ircd.conf. Pour avoir un service simple, il suffit de commenter (par #) la totalité des lignes de paramètres et juste mettre en place les suivants: # Machine utilisée et description ou nom M:zeus.olympe::Deus ex machina # Administrateur (affiché sur requête /admin lorsqu'on est connecté) A:Astérix Legaulois:root@olympe:Administrateur expérimental...;-) # Port réservé aux connections (paramétrage minimal) P::::6667 # Classes d'utilisateurs Y:1:90:0:20:100000 Y:2:90:300:1:600000 Y:10:90:0:3:100000 # Authorisations de connection (pas de limitation chez nous) I:*::*::1 I:*@*::*@*::1 Pour lancer le daemon IRC, il suffit de lancer le script /etc/rc.d/init.d/ircd start. Pour de plus amples explications, se référer au fichier de configuration largement commenté ainsi qu'à la documentation (/usr/doc/ircd-xxx/INSTALL). 3.5 News (inn 2.2)Les fichiers de configuration (très nombreux) se trouvent, sauf mention contraire, dans /etc/news. Le fichier inn.conf servira à identifier notre serveur, à remplir certains champs des articles et à filtrer les imports/exports: domain: olympe fromhost: news.olympe pathhost: news.olympe organization: Deus ex machina server: news.olympe Le fichier hosts.nntp contient la liste des serveurs qui vont se connecter à nous (les jokers sont interdits, donc chaque machine ou adresse doit être détaillée): localhost: 55.70.211.97: Le fichier nnrp.access contient la liste des machines ou adresses autorisées à se connecter au serveur (les jokers sont autorisés): *:: -no- : -no- :!* localhost:Read Post:::* 55.134.*:Read Post:::* Tout le monde est interdit d'accès par défaut. Le serveur lui-même et toutes les adresses du type 55.134... (notre domaine) sont autorisés. Le fichier /var/lib/news/active contient la liste des newsgroups avec leur paramétrage: control 0000000000 0000000001 y junk 0000000000 0000000001 y test 0000000000 0000000001 y to 0000000000 0000000001 y Il vaut mieux ne pas y toucher manuellement mais utiliser la commande ctlinnd pour ajouter ou supprimer des groupes:
Le fichier /var/lib/news/newsgroups contient les descriptions des newsgroups. Celui-ci peut être modifié manuellement. Certains clients news utilisent ses données et il faut donc le remplir. Dans le cas d'un serveur intranet isolé, ces commandes et ces paramétrages peuvent suffire. Par contre, dans le cas où votre serveur de news cohabite avec d'autres, il pourra être intéressant de "feeder" les news. Ce point sera vu dans une version ultérieure de ce document. 3.6 Mail (sendmail 8.9.3)Plutôt que de m'attaquer au fichier sendmail.cf, réputé le plus ardu de tous les fichiers de config sous Linux, je me suis contenté de la configuration par scripts m4 (plus classique). Elle se fait dans le répertoire /usr/lib/sendmail-cf/cf. Le fichier qui nous intéresse est le fichier redhat.mc: divert(-1) include(`../m4/cf.m4') define(`confDEF_USER_ID',``8:12'') OSTYPE(`linux') undefine(`UUCP_RELAY') undefine(`BITNET_RELAY') define(`confAUTO_REBUILD') define(`confTO_CONNECT', `1m') define(`confTRY_NULL_MX_LIST',true) define(`confDONT_PROBE_INTERFACES',true) define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail') FEATURE(`smrsh',`/usr/sbin/smrsh') FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable') FEATURE(redirect) FEATURE(always_add_domain) FEATURE(use_cw_file) FEATURE(local_procmail) MAILER(procmail) MAILER(smtp) dnl HACK(check_mail3,`hash -a@JUNK /etc/mail/deny') dnl HACK(use_ip,`/etc/mail/ip_allow') dnl HACK(use_names,`/etc/mail/name_allow') dnl HACK(use_relayto,`/etc/mail/relay_allow') dnl HACK(check_rcpt4) dnl HACK(check_relay3) FEATURE(`access_db') FEATURE(`blacklist_recipients') dnl FEATURE(`relay_based_on_MX') Le fichier de base convient parfaitement au niveau sécurité, en particulier avec cette nouvelle version 8.9 où les contrôles ont été améliorés et simplifiés. Pour cette raison les hacks ont été supprimés (les lignes commençant par dnl sont en fait des commentaires). Si vous faites néanmoins des modifications, le fichier de configuration peut être généré par m4 redhat.mc > /etc/sendmail.cf. Attention: pensez à garder une copie du précédent fichier pour le cas où plus rien ne fonctionnerait. Dans le cas de notre intranet, il faudra faire un petit complément en créant un fichier /etc/mail/relay-domains qui contiendra juste olympe. Ainsi, tous les postes de notre domaine seront autorisés à utiliser ce serveur pour relayer leur courrier vers des domaines externes (en l'occurence hades). Un fichier très simple à manipuler est /etc/aliases. Il contient un alias suivi du ou des noms des boîtes aux lettres/utilisateurs réels: artistes: davinci, magritte, renoir leonardo.davinci: davinci Ce fichier fait qu'en écrivant à l'alias artistes, le courrier est envoyé dans les boîtes davinci, magritte et renoir. En écrivant à leonardo.davinci, on écrit en fait à l'utilisateur davinci. Après avoir modifié ce fichier, il faut penser à exécuter la commande newaliases qui permet à SendMail de prendre en compte les changements effectués. Remarque: sendmail utilise beaucoup le DNS, en particulier pour les controles de spam/relay, et si vous avez des rejets étranges, controlez le serveur de noms. Une fois encore, le DNS est un des services les plus importants et c'est un de ceux que vous aurez intérêt à vraiment soigner. 3.7 Gestion de comptes mail (fetchmail 5.0.0)C'est un complément indispensable à sendmail si vous avez des comptes de courrier externes et que vous souhaitez les rapatrier en local. Dans notre cas, le DNS a été paramètré pour fonctionner avec le domaine de messagerie hades. Il faudra donc récupérer le courrier des boîtes aux lettres de ce domaine pour le placer dans les boîtes aux lettres locales. Pour cela, il faudra créer un fichier /root/.fetchmailrc avec les droits -rw------- (0600) puis simplement exécuter fetchmail. Voici, le fichier de config simple utilisé pour l'intranet: # Exécution en mode daemon, récupération toutes les 15 min. set daemon 900 # Fichier log set logfile /var/log/fetchmail.log # Appel du serveur mail.hades en pop3 # Transfert de la boîte direction sur hades vers la boîte direction locale # ... poll mail.hades protocol pop3: user direction password "AzXrTy2c" is direction user compta password "12345678" is compta user personnel password "Zn7hL9ik" is grh; Remarques:
3.8 Liaisons netbios (smbmount et samba 2.0.5a)En dehors de l'utilisation de samba proprement dite, vous pouvez utiliser smbmount depuis le serveur. Cet utilitaire vous permettra de monter un répertoire partagé Windows distant sur votre système de fichier. Ainsi, en faisant par exemple smbmount //ws_hublots98/data /mnt/smbfs, puis en indiquant le mot de passe éventuel, vous aurez le répertoire partagé sous data sur votre micro ws_hublots98 accessible dans le point de montage /mnt/smbfs. Le micro ws_hublots98 doit être dans le fichier hosts ou bien connu du DNS. Le mot de passe peut être donné sur la ligne de commande par l'option -U user%password. Pour fermer le point de montage smbfs, il suffit de faire un umount /mnt/smbfs. Néanmoins, si celui-ci est récalcitrant, exécutez d'abord la commande fuser -km /mnt/smbfs. Pour samba, le fichier qui nous intéresse est /etc/smb.conf. #=== Paramètres généraux === [global] # la machine dans le workgroup BANDE, avec commentaire "Serveur Samba" workgroup = BANDE server string = Serveur Samba # un fichier log par origine avec limite de taille log file = /var/log/samba/log.%m max log size = 50 # sécurité de partage (faible) security = share socket options = TCP_NODELAY #=== Partages === # Le répertoire /windows est une partition à part [echanges] comment = Repertoire de partage path = /windows read only = no public = yes Avec le fichier ci-dessus vous simulez le fonctionnement d'un workgroup Windows9x: un seul répertoire partagé en accès complet sous echanges. Comme sous 9x, il n'y a aucune véritable sécurisation dans ce cas: n'importe qui peut y écrire n'importe quoi. 3.9 Indexation/recherche Web (htdig 3.1.3)
3.10 Partage d'agendas (webcalendar 1.11)Sur un intranet, le partage d'agenda est une fonctionnalité qui a son utilité. Sous Linux il existe plusieurs logiciels qui permettent de le faire. J'ai finalement choisi webcalendar car il est très petit, très simple à installer, à paramètrer et à utiliser, et il est en français. Pour l'installer, il suffit de lancer le script install.sh qui pose quelques questions. Les valeurs par défaut sont correctes sauf le point suivant qui doit être modifié pour notre serveur: Document Root for WebCal cgi's sera /httpd/cgi-bin. Il faudra aussi vérifier le fichier /etc/httpd/conf/access.conf et modifier la section suivante le cas échéant: <Directory /httpd/cgi-bin> AllowOverride AuthConfig Options ExecCGI </Directory> Ensuite, pour le paramétrage, rendez-vous dans le fichier /httpd/cgi-bin/webcal.conf: # # Variables fixées lors de l'installation # $HT_HOME = "/home/httpd/cgi-bin"; $DOC_ROOT = "cgi-bin"; $DB_DIR = "/var/webcal"; $VERSION = "1.11"; # Homepage supprimée car nous sommes hors internet #$HOMEPAGE="http://bulldog.tzo.org/webcal/webcal.html"; $SHARED_SUBROUTINES = "$HT_HOME/webcal_shared.pl"; $HTPASSWD = "$DB_DIR/.htpasswd"; $START_HEADER = "Web Calendar"; $SERVER = $ENV{'HTTP_HOST'}; if (($ENV{'HTTPS'}) && ($ENV{'HTTPS'} eq "on")) { $HTTP = "https://"; } else { $HTTP = "http://"; } $ENV{'PATH'} = "/bin:/usr/bin"; if ($0 =~ /webcal\.cgi/) { $IMAGE_DIR = "../icons"; } else { $IMAGE_DIR = "../../icons"; } # # PARAMETRAGES # # On passe en français $LANG="french"; # On fait commencer la semaine par le lundi (Monday) $WEEK_START="M"; # La journée de travail va de 7 h à 19 h $START_HOUR = "0700"; $END_HOUR = "1900"; # Format 24 heures $HOURS_FORMAT = 24; # Afficher les heures sur la vue mensuelle/hebdo $SHOW_HOURS_ON_MONTH = 1; # Afficher toutes les heures sur la vue quotidienne $SHOW_EMPTY_HOURS = 1; # Fond avec image $BGIMAGE="$IMAGE_DIR/green.png"; # Couleur des liens $LINK_COLOR="blue"; # Couleur du texte $FONT_COLOR="black"; # Couleur des jours de la semaine $WEEKEND_COLOR="darkblue"; $WEEKDAY_COLOR="darkred"; # Couleur du jour et du mois courant $CURRENT_DAY_COLOR="#E0E080"; $CURRENT_MONTH_COLOR="#E0E080"; # Couleur des cases vides $NOT_A_DAY_COLOR="lightgrey"; # Logo affiché au dessus des agendas #$LOGO1 = "$IMAGE_DIR/powered.jpg"; # Logo affiché en bas de page d'accueil #$LOGO2 = "$IMAGE_DIR/assim.jpg"; # Nombre d'entrées affichées par jour sur la vue mensuelle $NUM_ITEMS = "3"; # Longueur d'info affichée sur la vue mensuelle $ITEM_LENGTH = "20"; # ------------------------- # language include files # ------------------------- # [...] fin du fichier inchangée 1; Par ailleurs, pour éviter que les utilisateurs ne créent plein d'agendas, j'ai dupliqué le script principal (webcal.cgi) et j'en ai fait une version allégée qui ne permet que la consultation des agendas existants.
|
|
|
|
Index | News | Amiga | BeOS | Linux | Liens (c)1999-2000, Lignes Alternatives |