Mise en place du système LRP
Une distribution Linux orienté réseau sur une disquette

Présentation

       Le but de ce projet est de faire tenir sur une disquette de 1.44 MO la totalité d’une distribution Linux orientée réseau. Ce projet a donc été réaalisé avec succés par des organismes chargés du développement de Linux, ainsi il existe des sites internet qui mettent  à disposition des copies de leurs distributions. Dans notre cas, on s’intéressera à la distribution LRP 2.9.6 qui copie l’organisation générale d’une distribution Debian. Des paquetages compacts associés aux principaux services et pilotes réseau complète à la demande une base réduite aux commandes essentielles. Ce système (LRP) réside uniquement en mémoire vive et donc pour faire tourner un routeur, serveur, firewall, il ne suffit d’avoir qu’un simple PC obsolète n’ayant qu’un lecteur de disquette, pas de disque dur et peu de mémoire vive, d’où un bon moyen pour ne pas dépenser l’argent inutilement.

Mise en place de LRP

      La première chose à faire est la recherche du site permettant de télécharger la distribution souhaitée. Le site officiel : www.linuxrouter.org étant inacessible, certainement en maintenance, je me suis connecté à un site mirroir se trouvant à l’adresse : http://ftp.incas.de/pub/mirror/linuxrouter.org/
Une fois arrivé sur le site, on télécharge les utilitaires permettant de préparer la disquette dans « utils ».
On télécharge :
· mkdosfs –vgg-0.3c.tar.gz
qui permet le formattage de la disquette 
· syslinux-1.48.tar.gz
qui est le chargeur permettant de booter à partir de la disquette
· 2.0.36pre15-1.tar.gz
qui est le noyau de cette distribution.

Ensuite, on les décompresse à l’aide de la fonction tar :
  tar –xvzf  mkdosfs –vgg-0.3c.tar.gz
  tar –xvzf  syslinux_1.48.tar.gz
  tar –xvzf  2.0.36pre15-1.tar.gz
on télécharge ensuite, tous les éléments de base : syslinux.dpy, syslinux.cfg, root.lrp, etc.lrp, local.lrp, modules.lrp.

Formattage :
    On utilise l’utilitaire mkdosfs pour formatter la disquette :
     mkdosfs –cv /dev/fd0 –n lr

Amorçage :
     L’amorcage se fait grâce à l’utilitaire syslinux :
     syslinux-1.48/syslinux  /dev/fd0

Copie des composants LRP: 
 On doit donc copier le noyau ainsi que les élément de base de la distribution sur la disquette.
 On renomme le noyau :
     mv 2.0.36pre15-1/2.0.36pre15-1-LRP-zImage  linux
 On monte la disquette :
     mount  -t msdos /dev/fd0 /mnt/floppy
 On copie les fichier que l’on a téléchargé auparavant :
  cp syslinux.cfg syslinux.dpy /mnt/floppy
  cp linux /mnt/floppy
  cp root.lrp etc.lrp log.lrp local.lrp modules.lrp  /mnt/floppy
 On effectue ensuite le premier essai en  « rebootant »la machine :
     shutdown –r now

 La machine reboot bien sur la disquette , et l’on obtient l’écran suivant :
 



 


Linux Router project
Embedding the bird for the sake of all humanity


 



Suivie du login:

Login :root

     On accède donc au menu principal lrcfg dans lequel on peut configurer le routeur à notre façon et en quittant : q , on accède au même système de fichier que sous une distribution normale mais avec beaucoup moins de fichiers. Toute cette arborescence de fichier est en fait contenu dans la mémoire vive à ce moment là .

Installation des pilotes:

     Sachant que le but de ce projet étant de réaliser une passerelle, il faut maintenant que le système reconnaisse les deux cartes réseaux que l’on utilise pour faire la passerelle. Pour cela, on doit charger les modules servant de pilotes pour les cartes réseau.

     On revient donc sur la machine nous servant de développement, on va dans le noyau téléchargé car il contient toute une série de modules, on fait :
  cd 2.0.36pre15-1
  cd /modules/net
On met la disquette dans le lecteur, on la monte :
  mount –t msdos /dev/d0 /mnt/floppy
On charge les modules utiles selon la marque et le modèle de nos cartes réseau :
  cp 3c59x.o  3c5x9.o 8390.o ne.o /mnt/floppy
On démonte la disquette :
     umount /mnt/floppy
Enfin, on reboot la machine :
     shutdown –r now
On se retrouve donc au menu de configuration, on quitte ce menu : q
On monte la disquette :
     mount -t msdos /dev/fd0 /mnt
  cp /mnt/3c509.o /lib/modules 
  cp /mnt/3c59x.o /lib/modules
  cp /mnt/8390.o /lib/modules
  cp /mnt/ne.o /lib/modules
