Si vous avez des suggestions utiles à la FAQ à faire, veuillez envoyez SVP un email en anglais à [email protected]. Veuillez clairement rédiger la question et ca réponse (si vous l'avez). Merci !
Si votre distribution Linux ne n'est pas fourni directement avec IP MASQ, ne vous inquiétez pas. Tout ce que vous avez à faire est de recompiler le noyau comme expliqué précédement dans ce HOWTO
NB : Si vous pouvez nous aider à remplir ce tableau, envoyez SVP un email à [email protected] ou à [email protected].
Un 486/66 avec 16MO de RAM été bien plus que suffisant pour remplir les 1.54Mb/s d'une connexion T1 à 100% ! MASQ a aussi déjà bien tourné sur des 386SX-16 avec 8MO de RAM. Vous devez cependant noter que Linux IP Masquerade commence à faire des dechets avec plus de 500 entrées MASQ.
La seule application que je connaisse qui puisse temporairement casser Linux IP Masquerade est GameSpy. Pourquoi ? Quand il actualise ses listes, il crée des dizaines de milliers de connexions rapides pendant une TRES courte période. Jusqu'au timeout de ces sessions, les tables de MASQ sont pleines ("FULL"). Reportez vous à la section No-Free-Ports pour de plus amples détails.
Pendant qu'on y est :
Il y a une limite the 4096 connexions concurrentes chacune pour TCP & UDP. Cette limite peut être changée en bidouillant les valeurs de /usr/src/linux/net/ipv4/ip_masq.h, une limite supérieure de 32 000 devrait être OK. Si vous voulez changer cette limite, vous devez changer les valeurs de PORT_MASQ_BEGIN & PORT_MASQ_END pour avoir une taille correctemment dimensionnée au dessus de 32K et en dessous de 64K.
Comment avez vous mis le fichier rc.firewall sur votre machine ? L'avez vous copié-collé dans une fenêtre de TELNET, ou envoyé par FTP à partir d'une machine Windows/DOS etc. ? Essayez ça ... logguez vous sur la machine Linux et lancer "vim -b /etc/rc.d/rc.firewall" et regarder si vos lignes finissent pas ^M. Si oui, effacer les ^M et essayer de nouveau.
Il y a deux manières de s'inscrire aux deux mailing lists de Linux IP Masquerading. La première façon est d'envoyer un email à [email protected]. Pour s'inscrire à la mailing list de Linux IP Masquerading Developers, envoyez un email à [email protected]. Reportez vous SVP à la boulette si dessous pour plus de détails.
Une fois que le serveur reçoit votre requête, il va vous abonner à la liste que vous avez demandé et vous fournir un MOT DE PASSE. Sauvegardez ce mot de passe parce que vous en aurez besoin plus tard, pour terminer votre abonnement ou changer vos options
La seconde méthode et d'utiliser un browser WWW et de vous inscrire via le formulaire qui se trouve à l'URL http://www.indyramp.com/masq-list/ pour la liste principale MASQ ou http://www.indyramp.com/masq-dev-list/ pour la liste MASQ-DEV.
Une fois abonné, vous recevrez des emails de la liste à laquelle vous vous êtes abonné. Notez aussi que les utilisateurs abonnés et NON-abonnés peuvent acceder aux archives des deux listes. Pour ce faire, veuillez SVP vous reporter aux URLs WWW si dessus pour plus de détails.
Enfin, veuillez noter que vous pouvez envoyer des emails à la liste MASQ uniquement à partir de votre compte/adresse avec lesquels vous vous êtes abonné.
Si vous avez des problèmes avec les mailing lists, ou l'archive de la mailing liste, veuillez contacter SVP Robert Novak.
Proxy: les serveurs Proxy sont disponibles pour : Win95, NT, Linux, Solaris, etc. Avantages: + (1) seule adresse IP; pas cher + Peu optionnellement utiliser une cache pour de meilleurs performances (WWW, etc.) Inconvénients: - Toutes les applications derrière un serveur proxy doivent être COMPATIBLES avec les services proxy (SOCKS) et être CONFIGURES pour utiliser le serveur Proxy - Fout en l'air les compteurs WWW et les stastiques WWW Un serveur proxy utilise seulement (1) une adresse IP publique, comme IP MASQ, et se comporte comme un traducteur vers les clients du LAN prive (browser WWW, etc.) Ce serveur proxy recoit les requetes tels que TELNET, FTP, WWW, etc. du reseau prive sur une interface. Il va ensuite initialiser ces requetes comme si c'etait quelqu'un sur la machine elle-meme qui les faisait. Une fois que le serveur distant sur Internet renvoie les informations demandées, il va retraduire les adresses TCP/IP vers les machines internes et envoyer le traffic vers la machine interne qui avait fait la demande. C'est la raison pour laquelle il est appelé serveur PROXY. NB : TOUTE application que vous pourriez vouloir utiliser sur les machines internes *DOIT* avoir la compatibilité avec les serveurs proxy, comme Netscape et quelques applications parmi les meilleurs clients TELNET et FTP. Tout client qui n'est pas compatible avec les serveurs proxy ne fonctionnera pas. Une autre chose bien a propos des serveurs proxy est que quelques uns d'entre eux peuvent aussi servir à faire du cache (antememoire) (Squid pour WWW). Imaginez alors vous avez 50 machines 'proxies' qui vont charger Nestcape en meme temps. S'ils sont que installés avec la page de garde par defaut, vous allez avoir 50 copies de la Netscape qui vont arriver a travers le WAN pour chaque ordinateur. Avec un proxy a meme page Web antememoire, seule une copie serait telechargee par le serveur proxy et ensuites les machines proxies recevraient la page à partir de l'antememoire. Cela va non seulement economiser de la bande passante sur la connexion Internet, mais en plus ca va etre BEAUCOUP BEAUCOUP plus rapide pour les machines internes proxies. MASQ: IP Masq est disponible sur Linux et quelques routeurs ISDN tels que ou le Zytel Prestige128, Cisco 770, les routeurs ISDN NetGear, etc. 1:Many NAT Avantages: + (1) seule adresse IP; pas cher + N'a pas besoin de compatibilite speciale des applications + Utilise un firewall logiciel donc votre reseau peu devenir plus sur Inconvénients: - Requiert une machine Linux ou un routeur ISDN special (meme si d'autres produits pourraient l'avoir...) - Le traffic entrant ne peut acceder au LAN interne sans que le LAN interne soit initiateur du traffic ou qu'il y ait un logiciel specifique pour le port forwarding d'installe. Beaucoup de serveurs NAT NE PEUVENT PAS fournir cette fonctionnalité - Des protocoles speciaux doivent etre traites de maniere speciale par les redirecteurs de firewall, etc. Linux est completement compatible avec ceux-ci (FTP, IRC, etc.) mais beaucoup de routeurs NE le SONT PAS (NetGear DOES). Masq ou 1:Many NAT est similaire a un serveur proxy parce que le serveur va faire une translation d'adresse IP et faire croire au serveur distant (par exemple le serveur WWW) que c'est le serveur MASQ qui a fait la requete et non la machine interne. Une difference majeure entre un serveur MASQ et un serveur PROXY est que les serveurs MASQ n'ont pas du tout besoin de changement de configuration des machines clientes. Il suffit de les configurer pour qu'elles utilisent la machine linux en tant que leur passerelle par defaut et tout fonctionne correctement. Vous AUREZ besoin d'installer des modules linux speciaux pour faire fonctionner des trucs genre RealAudio, FTP, etc. ! De plus, de nombreuses personnes utilisent IP MASQ pour le TELNET? FTP, etc. *ET* mettent en place un serveur proxy avec cache sur la meme machine Linux pour le traffic WWW afin d'obtenir de meilleurs performances. NAT: des serveurs NAT sont disponibles sur Windows 95/NT, Linux, Solaris, et quelques un des meilleurs routeurs ISDN (pas chez Ascend) Avantages: + Tres configurables + Pas de logiciel special requis Inconvénients: - Necessite un sous-reseau de votre FAI (cher) Translation d'Adresse Reseau est le nom d'une boite qui aurait un groupe d'adresses IP valides qu'il peut utiliser sur l'interface Internet. Quand sur le reseau interne, une machine veut acceder a Internet, il associe une des adresses IP VALIDES disponibles de son interface Internet a l'adresse IP PRIVEE qui a fait la demande. Ensuite, tout le traffic est retranscrit de l'adresse IP public du NAT vers son adresse IP privee. Lorsque l'adresse NAT PUBLIQUE devient inactif pour une certaine periode predeterminee, l'adresse IP PUBLIQUE est rangee de nouveau dans le groupe d'adresses NAT publiques Le principal probleme de NAT est que, une fois que toutes les adresses IP publiques disponibles sont utilisees, tout utilisateur prive qui demande un service Internet doit attendre qu'une adresse publique NAT se libere.Pour une description très bien faite et très complète des différentes formes de NAT, veuillez SVP vous reporter à :
Voici un autre bon site pour apprendre des choses sur NAT, bien que beaucoup d'URLs sont anciennes, elles sont toujours valables :
Voici un très bon URL pour apprendre des choses sur les autres solutions NAT pour Linux mais aussi pour les autres plateformes :
Oui ! Ils ont différentes interfaces, complexités, etc. mais ils sont très bien bienque la plupart soit exclusivement pour l'outil IPFWADM. Voici une courte liste des outils disponibles, dans l'ordre alphabétique. Si vous en connaissez d'autres ou vous savez lesquels sont bien/mauvais/immondes, envoyez SVP un email à David
Oui, ça fonctionne, avec les IP dynamique, assignée par votre FAI via un serveur PPP ou DHCP/BOOTp. Bien sur les IP statiques fonctionnent aussi. Toutefois, si vous voulez implémenter un jeu de règle IPFWADM/IPCHAINS 'strong' ou utiliser un port forwarder, votre jeu de règles devra être réexecuté à chaque fois que votre IP change. Reportez vous SVP au debut de la section TrinityOS - Section 10 pour plus d'aide sur les jeux de règles 'strong' du firewall et les adressses IP dynamiques.
OUI, tant que Linux est compatible avec l'interface réseau, ça devrait fonctionner. Si vous recevez une adresse IP dynamique, reportez vous SVP à l'URL de la partie "IP Masquerade fonctionne-t-il avec des adresses IP alouées dynamiquement" dans l'article de la FAQ si dessus.
Bien sûr ! IP Masquerading est totalement transparent pour Diald ou PPP. La seule chose qui pourrait poser problème est l'utilisation d'un jeu de règle 'strong' avec un adresse IP dynamique. Reportez vous à l'article de la FAQ " IP Masquerade fonctionne-t-il avec des adresses IP alouées dynamiquement" ci-dessus pour de plus amples détails.
C'est difficile de garder une liste de toutes les "applications qui fonctionnent". Cependant, la plupart des applications Internet classiques sont compatibles (les browser WWW (Netscape, MSIE, etc. FTP (tels que WS_FTP), TELNET, SSH, RealAudio, POP3 (email entrant - Pine, Eudora, Outlook), SMTP (email sortant), etc.) Une liste assez complète de clients compatibles MASQ peut être trouvé à la section Clients de ce HOWTO.
Les applications impliquant des protocoles plus compliqués ou des méthodes de connexion spéciales telles que la video conferencing ont besoin d'outils d'aide spéciaux.
Pour de plus amples détails, veuillez vous reporter SVP à la page Linux IP masquerading Applications
Peu importe quelle distribution Linux vous utilisez, les procédures pour configurer IP Masquerade mentionnées dans ce HOWTO devraient fonctionner. Quelques distributions peuvent avoir une interface graphique ou des fichiers de configurations speciaux qui peuvent rendre la configuration plus simple. Nous faisons le mieux que nous pouvons pour écrire ce HOWTO dans le cas le plus général possible.
Par défaut, IP Masq, règles ses timers pour les sessions TCP, TCP FIN, et les traffics UDP à 15 minutes. Il est recommandé d'utiliser les réglages suivant (comme indiqué précédemment dans ce HOWTO au niveau du jeu de règles /etc/rc.d/rc.firewall ) pour la plupart des utilisateurs :
Linux 2.0.x avec IPFWADM:
#timeouts de MASQ # # timeout de 2heures pour les sessions TCP # timeout de 10secondes pour le traffic avoir reçu le paquet TCP/IP "FIN" # timeout de 60secondes pour le traffic UDP (les utilisateurs d'ICQ MASQ'ués # doivent activé un timeout firewall de 30 secondes dans ICQ lui-même) # /sbin/ipfwadm -M -s 7200 10 60
Linux 2.2.x avec IPCHAINS:
#timeouts de MASQ # # timeout de 2heures pour les sessions TCP # timeout de 10secondes pour le traffic avoir reçu le paquet TCP/IP "FIN" # timeout de 60secondes pour le traffic UDP (les utilisateurs d'ICQ MASQ'ués # doivent activé un timeout firewall de 30 secondes dans ICQ lui-même) # /ipchains -M -S 7200 10 60
La raison est que vous avez une IP dynamique et que quand vous vous connectez à Internet, IP Masquerade ne connait pas votre IP. Il y a une solution à ce problème. Dans votre jeu de règles /etc/rc.d/rc.firewall, ajoutez ceci :
# Utilisateur d'IP dynamique : # # Si vous recevez votre IP dynamiquement par SLIP, PPP ou DHCP, activez cette option # Ceci permet le hacking des IP dynamiques dans IP MASQ, rendant la vie # avec Diald et les programmes similaires plus simple. # echo "1" > /proc/sys/net/ipv4/ip_dynaddr
Il y a deux raisons possibles à ce problème. La première est très COURANTE, et la seconde est très RARE
Quelques utilisateurs pointent du doigt le fait que IPMASQ pourrait avoir des problèmes avec les paquets qui ont un le bit DF ou "Don't Fragment" activé. En gros, quand une machine Linux se connecte à Internet avec un MTU inférieur à 1500, certains paquets vont avoir le flag DF activé. Bienque changer le MTU 1500 sur le serveur linux va sembler résoudre le problème, le bug probable va toujours être là. On croit qu'il se passe la chose suivante : le code MASQ ne réécrit pas correctement les paquets de retour ICMP avec le code ICMP 3 Sub 4 à l'ordinateur MASQué qui est à l'origine du flux. En raison de cela, les paquets sont éliminés.
D'autres utilisateurs pointent du doigt les administrateurs des sites distants qui posent problème (typiquement les sites utilisant le SSL, etc.) et disent qu'en raison du filtrage de TOUTES LES FORMES de messages ICMP (dont les Type4 - Fragmentation Needed) en cause de la paranoia de la sécurité, ils fracturent les aspects fondamentaux du protocole TCP/IP.
Les deux arguments ont des aspects valides et les partisans des deux camps continuent à débattre sur ce sujet chaque jour. Si vous êtes un programmeur réseau et que vous pensez pouvoir soit résoudre ce problème soit deviner son origine... ESSAYEZ SVP ! Pour de plus amples détails reportez vous à la liste suivante MTU Thread from the Linux-Kernel.
Pas d'inquiétudes toutefois. Une manière efficace à 100% de résoudre le problème est de changer le MTU de votre liaison Internet à 1500. Maintenant quelques utilisateurs vont grogner contre ceci parce que ca peut nuire à la latence de quelques programmes spécifiques tels que TELNET ou les jeux mais son impact n'est que très faible. D'un autre côté, la plupart des connexions HTTP et FTP vont s'ACCELERER !
[ -- Si vous avez une connexion PPPoE pour votre DSL/Cablemodem ou si vous décidez de ne pas changer votre MTU à 1500, regardez si dessous pour une autre solution. -- ]
Pour réparer ca, regardez d'abord le MTU de votre connexion Internet. Pour ce faire, lancer /bin/ifconfig". Maintenant regardez les lignes correspondants à votre connexion Internet et chercher le MTU. Il FAUT le fixer à 1500. Généralement, les connexions Ethernet vont l'avoir par défaut mais les lignes série PPP vont avoir par défaut 576.
Pour les utilisateurs de PPPoE (qui a un MTU maximal de 1490) ou pour ceux qui décident de ne pas utiliser un MTU de 1500, tout n'est pas perdu. Si vous reconfigurez TOUTES les machines MASQuées de façon à ce qu'elles utilisent le MEME MTU que celui de votre connexion externe à Internet, tout devrait fonctionner correctement. A noter cependant que certains FAI par PPPoE peuvent exiger un MTU de 1460 pour une connectivité correcte.
Comment vous pouvez faire cela ? Suivez ces quelques étapes pour votre système d'exploitation.
L'exemple suivant montre la configuration d'un MTU de 1490 pour une connexion PPPoE utilisée par certains utilisateurs de DSL ou de Cablemodems. Il est recommandé d'utiliser les valeurs les PLUS HAUTES possibles pour toutes les connexions dont le débit est supérieur ou égal à 128kb/s.
La seule raison d'utiliser un MTU plus petit est la latence au depend du débit. Reportez vous SVP à :
http://www.ecst.csuchico.edu/~dranch/PPP/ppp-performance.html#mtu
pour de plus amples détails sur ce sujet.
*** Si vous avez REUSSI, ECHOUE, ou que vous avez la procédure à suivre pour d'autres systèmes d'exploitations, *** envoyer SVP une email à DAVID Ranch. Merci !
1. Le réglage du MTU peut changer d'une distribution à l'autre. Pour Redhat : Vous avez besoin de modifier les différentes déclarations "ifconfig' dans /sbin/ifup script Pour Slackware : Vous avez besoin de modifier les différentes déclarations "ifconfig' dans /etc/rc.d/rc1.inet 2. Voici un bon exemple qui marche avec toutes les distributions, modifiez le fichier /etc/rc.d/rc.local et mettez ceci à la FIN du fichier : echo "Changement du MTU de l'interface ETH0" /sbin/ifconfig eth0 mtu 1490 Remplacez "eth0" par le nom de l'interface de votre machine qui est connectée à Internet. 3. Pour les options avancées telles que "TCP Receive Windows", des exemples détaillés sur la manière de modifier les scripts de réseau sur les différentes distributions Linux, etc. reportez vous SVP au Chapitre 16 de http://www.ecst.csuchico.edu/~dranch/LINUX/index-linux.html#trinityos
1. TOUT changement dans la base de registre est risquée mais avec une copie de sauvegarde, vous devriez être en sécurité. Continuez en CONNAISSANCE DE CAUSE. 2. Allez dans Start-->Run-->RegEdit 3. Vous devriez faire une copie de sauvegarde de votre Base De Registre avant de faire quoi que ça soit. Pour ce faire, copiez les fichiers "user.dat" et "system.dat" du répertoire \WINDOWS et mettez les en lieu sûr. Notez aussi, que la méthode mentionnée précédemment utilisant "Regedit: Registry-->Export Registry File-->Save a copy of your registry" ne fait que de la FUSION de la Base de Registre et NON PAS son remplacement. 4. Cherchez dans chaque clé de la base de registre qui fini par "n" (c-à-d 0007) qui à une entrée appelée "IPAddress" qui a votre adresse IP. Sous cette clé, ajoutez le texte suivant : Tiré de http://support.microsoft.com/support/kb/articles/q158/4/74.asp [Hkey_Local_Machine\System\CurrentControlset\Services\Class\NetTrans\000n] type=DWORD name="MaxMTU" (NE PAS inclure les guillements) value=1490 (Decimal) (NE PAS inclure le texte "(Decimal)") type=DWORD name="MaxMSS" (NE PAS inclure les guillements) value=1450 (Decimal) (NE PAS inclure le texte "(Decimal)") 5. Vous pouvez aussi changer le "TCP Receive Window" qui augmente parfois les performances réseau CONSIDERABLEMENT. Si vous remarquez que votre débit à DIMINUE, REMETTEZ les anciens réglages et redémarrez. [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP] type=DWORD name="DefaultRcvWindow" (NE PAS inclure les guillements) value=32768 (Decimal) (NE PAS inclure le texte "(Decimal)") type=DWORD name="DefaultTTL" (NE PAS inclure les guillements) value=128 (Decimal) (NE PAS inclure le texte "(Decimal)") 6. Rebootez pour que les changements soit pris en compte.
1. TOUT changement dans la base de registre est risquée mais avec une copie de sauvegarde, vous devriez être en sécurité. Continuez en CONNAISSANCE DE CAUSE. 2. Allez dans Start-->Run-->RegEdit 3. Vous devriez faire une copie de sauvegarde de votre Base De Registre avant de faire quoi que ça soit. Pour ce faire, copiez les fichiers "user.dat" et "system.dat" du répertoire \WINDOWS et mettez les en lieu sûr. Notez aussi, que la méthode mentionnée précédemment utilisant "Regedit: Registry-->Export Registry File-->Save a copy of your registry" ne fait que de la FUSION de la Base de Registre et NON PAS son remplacement. 4. Cherchez dans chaque clé de la base de registre qui fini par "n" (c-à-d 0007) qui à une entrée appelée "IPAddress" qui a votre adresse IP. Sous cette clé, ajoutez le texte suivant : Tiré de http://support.microsoft.com/support/kb/articles/q158/4/74.asp [Hkey_Local_Machine\System\CurrentControlset\Services\Class\NetTrans\000n] type=STRING name="MaxMTU" (NE PAS inclure les guillements) value=1490 (Decimal) (NE PAS inclure le texte "(Decimal)") 5. Vous pouvez aussi changer le "TCP Receive Window" qui augmente parfois les performances réseau CONSIDERABLEMENT. Si vous remarquez que votre débit à DIMINUE, REMETTEZ les anciens réglages et redémarrez. [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP] type=DWORD name="DefaultRcvWindow" (NE PAS inclure les guillements) value=32768 (Decimal) (NE PAS inclure le texte "(Decimal)") type=DWORD name="DefaultTTL" (NE PAS inclure les guillements) value=128 (Decimal) (NE PAS inclure le texte "(Decimal)") 6. Rebootez pour que les changements soit pris en compte.
1. TOUT changement dans la base de registre est risquée mais avec une copie de sauvegarde, vous devriez être en sécurité. Continuez en CONNAISSANCE DE CAUSE. 2. Allez dans Start-->Run-->RegEdit 3. Registry-->Export Registry File-->Sauvegardez une copie de votre base de registre dans un endroit sûr 4. Créer les clés suivantes dans les deux Bases de Registre possible. Des entrées multiples correspondent à differentes connexions réseaux tels que PPP, Ethernet NICs, VPNs PPTP, etc. http://support.microsoft.com/support/kb/articles/Q102/9/73.asp?LN=EN-US&SD=gn&FR=0 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Parameters\Tcpip] and [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<Adapter-name>\Parameters\Tcpip] Remplacez "<Adapter-Name>" par le nom du lien de l'interface de votre LAN connectée à Internet type=DWORD name="MTU" (NE PAS inclure les guillements) value=1490 (Decimal) (NE PAS inclure le texte "(Decimal)") (NE PAS inclure les guillements) *** Si vous savez aussi comment changer MSS, la taille de la fenêtre TCP, et les *** parametres TTL dans NT 4.x, envoyez SVP un email à [email protected] parce que *** j'adorerais les ajouter à ce HOWTO. 5. Rebootez pour que les changements soit pris en compte.
1. TOUT changement dans la base de registre est risquée mais avec une copie de sauvegarde, vous devriez être en sécurité. Continuez en CONNAISSANCE DE CAUSE. 2. Allez dans Start-->Run-->RegEdit 3. Registry-->Export Registry File-->Sauvegardez une copie de votre base de registre dans un endroit sûr 4. Naviguez jusqu'à la clé : [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<ID for Adapter> Chaque ID Adapter à une clé par default pour le DNS, l'adresse TCP/IP, la passerelle par defaut, le masque de sous réseau, etc. Trouvez la clé qui correspond à votre carte réseau. 5. Créez l'entrée suivante : type=DWORD name="MTU" (NE PAS inclure les guillements) value=1490 (Decimal) (NE PAS inclure le texte "(Decimal)") http://support.microsoft.com/support/kb/articles/Q120/6/42.asp?LN=EN-US&SD=gn&FR=0 *** Si vous savez aussi comment changer MSS, la taille de la fenêtre TCP, et les *** parametres TTL dans NT 4.x, envoyez SVP un email à [email protected] parce que *** j'adorerais les ajouter à ce HOWTO. 5. Rebootez pour que les changements soit pris en compte.
Comme déclaré si dessus, si vous savez comment effectuer ces changement pour d'autres OS tels que OS/2, MacOS, etc. envoyez SVP un email David Ranch pour qu'ils puissent être inclus dans ce HOWTO.
Vérifiez si le module "ip_masq_ftp" est chargé. Pour ce faire, logguez vous sur le serveur MASQ et tapez la commande "/sbin/lsmod". Si vous ne voyez pas "ip_masq_ftp" chargé, verifiez que vous avez bien suivi les recommandations du /etc/rc.d/rc.firewall BASIQUE que vous trouverez à la section firewall-examples . Si vous implémentez votre propre jeu de règles, faites en sorte d'inclure la plupart des exemples de ce HOWTO ou vous aurez encore de nombreux problèmes.
Il peut y avoir deux raisons à cela :
Vérifiez que vous avez les bons réglages Ethernet pour la VITESSE et le DUPLEX.
Si vous avez une ligne DSL ou par Cablemodem, ce comportement est malheureusement très commun. Ce qui se passe c'est que votre FAI met votre connexion dans une file de priorité très faible pour mieux servir les connexions qui ne sont pas inactives. Le problème est que la connexion de quelques utilisateurs finaux va effectivement être COUPEE jusqu'à ce que le traffic de la connexion de l'utilisateur reveille le matériel du FAI.
Qu'est-ce que je recommande de faire ? Faites un ping vers votre passerelle par défaut toutes les 30 secondes. Pour se faire, modifiez le fichier /etc/rc.d/rc.local et ajoutez la ligne suivante à la fin du fichier :
ping -i 30 100.200.212.121 > /dev/null &
Remplacez 100.200.212.121 par votre routeur par défaut (routeur en amont).
Il y a sans doute deux choses que vous allez couramment voir :
Tiré du document : TrinityOS - Section 10 :
Dans le jeu de règles si dessous, chaque ligne avec soit un DENY soit un REJECT contient aussi un "-o" pour LOGguer ces hits firewall dans le fichier de messages SYSLOG qui se trouve dans : Redhat: /var/log Slackware: /var/adm Si vous regardez l'un de ces logs de firewall, vous devriez voir quelquechose du type : --------------------------------------------------------------------- IPFWADM: Feb 23 07:37:01 Roadrunner kernel: IP fw-in rej eth0 TCP 12.75.147.174:1633 100.200.0.212:23 L=44 S=0x00 I=54054 F=0x0040 T=254 IPCHAINS: Packet log: input DENY eth0 PROTO=17 12.75.147.174:1633 100.200.0.212:23 L=44 S=0x00 I=54054 F=0x0040 T=254 --------------------------------------------------------------------- Il y a BEAUCOUP d'informations dans une seule ligne. Regardons cet exemple, reportez vous au hit sur le firewall en lisant ceci. Veuillez noter que cet exemple est pour IPFWADM mais il est DIRECTEMENT lisible pour les utilisateurs d'IPCHAINS. -------------- - Ce "hit" firewall est arrivé a ce moment : "Feb 23 07:37:01" - Ce hit etait sur l'ordinateur "RoadRunner". - Ce hit etait sur le protocole "IP" ou TCP/IP - Ce hit est entre dans le firewall ("fw-in") * D'autres log peuvent dirent "fw-out" pour sortant or "fw-fwd" pour FORWARD - Ce hit etait encore "rejETE". * D'autres logs peuvent dire "deny" ou "accept" - Ce his etait sur l'interface "eth0" (liaison Internet) - Ce hit etait un paquet "TCP" - Ce hit est venu de l'adresse IP "12.75.147.174" et du port "1633". - Ce hit etait a destination de "100.200.0.212" et de son port "23" ou TELNET. * Si vous ne savez pas que le port 23 est pour TELNET, regardez votre fichier /etc/services pour voir par quoi les autres ports sont utilises. - Ce paquet avait une longueur de "44" octets - Ce paquet n'avez PAS de "Type of Service" (TOS) fixé --Ne vous inquietez pas si vous ne comprenez pas ca...pas besoin de le savoir * utilisateurs d'ipchains, divisez le par 4 pour avoir le Type of Service - Ce paquet avet le numero "IP ID" "18" --Ne vous inquietez pas si vous ne comprenez pas ca... pas besoin de le savoir - Ce paquet avait un fragment offset de 16bits dont tout flag de paquet TCP/IP de "0x0000" --Ne vous inquietez pas si vous ne comprenez pas ca... pas besoin de le savoir * une valeur qui commence par "0x2..." ou "0x3..." signifie que le bit "More Frangments" etait activé donc de nouveaux paquets fragmentes vont arriver pour completer ce GROS paquet. * une valeur qui commence par "0x4..." ou "0x5..." signifie que le bit "Don't Fragment" est active. * Toute autre valeur est l'offset du Fragment (divise par 8) qui doit etre utilise plus tard pour reconstituer le GROS paquet original. - Ce paquet a un TimeToLive (TTL) de 20. * Chaque saut sur Internet soustrait (1) a ce nombre. Normalement, les paquets sont emis avec un TTL de (255) et si ce nombre atteind (0), ca signifie qu'il est realiste de considerer que ce paquet est perdu et il va donc etre efface.
Oui ! Avec IPPORTFW, vous pouvez permettre TOUT ou seulement une partie des Internautes de contacter TOUTE machine interne MASQuée. Ce sujet est entièrement traité dans la section Forwarders de ce HOWTO.
Une des machines MASQuée interne crée un nombre anormalement grand de paquets destinés à Internet. Comme le serveur IP Masq construit une table MASQ et forward ces paquets vers Internet, la table se remplit rapidement. Une fois que la table est pleine, elle va générer des erreurs.
La seule application que je connaisse qui puisse temporairement casser Linux IP Masquerade est GameSpy. Pourquoi ? Quand il actualise ses listes, il crée des dizaines de milliers de connexions rapides pendant une TRES courte période. Jusqu'au timeout de ces sessions, les tables de MASQ sont pleines ("FULL"). Reportez vous à la section No-Free-Ports pour de plus amples détails.
Donc que pouvez-vous faire contre ça ? Pratiquement, n'utilisez pas de programmes qui générent ce genre de choses. Si vous recevez ce genre d'erreurs dans vos logs, trouvez le et arrêtez de l'utiliser. Si vous aimez vraiment GameSpy, ne faites pas beaucoup de reactualisation de serveurs. De toute façon, une fois que vous arrêtez le programme MASQué, cette erreur MASQ va disparaître puisque ces connexions vont faire des 'timeouts' dans les tables de MASQ.
Si vous recevez le message "ipfwadm: setsockopt failed: Protocol not available", c'est que vous n'êtes pas sous le nouveau noyau. Verifiez que vous l'avez bien installé, relancer votre BootLoader (LILO), et redemarrez.
Reportez vous SVP à la fin de la section Forwarders pour de plus amples détails.
this Microsoft KnowledgeBase article.Le premier moyen de contournement est de configurer IPPORTFW de la section Forwarders et de portforwarder les ports 137, 138 et 139 vers les IP de la machine interne Windows. Bienque cette solution fonctionne, elle ne peut marcher que pour UNE machine interne.
La seconde solution est d'installer et de configurer Samba sur le serveur Linux MASQ. Avec Samba de lancé, vous pouvez mapper vos partages de Fichier et d'Imprimantes Windows sur le serveur Samba. Vous pouvez ensuite monter ces nouveaux partages SMB vers tout vos clients externes. La configuration de Samba est entièrement traitée dans un HOWTO que vous pourrez trouver sur le site du Linux Documentation Project et dans le document TrinityOS.
La troisième solution est de configurer un VPN (virtual private network ou réseau privé virtuel) entre les deux machines Windows ou entre les deux réseaux. Ceci peut être réalisé via PPTP ou via les solutions VPN IPSEC. Il y a un patch PPTP pour linux et aussi un implémentation complète de IPSEC disponibles pour les deux noyaux 2.0.x et 2.2.x. Cette solution est sans doute la plus stable et la plus sécurisée des trois.
Toutes ces solutions de sont PAS traitées dans ce HOWTO. Je vous recommande de regarder la documentation de TrinityOS pour l'aide sur IPSEC et la page PPTP de John Hardin pour de plus amples informations.
Veuillez aussi comprendre SVP que le protocole SMB de Microsoft est TRES peu sûr. C'est pour cela que d'avoir des traffics de partage de fichiers ou d'imprimante, et de domaine windows de Microsoft sur Internet sans encryption est une TRES MAUVAISE idée.
La raison la plus courante est que les serveurs IDENT ou "Identity" de la plupart des distributions Linux ne peuvent pas travailler avec des liens IP Masqueradés. Pas d'inquiétudes toutefois, il existe des IDENTs qui fonctionnent.
L'installatin de ce logiciel sort du cadre de ce HOWTO mais chaque utilitaire a sa propre documentation. Voici quelques un des URLS :
Veuillez noter que certains serveur IRC ne permettront toujours pas des connexions multiples à partir de la même machine (comprendre ici même IP), même s'ils recupèrent les infos Ident et que les utilisateurs sont différents. Vous pouvez vous plaindre à l'administrateur système du serveur distant :-)
Ceci est un problème de configuration de votre version de mIRC. Pour le résoudre, deconnecter mIRC de votre serveur IRC. Maintenant dans mIRC, allez dans File --> Setup et cliquez sur la languette "IRC servers". Verifiez que le port est réglé sur 6667. Si vous avez besoin d'autres ports, reportez vous ci dessous. Ensuite, allez dans File --> Setup --> Local Info et effacer les champs Local Host et IP Address. Maintenant cochez les cases de "LOCAL HOST" et "IP address" (IP address peut être coché et désactivé). Ensuite, dans "Lookup Method", réglez sur "normal". Ca ne marchera PAS si "server" est sélectionné. C'est tout. Essayez de vous connecter au serveur IRC de nouveau.
Si vous avez besoin de ports pour le serveur IRC différents de 6667, (par exemple 6969) vous devez modifier votre fichier /etc/rc.d/rc.firewall là où vous chargez le module MASQ IRC. Modifiez ce fichier et la ligne contenant "modprobe ip_masq_irc" et ajoutez cette ligne : "ports=6667,6969". Vous pouvez ajoutez autant de ports que vous voulez, séparés par des virgules.
Enfin, fermez tous les clients IRC lancé sur les machines MASQuées et redémarrez le module MASQ IRC :
/sbin/rmmod ip_masq_irc /etc/rc.d/rc.firewall
Oui et non. Avec la fonctionnalité "IP Alias" du noyau, les utilisateurs peuvent régler plusieurs interfaces aliasées tels que eth0:1, eth0:2, etc mais il N'est PAS recommandé d'utiliser ces interfaces aliasées pour l'IP Masquerading. Pourquoi ? Fournir un firewall sûr devient très difficile avec une seule carte réseau. En plus, vous allez trouver une quantité anormale d'erreurs sur cette liaison puisque les paquets entrant vont être envoyés presque simultanément vers l'extérieur. A cause de tout celà, et du fait qu'une carte réseau coute moins de 150F, je vous recommande vivement d'en acheter une pour chaque segment de réseau MASQué.
Les utilisateurs devraient aussi comprendre que IP Masquerading ne fonctionne que sur des interfaces physiques telles que eth0, eth1, etc. MASQuer une interface aliasée telles que "eth0:1, eth1:1, etc" NE fonctionnera PAS. En d'autres termes, ce qui suit ne fonctionnera PAS :
Si vous voulez toujours utiliser des interfaces aliasées, vous devez activer la fonction "IP Alias" du noyau. Vous devrez recompiler et redemarrer. Une fois sous le nouveau noyau, vous devez configurer Linux de manière à ce qu'il utilise la nouvelle interface (i.e. /dev/eth0:1, etc.). Ensuite, vous pouvez la considerer comme une interface Ethernet normale avec toutefois quelques restrictions comme celui ci-dessus.
Reportez vous SVP à la section multiple-masqed-lans pour les détails complets.
Ce sujet n'a vraiment rien à voir avec IPMASQ et concerne ce qui touche au façonnage du traffic et de la limitation des taux de Linux. Reportez vous SVP au fichier /usr/src/linux/Documentation/networking/shaper.txt de vos sources locales du noyau pour de plus amples détails.
Vous trouverez aussi plus d'informations sur ce sujet et plusieurs URLs dans la section 2.2.x-Requirements d'IPROUTE2.
Bienque ca n'est pas grand chose à voir avec IPMASQ, voici quelques idées. Si vous connaissez de meilleures solutions, envoyez SVP un email à l'auteur de ce HOWTO pour qu'il puisse l'inclure dedans.
Vous NE POUVEZ PAS. MASQ est un NAT 1:Many (1 vers plusieurs) et n'est pas le bon outil pour faire ca. Vous cherchez une solution NAT Many:Many qui est une installation NAT traditionnelle. Jetez un coup de d'oeil sur l'entrée shaping de la FAQ pour de plus amples détails sur l'outil IPROUTE2 qui fera ce dont vous avez besoin.
Pour les personnes ici qui compte activer plusieurs adresses IP sur une seule interface réseau avec "IP Alias" et ensuite PORTFWer TOUT les ports (0-65535) et utiliser IPROUTE2 pour entretenir les bonnes correspondances des IP source/destination : ça a été réalisé AVEC SUCCES sur les noyaux 2.0.x et avec moins de réussite sur les noyaux 2.2.x. Sans considération du succès, ce n'est pas la bonne façon de faire ça et ce n'est pas une configuraion MASQ compatible. Jetez un coup d'oeil sur IPROUTE2 SVP... c'est la bonne manière de faire du vrai NAT.
Autre chose à noter aussi :
Si vous avez une connexion DSL ou Cablemdem routée (pas PPPoE), les choses se compliquent un peu plus parce que votre installation n'est pas routée. Pas d'inquiétudes cependant, reportez vous au document "Bridge+Firewall, Linux Bridge+Firewall Mini-HOWTO" sur LDP. Vous y apprendrez à faire reconnaitre à votre machine Linux plusieurs adresses IP sur une seule interface !
Il peut y avoir un problème avec le programme "netstat" sur les distribs basées sur Linux 2.0.x. Après le redemarrage de Linux, la commande "netstat -M" fonctionne bien mais apres qu'un ordinateur MASQué lance plusieurs fois des traffics ICMP avec succès, tels que ping, traceroute, etc., vous obtiendrez peut-être quelquechose du style :
masq_info.c: Internal Error `ip_masquerade unknown type'.
La manière de détourner ce problème est de lancer la commande "/sbin/ipfwadm -M -l". Vous remarquerez aussi qu'après les timeouts des entrées masquerade ICMP, "netstat" fonctionne de nouveau.
C'EST possible. Cependant c'est quelque peu hors de la portée de ce document, vous pouvez vous reporter à la page de John Hardin PPTP Masq pour tous les détails.
D'abord, allez ici : Steve Grevemeyer's MASQ Applications page. Si vous ne trouvez pas de solution là-bas, essayer de patcher le noyau Linux avec le patch LooseUDP de Glenn Lamb, qui est traitée dans la section LooseUDP ci-dessus. Vous pouvez aussi regarder la NAT Page de Dan Kegel pour plus d'informations.
Si vous avez les aptitudes technique pour utiliser "tcpdump" et sniffer votre réseau, essayer de trouver quels protocoles et quels numéros de port votre jeu XYZ utilise. Avec ces informations en main, abonnez vous a la IP Masq email list et envoyer vos résultats pour obtenir de l'aide.
Je parie que vous utilisez IPAUTOFW et/ou vous l'avez compilé dans le noyau hein ?? C'est un problème reconnu de IPAUTOFW. Il est recommandé de NE PAS configurer IPAUTOFW dans le noyau Linux et d'utiliser IPPORTFW à la place. Ceci est traité en detail dans la section Forwarders .
Bienque ceci ne soit pas un problème dû au Masquerading, beaucoup de personnes l'ont mentionné.
SMTP: Le problème est que vous utilisez probablement votre machine linux comme un serveur de relais SMTP et vous recevez l'erreur suivante :
"error from mail server: we do not relay"
Les versions récentes de Sendmail et d'autres Mail Transfer Agents (MTAs) désactivent le relaying par défaut (c'est une bonne chose). Donc pour résoudre le problème, faites ceci :
POP-3: Certains utilisateurs configurent leur ordinateurs internes MASQués de manière à ce que leurs clients POP-3 se connectent sur un serveur SMTP externe. Bienque que cela soit correct, de nombreux serveurs SMTP vont essayer d'identifier (IDENT) votre connexion sur le port 113. Il est très probable que votre problème vienne du fait que votre politique par défaut pour Masquerade soir DENY (refuse). C'est mal. Changez-le en REJECT (rejette) et relancer votre jeu de règles rc.firewall.
Disons que vous avez l'installation suivant : Vous avez plusieurs réseaux internes et aussi plusieurs adresses IP externes et/ou réseaux. Ce que vous voulez faire c'est que le LAN#1 n'utilise que l'IP externe IP#1 et vous voulez aussi que le LAN#2 utilise l'IP externe IP#2.
LAN interne ----------> IP officielle
LAN #1 IP externe #1 192.168.1.x --> 123.123.123.11
LAN #2 IP externe #2 192.168.2.x --> 123.123.123.12
En gros, ce que nous avons décrit ici est un routage, PAS seulement sur l'adresse de destination (routage IP usuel) mais aussi un routage basé sur l'adresse SOURCE. Ceci est appelé "routage basé sur une politique" ("policy-based routing") ou "routage par source" ("source routing"). Cette fonctionnalité n'est PAS disponible dans les noyaux 2.0.x, mais l'*EST* pour les noyaux 2.2.x via le package IPROUTE2, et est implémenté dans le nouveau noyau 2.4.x avec IPTABLES.
Vous devez tout d'abord comprendre que IPFWADM et IPCHAINS ne rentrent en action qu'*APRES* que le moment où le système de routage a décidé de l'endroit où il va envoyer un paquet donné. Cet énoncé est très important est devrait être estampé avec de grosses lettres rouges sur toute documentation sur IPFWADM/IPCHAINS/IPMASQ. C'est pourquoi les utilisateurs DOIVENT installer leur routage d'abord et commencer à ajouter IPFWADM/IPCHAINS et/ou des fonctions Masq.
Dans l'exemple précédent, vous devez dire au système de routage de diriger les paquets en provenance de 192.168.1.x via 123.123.1233.11 et les paquets en provenance de 192.168.2.x via 123.123.123.12. C'est la partie difficile du travail, ajouter Masq par dessus un routage correct est facile.
Pour faire ce routage élégant, vous utiliserez IPROUTE2. Comme cette fonction n'a rien à voir avec IPMASQ, ce HOWTO ne le traite pas en détail. Referez vous SVP à 2.2.x-Requirements pour des URL et une documentation sur ce sujet.
Les commandes sont les même que les commandes "iprule" et "iproute" (je préfére le premier puisqu'il est plus facile de le chercher). Les commandes ci-dessous ne sont pas testées, si elles ne fonctionnent pas, veuillez contacter l'auteur de IPROUTE2... pas David Ranch ou qui que ce soit dans la mailing list de Masq puisque ça n'a RIEN avoir avec IP Masquerading.
Les toutes premières commandes ont seulement besoin d'être lancé une fois au démarrage, disons dans le fichier /etc/rc.d/rc.local
# Permets aux LANs internes de communiquer entre eux, pas de masq.
/sbin/iprule add from 192.168.0.0/16 to 192.168.0.0/16 table main pref 100
# Tout autre traffic de 192.168.1.x est externe, pris en charge par la table 101
/sbin/iprule add from 192.168.1.0/24 to 0/0 table 101 pref 102
# Tout autre traffic de 192.168.2.x est externe, pris en charge par la table 102
/sbin/iprule add from 192.168.2.0/24 to 0/0 table 102 pref 102
Ces commandes ont besoin d'être testées quand eth0 est configuré, peut-être dans
/etc/sysconfig/network-scripts/ifup-post (systèmes RedHat). Lancez les une fois
à la main pour être sur qu'ils fonctionnent.
# la table 101 force tous les paquets qui lui sont assigné a sortir via 123.123.123.11
/sbin/iproute add table 101 via 62123.123.123.11
# la table 102 force tous les paquets qui lui sont assigné a sortir via 123.123.123.12
/sbin/iproute add table 102 via 62123.123.123.12
A partir de là, vous devriez voir que les paquets provenant de 192.168.1.x partant
vers le monde extérieur sont routes; via 123.123.123.11, et les paquets de
192.168.2.x sont routé via 123.123.123.12.
Une fois que le routage est correct, vous pouvez ajouter les règles IPFWADM et IPCHAINS.
Les exemples suivants sont pour IPCHAINS :
/sbin/ipchains -A forward -i ppp+ -j MASQ
Si tout ce goupille bien, le code de masq va voir les paquets routés via
123.123.123.11 et 123.123.123.12 et va utiliser ces adresses comme adresse source masq.
IPCHAINS possède les fonctions suivantes que IPFWADM ne possède pas :
Il y a plusieurs choses que vous devez vérifier, si on considère que votre machine Linux IP Masq est bien connectée à Internet et à votre LAN :
/usr/src/linux/Documentation/Changes
et assurez vous que vous avez la configuration minimale requise pour les outils réseaux d'installés.
Il y a plusieurs choses que vous devez vérifiant, si on considère que votre machine Linux IP Masq est bien connectée a Internet et à votre LAN :
/usr/src/linux/Documentation/Changes
et assurez vous que vous avez la configuration minimale requise pour les outils réseaux installés.
EQL n'a rien à faire avec IP Masq bienqu'ils soient souvent combinés sur les machines Linux. C'est pourquoi, je vous recommande de voir la nouvelle version de Robert Novak's EQL HOWTO pour vos besoins sur EQL.
Vous voulez abandonner une solution gratuite, sûre, haute performance qui fonctionne avec un minimum de ressources matérielles pour quelquechose qui a besoin de plus de matériel, avec des performances inférieures et moins sûr ? (AMHO. Et oui, j'ai des expériences grandeur nature de ces choses là ;-)
Okay, c'est votre choix. Si vous voulez une solution NAT et/ou proxy Windows, voici une liste convenable. Je n'ai pas de préférence pour ces outils puisque je ne m'en suis jamais servi.
Enfin faites une recherche sur le web sur "MS Proxy Server", "Wingate", "WinProxy", ou allez sur www.winfiles.com. Et ne dites surtout a personnes que c'est nous qui vous envoyons.
Abonnez vous à la mailing list Linux IP Masquerading DEVELOPERS et demander aux développeurs sur quoi vous pouvez aider. Pour plus de détails sur comment s'abonner aux mailing lists, regardez la section Masq-List de la FAQ.
SVP NE posez PAS de questions non relatifs au développement d'IP Masquerade là-bas !!!!
Vous pouvez trouvez plus d'informations sur IP Masquerade ici : Linux IP Masquerade Resource, site dont s'occupe David Ranch.
Vous pouvez aussi trouver des informations sur Dranch's Linux page, où se trouvent les documents de TrinityOS et d'autres documents sur Linux.
Vous pouvez aussi trouver des informations sur The Semi-Original Linux IP Masquerading Web Site entretenu par Indyramp Consulting, qui fournit aussi les mailing lists IP Masq.
Enfin, vous pouvez trouver des réponses aux questions spécifiques dans les archives des mailing lists IP MASQ et IP MASQ DEV. Reportez vous à la FAQ Masq-List pour de plus amples détails.
Assurez vous que la langue dans laquelle vous voulez traduire n'est pas déjà traitée par quelqu'un d'autre. Mais la plupart des HOWTOs traduits sont VIEUX et ont besoin d'être mis à jour. Une liste des HOWTO traduits est disponible ici : Linux IP Masquerade Resource.
Si une copie de la version en cours de l'IP MASQ HOWTO n'existe pas dans la langue que vous proposez, téléchargez SVP la version la plus récente du code SGML de l'IP-MASQ HOWTO ici : Linux IP Masquerade Resource. De là, continuez votre travail tout en produisant du bon code SGML. Pour plus d'aide sur le SGML, vous pouvez voir www.sgmltools.org
Oui, ce HOWTO est toujours mis à jour. Par le passé, j'ai été coupable d'être trop occupé avec deux emplois et ne pas avoir assez de temps pour travailler dessus, mes excuses. A partir de v1.50, David Ranch a commencé à réaménager ce document et le maintenir à jour.
Si vous pensez qu'un sujet devrait être ajouté à ce HOWTO, envoyez SVP un email à [email protected] and [email protected]. Ca serait encore mieux si vous pouviez fournir ces informations. Nous incluerons alors ces informations dans ce HOWTO si nous les trouvons appropriées et quand nous les aurons testées. Merci beaucoup pour vos contributions !
Nous avons beaucoup de nouvelles idées et de plans pour améliorer ce HOWTO, tels que des études de cas qui vont traiter différentes installations réseaux impliquant de IP Masquerade, plus de sécurité via des jeux de règles IPFWADM/IPCHAINS 'strong', plus d'entrées dans la FAQ, etc. Si vous pensez pouvoir nous aider, SVP faites le ! Merci.