Il y a beaucoup de choses qui peuvent mal se passer en utilisant un document comme celui-ci, car il existe plein de cas spéciaux. La majorité des problèmes viennent de la configuration des périphériques réseaux interne et externe. J'essaierai de répondre à ceux qui rencontrent des problèmes, en essayant de voir ce qui ne va pas et en ajoutant des liens ici pour que les personnes avec des problèmes liés à des cas spéciaux puissent trouver de l'aide. Vous pouvez me joindre sans problème à l'adresse suivante pramsey@refractions.net.
Reportez vous tout simplement au HOWTO IP Masquerade.
Bien, tout d'abord félicitations pour aller à contre-courant ! Deuxièmement, Nelson Gibbs (ngibbs@pacbell.net) a envoyé de bonnes nouvelles, car la plupart de ces instructions fonctionneront pour vous. Il y a des changements importants à noter cependant :
Une spécification de passerelle GATEWAY=xxx.xxx.xxx.xxx dans /etc/sysconfig/network-scripts/ifcfg-eth0 et eth1 pour les interfaces (l'interface locale utilise l'adresse IP distante et l'interface distante utilise l'adresse IP de la passerelle du FAI) ;
Vérifiez que le script /etc/sysconfig/daemons/dhcpd positionne la variable ROUTE_DEVICE à eth1 et non eth0 ;
Le fichier /etc/dhcpd.conf requiert un paramètre de sous-réseau pour chaque interface (Je ne suis pas trop sûr du pourquoi et du comment lorsque j ai fait mon deuxième test : subnet 213.102.154.201 netmask 255.255.255.255 { } sans aucune autre option le dhcp écoutait et envoyait aussi bien sur eth0 que eth1). Le serveur DHCP renvoie des erreurs si un seul des 2 sous-réseaux est listé ;
n'ajoutez pas de route vers 255.255.255.255, le script /etc/rc.d/init.d/dhcpd fourni par Caldera fixe déjà le problème. Changez chaque référence de eth0 à eth1 dans ce script.
C'est du gâteau ! En revanche, vous aurez besoin d'une adresse IP statique pour que la liste de recommandations suivantes fonctionne. Si vous avez une adresse IP dynamique, vous devrez rajouter des scripts pour vous assurer que l'adresse IP soit mise à jour dans les commandes de transfert de port quand l'adresse change.
Gardez à l'esprit que transférer un port externe vers une machine interne rend votre machine interne 'moins' interne qu'avant, heureusement ceci peut être fait de manière totalement transparente et sans réelle dégradation de performance. Un des effets de bord de l'implémentation du masquage d'IP dans le noyau Linux est la possibilité de faire des choses plutôt géniales avec les paquets quand il passe à travers la couche réseau, et l'utilitaire ipmasqadm est construit de manière à en tirer avantage.
Pour certaines raisons ipmasqadm n'est pas fourni avec toutes les dérivées de Red Hat ou de Mandrake, donc vous aurez probablement à le télécharger sur le site du mainteneur -- il existe aussi un paquetage RPM de disponible ainsi que le code source.
Une fois que vous avez le paquetage Red Hat, installez-le, et ajoutez les lignes suivantes à votre fichier /etc/rc.d/rc.local :
/usr/sbin/ipmasqadm portfw -f /usr/sbin/ipmasqadm portfw -a -P tcp -L x.x.x.x 80 -R 192.168.1.x 80 |
La première commande efface les règles de transfert de port, la seconde ajoute un transfert du port 80 externe vers le port 80 du machine en interne. Notez que l'adresse IP statique tient dans l'espace d'adresse x.x.x.x et l'adresse IP interne dans l'espace 192.168.1.x.
À partir de là, les requêtes externes vers le port 80 seront envoyées de manière transparente au port 80 de la machine interne. Notez que vous ne pourrez tester à l'aide de telnet ou en vous connectant au port 80 de la passerelle d'une machine interne : le transfert de port honore seulement les requêtes en provenance de l'interface externe.