On démonte la disquette:
  umount  /mnt
On revient dans le menu de configuration
     lrcfg
Dans ce menu, on va dans :
  1) Package setting
  2) Modules
  3) Modules kernel to load at boot
Dans ce fichier, on décommente les lignes à partir de 3c5x9
Il faut ensuite enregistrer ces modifications afin qu’elles soit prise en compte lors du redémarrage de la machine. On fait :
  CTRL –S
  CTRL –J
  CTRL –K
A ce stade la modification du fichier est prise en compte mais pas encore au niveau de la disquette et donc lors du redémarrage.
On revient au menu du début , on fait :
  Q
  Q
A ce niveau on entredans le menu :
  b) Backup 
puis 
  5) Modules 
pour que les modifications effectuées au niveau des modules soit prises en compte.
On peut maintenant « rebooter » la machine :
  Q
  shutdown –r now
Maintenant que les modules des cartes réseau sont installés, les cartes réseau sont automatiquement reconnues :
 On fait :
     lsmod
et l’on obtient une réponse de la forme :
  Module  Pages  Used by
  3c509     2      2
  8390      2      0
qui montre bien que les cartes réseau sont reconnues par le système.

Configuration réseau:

     Il nous maintenant configurer la disquette afin qu’elle puisse faire office de passerelle, pour cela il faut configurer les deux cartes réseau avec les adresses adéquates.
    On utilise pour cela la commande ifconfig de la manière suivante :

  ifconfig  eth0 192.9.101.254 up
 et
  ifconfig eth1 10.1.13.1 up

    Par contre, contrairement à la configuration de la passerelle sur un PC (cf chapitre 1), la configuration de la table de routage n’est pas automatique et c’est à nous d’installer les routes necessaires.
    Il nous faut donc automatiser ce réseau , pour cela on édite le fichier /etc /network.conf, on va dans le menu de configuration, on fait :
     lrcfg
On va dans le menu :
     1)Network setting
  2)Network Configuration (auto)
et l’on change les lignes suivantes:

# Default setting
............
CONFIG_HOSTNAME=YES
CONFIG_HOSTFILE=YES
............

# Interfaces
IF0_IFNAME=eth0
IF0_IPADDR=192.9.101.254
IF0_NETMASK=255.255.255.0
IF0_BROADCAST=192.9.101.255
IF0_IF_SPOOF=YES

IF1_IFNAME=eth1 
IF1_IPADDR=10.1.13.1
IF1_NETMASK=255.255.0.0
IF1_BROADCAST=10.1.255.255
IF1_IF_SPOOF=YES 

.............

# Networks
NET0_NETADDR=192.9.101.0
NET0_NETMASK=$IF0_NETMASK
NET0_GATEWAY_IF=default
NET0_GATEWAY_IP=default
NET0_IPMASQ=YES
NET0_IP_MASQ_IF=default 

NET1_NETADDR=10.1.0.0
NET1_NETMASK=$IF1_NETMASK
NET1_GATEWAY_IF=default
NET1_GATEWAY_IP=default
NET1_IPMASQ=YES
NET1_IP_MASQ_IF=default
 

     Il faut maintenant activer l’ip_forwarding afin que les pacquets ip transittent à travers la passerelle. Pour cela on peut l’activer par le biais de la commande :
echo 1 > /proc/sys/net/ipv4/ip-forward
que l’on peut rajouter dans un sccript de démarrage ou alors on peut activer l’option dans un des scripts du menu de configuration. On fait :
  lrcfg
  1) Network settings
  2) Network configuration

Et l’on active l’ip_forwarding en mettant:

 # Default setting
........
IPFWDING_KERNEL=YES
IPFWDING_FW=YES
........

L’ip_forwarding est ainsi activé, si on fait:

cat /proc/sys/net/ipv4/ip-forward

on obtient: 1

    On remarque que la table de routage n’est pas encore complètement configurée et qu’il manque des routes et notamment celle qui permet d’avoir l’accés à internet via le proxy. Il faut donc rajouter ces routes que l’on place dans un script de démarrage comme Lrp.conf. On fait donc :
 lrcfg
 3) System setting
 Master LRP settings (Lrp.conf)

Et dans ce fichier, on rajoute les lignes suivantes:

route add –net 192.168.10.4 netmask 255.255.255.255 gw 10.1.12.2 dev eth1
route add –net 192.9.101.254 netmask 255.255.255.255 dev eth0
route add –net 10.1.13.1 netmask 255.255.255.255 dev eth1
route add –net 0.0.0.0 netmask 0.0.0.0 gw 10.1.12.2 dev eth1

   il nous faut maintenant enregistrer ces changements afins que ceux ci soient pris en compte lors du rebootage de la machine. On fait :
 b)  back up ramdisk
 2) etc
et enfin on reboot:
  shutdown –r now

   Maintenant, la passerelle est correctement configurer et l’on peut refaire les test effectués lors du chapitre 2 pour voir son bon fonctionnement. Il faut donc mainenant installer sur cette passerelle un firewall filtrant comme on  a pu voir au chapitre précedent.

Mise en place du firewall

    La distribution LRP que l’on a téléchargé est basée sur un noyeau de Linux de type 2.0.36 et donc un noyeau assez ancien, or dans le chapitre précédent on avait un noyeau plus récent 2.2.15 qui intégrait un outils de firewall appelé ipchains. Ce noyeau ne contient pas cet outil mais a un outils similaire qui s’appelle ipfwadm. 
 Nous allons donc utiliser cet outil pour configurer le même outil que précédement.

     Les règles de ipfwadm s’applique au démarrage de la machine et rest gravé dans le système si on enregistre le script correspondant dans un fichier de démarrage. On fait donc :

  lrcfg
  1) Network setting
  2) Network configuration (direct)

    Et l’on enregistre le script souhaité dans ce fichier.
On enregistre le script suivant :

 # CONFIGURATION DU FIREWALL

 # Initialisation

 # Adresse du proxy
 IPPROX= « 192.168.10.4 »
 # Adresses du réseau
 ADNET= « 192.9.101.0/24 »
 # Toutes les adresses ip
 ANY= « 0.0.0.0/0 »

 #On supprime toutes les règles
 ipfwadm –I –f
 ipfwadm –O –f
 ipfwadm –F –f

 # Les règles de la chaine d’entrée
 # On rejète tout ce qui veut entrer
 ipfwadm –I –p reject
 # On accepte les entrées à partir du proxy
 ipfwadm –I –a accept –D $IPPROX
 # On accepte les entrées http
 ipfwadm –I –a accept –P tcp –S $ANY 80
 ipfwadm –I –a accept –P tcp –D $ANY 80
 #On accepte les entrées telnet
 ipfwadm –I –a accept –P tcp –S $ANY 23 –D $ADNET
 ipfwadm –I –a accept –P tcp –D $ADNET –S $ANY 23
 #On accepte les entrées smtp
 ipfwadm –I –a accept –P tcp –S $ANY 25 –D $ADNET
 ipfwadm –I –a accept –P tcp –D $ADNET –S $ANY 25
 #On accepte les entrées pop2 et pop3
 ipfwadm –I –a accept –P tcp –S $ANY 109:110 –D $ADNET
 ipfwadm –I –a accept –P tcp –D $ADNET –S $ANY 109:110
 #On accepte les entrées pour le protocole icmp
 ipfwadm –I –a accept –P icmp –S $ANY –D $ADNET
 ipfwadm –I –a accept –P icmp –D $ADNET –S $ANY 

 # Les règles de la chaine de sortie
 # On rejète tout ce qui veut entrer
 ipfwadm –O –p reject
 # On accepte les sorties à partir du proxy
 ipfwadm –O –a accept –S $IPPROX
 # On accepte les sorties http
 ipfwadm –O –a accept –P tcp –S $ANY 80
 ipfwadm –O –a accept –P tcp –D $ANY 80
 #On accepte les sorties telnet
 ipfwadm –O –a accept –P tcp –S $ADNET –D $ANY 23
 ipfwadm –O –a accept –P tcp –S $ANY 23 –D $ADNET
 #On accepte les sorties smtp
 ipfwadm –O –a accept –P tcp –S $ADNET –D $ANY 25
 ipfwadm –O –a accept –P tcp –S $ANY 25 –D $ADNET
 #On accepte les sorties pop2 et pop3
 ipfwadm –O –a accept –P tcp –S $ADNET –D $ANY 109:110
 ipfwadm –O –a accept –P tcp –S $ANY 109:110 –D $ADNET 
 #On accepte les sorties pour le protocole icmp
 ipfwadm –O –a accept –P icmp –S $ADNET –D $ANY 
 ipfwadm –O –a accept –P icmp –S $ANY –D $ADNET

 # Les règles de la chaine de transmission
 # On rejète tout ce qui veut transiter
 ipfwadm –F –p deny
 # On accepte la transmission vers l’adresse du proxy
 ipfwadm –F –a accept –S $IPPROX
 ipfwadm –F –a accept –D $IPPROX
 # On accepte la transmission à l’intérieur du réseau
 ipfwadm –F –a accept –S $ADNET
 ipfwadm –F –a accept –D $ADNET
 # On active l’ masquerading, l’adresse ip de l’expéditeur 
 # est masquée
 ipfwadm –F –a masq –S $ADNET
 ipfwadm –F –a masq –D $ADNET
 #On rejète toutes les autres sortes de transmission
 ipfwadm –F –a reject
 

     On enregistre maintenant ce firewall sur la disquette comme on a vu précedement et l’on reboot la machine. 
 
 

Mise en place de LRP sur une machine ne comprenant pas de coprocesseur

     Pour les besoin du projet, nous avons fait l’acquisition d’une machine assez vétuste ne comprenant pas de coprocesseur. Ainsi, sur une telle machine l’installation précédente ne fonctionnait pas et le système répondait :

  no coprocessor found

     En fait, pour faire fonctionner la distribution LRP sur une machine sans coprocessseur il faut lui intégrer un noyeau différent :
    Je lui intègre le noyau FPU. Je garde les mêmes composants que j’ai utilisé pour la configuration précédente en lui remplaçant le noyau original par le noyau FPU :
 On fait :

  mv 2.0.36pre15-1-LRP.FPU-zImage linux
  cp linux /mnt/floppy

 ainsi que le chargeur permettant de démarrer à partir de la disquette :

    syslinux-1.48/syslinux /dev/fd0

    On installe la disquette dans la nouvelle machine et l’on vérifie que cette disquette fonctionne bien à l’aide des ping et des telnet.

Configuration des cartes réseau

    Il arrive parfois, sous linux, que les cartes réseau ne soient pas bien configurées ou alors qu’ elles prennent des IRQ identiques, ce qui fait que le système ne peut pas fonctionner. Pour éviter cela, il existe des des programmes permettant deconfigurer ces cartes. Ces programmes se trouvent sur internet. Cependant, on ne peut configurer ces carte qu’à partir de Windows.
   La solution est la suivante :

   On utilise tout d’abord une disquette permettant la création d’un disque virtuel sous windows 98 qui n’est en fait présent que sur la mémoire vive du système. Celle ci nous permet d’avoir l’accés au DOS, on obtient l’écran suivant :

  1) Demarrer avec prise en charge du CD-Rom
  2) Demarrer sans prise en charge du CD-Rom
  3) Afficher fichier d’aide

   On choisit :
      2)
   Une fois arrivé dans les commandes DOS, on met une autre disquette contenant les drivers des cartes réseau 3c509b que l’on a téléchargé sur internet à l’adresse :
http://Support.3com.com/infodeli/tools/nic/3c509/3c509b.1.htm
   On fait dir /w   ( on voit ce qui se trouve sur la disquette )
   Puis on fait : 3c5x9cfg pour démarrer le programme de configuration des cartes.
   On choisit maintenant la carte que l’on veut configurer :
     Install
  Configure NIC ... F4
    Pour celle ci, on peut changer l’IRQ ( on met 10), l’adresse (on met 300h ), le tranceiver type (qui permet de diresi on est connecté en RJ45 ou en Coaxial) on met On board TP ( RJ45 ) car on n’utilise pas de BNC, et enfin on active le full Duplex (Enable) permettant au packet IP de transiter dans un sens ou dans l’autre.
     Ok
On choisit ensuite la deuxième carte réseau que l’on configure comme on veut.
     Quit
  Exit...F3

Les cartes réseau sont ainsi configurer comme on le souhaite et peuvent être utilisées pour notre passerelle.
 

Les tests

    Il faut ensuite effectuer toutes une série de tests afin de véifier si la passerelle ainsi configurée, on utilise de la même façon qu’au chapitre 2 des outils comme ping ou telnet
pour s’assurer du bon fonctionement de la passerelle que ce soit avec ou sans coprocesseur. On fait donc : 
depuis notre réseau : 
   ping  192.9.101.7
   ping 10.1.12.2 
   telnet 192.9.101.7 
   telnet 101.12.2
et l’on teste ensuite la connexion internet (http) ainsi que le système de transfert de fichier (ftp) à l’aide de Netscape à partir d’un poste client. 
et depuis le réseau de l’hopital : 
   ping 192.9.101.7 
   telnet 192.9.101.7
    Et l’on essaie de transférer un fichier appartenant au réseau de la radiologie à l’aide de ftp, cela ne doit pas fonctionner en principe.
    Au cas où tous les tests précédents sont passés avec succés, on peut en conclure que cette passerelle/firewall fonctionne bien. 

 

Suite