Certains protocoles ne marcheront pas avec l'IP masquerading, parce que soit ils supposent des choses sur les numéros de port ou soit qu'ils encodent les données sur le port et les adresses dans leurs paquets. Ces protocoles ont besoin de proxy intégrés dans le code du masquerading pour fonctionner.
Le masquerading ne peut pas du tout prendre en charge les services entrants. Il y a plusieurs façons de les autoriser, mais ces méthodes sont complètement en dehors du thème du masquerading et se rapprochent plutôt de la technique des firewalls.
Si vous n'avez pas besoin d'une grande sécurité, vous pouvez
simplement rediriger les ports. Il y a de nombreuses façons de faire
cela - personnellement j'utilise une version modifiée du programme
redir (qui, je l'espère, sera disponible sur sunsite et ses mirrors
prochainement). Si vous désirez avoir des niveaux d'autorisation sur
les connexions entrantes, vous pouvez alors utiliser les TCP
Wrappers
ou Xinetd
par dessus redir (version 0.7 ou supérieure)
pour autoriser seulement des adresses IP données, ou utiliser d'autre
outils. La boîte à outils pour firewall TIS (TIS Firewall
Toolkit) est un bon produit pour ceux qui cherchent des outils et des
informations.
** La liste suivante n'est plus maintenue. Voyez cette page sur les applications fonctionnant au travers d'IP Masquerading et la page IP Masquerade Resource pour plus de détails. **
En général, les applications qui utilisent TCP et/ou UDP devraient fonctionner. Si vous avez une quelconque suggestion ou question à propos des applications compatibles avec IP masquerade, visitez la page sur les applications fonctionnant avec IP Masquerading par Lee Nevo.
Clients génériques
toutes les plateformes, naviguer sur le web ;
toutes les plateformes, clients de courrier électronique ;
toutes les plateformes, sessions distantes ;
toutes les plateformes, avec le module
ip_masq_ftp.o
(tous les sites ne fonctionnent pas avec certains clients ; par exemple, certains sites ne peuvent pas être atteints en utilisant ws_ftp32 mais fonctionnent avec netscape) ;
toutes les plateformes, client de recherche de fichiers (tous les clients ne fonctionnent pas) ;
toutes les plateformes, client news USENET ;
Windows (peut être toutes les plateformes), réalité virtuelle ;
surtout les plateformes UNIX, certaines variantes ne devraient pas fonctionner ;
toutes plateformes, avec le patch ICMP
toutes les plateformes, avec le module ip_masq_irc.o
;
toutes les plateformes ;
atoutes les plateformes.
Clients Multimédia
Windows, flux audio par réseau, avec le module ip_masq_raudio
Windows, flux audio par réseau
Windows, flux audio par réseau
Windows, programme client-serveur de discussion 3D
Windows, programme client-serveur de discussion 3D
Windows, communications audio. Vous ne pouvez être contacté que si vous initiez la connexion, mais on ne peut pas vous appeler.
Windows, communication audio. Vous ne pouvez être contacté que si vous initiez la connexion, mais on ne peut pas vous appeler.
toutes les plateformes, avec le module cuseeme, voir sur IP Masquerade Resource pour les détails.
Windows, avec le patch vdolive
NB : Certains clients tels IPhone et Powwow peuvent fonctionner même si vous n'êtes pas la personne qui initie la connexion, en utilisant le package ipautofw (voir la section 4.6).
Autres clients
DOS, une suite de logiciels contenant telnet, ftp, ping, etc...
MS-Windows, controle d'un PC à distance avec TCP/IP, fonctionne uniquement si la machine est un client et non un hôte.
utilise ntp - network time protocol
Linux, package d'administration par réseau
Connexion ok, mais la voix ne peut que sortir de votre réseau.
Connexion impossible au sever.
Connexion à l'hôte distant impossible.
ne fonctionnera pas - nécessite l'écriture d'un proxy noyau
Ne peut pas fonctionner (il fait des supposition invalides sur les adresses).
Non testé, mais je pense que cela ne peut pas fonctionner à moins que quelqu'un écrive un proxy X, qui est sans doute un programme externe au code de masquerading. Une façon de le faire fonctionner est d'utiliser ssh comme lien, et X comme proxy.
Cette section constitue un guide plus précis sur l'utilisation d'ipfwadm.
Voici un script d'initialisation pour un système qui fait office de firewall et de masquerading. L'interface à laquelle on fait confiance est 192.168.255.1 (celle du réseau local) et l'interface PPP a été changée pour des raisons de sécurité. Toutes les interfaces sont listées individuellement pour intercepter l'IP spoofing et les routages inexacts. Tout ce qui n'est pas explicitement autorisé est interdit !
#!/bin/sh # # /etc/rc.d/rc.firewall, definit la configuration du firewall. # appele depuis rc.local. # PATH=/sbin:/bin:/usr/sbin:/usr/bin # pour les tests, attend un moment puis efface toutes les regles du # firewall. Decommentez les lignes suivantes si vous voulez que le # firewall soit desactive automatiquement apres 10 minutes. # (sleep 600; \ # ipfwadm -I -f; \ # ipfwadm -I -p accept; \ # ipfwadm -O -f; \ # ipfwadm -O -p accept; \ # ipfwadm -F -f; \ # ipfwadm -F -p accept; \ # ) & # Connexions entrantes, efface tout et positionne le comportement par # defaut a deny (refus). En fait, le comportement par defaut est # inadequat puisqu'il y a une regle pour tout intercepter, avec refus et # logging. ipfwadm -I -f ipfwadm -I -p deny # interface locale, machines locales. Aller n'importe ou est autorise. ipfwadm -I -a accept -V 192.168.255.1 -S 192.168.0.0/16 -D 0.0.0.0/0 # interface distante, pretendant etre une machine locale. C'est de # l'IP spoofing, on refuse. ipfwadm -I -a deny -V votre.adresse.PPP.statique -S 192.168.0.0/16 -D 0.0.0.0/0 -o # interface distante, n'importe qu'elle source, l'acces a notre # adresse PPP est valide ipfwadm -I -a accept -V votre.adresse.PPP.statique -S 0.0.0.0/0 -D votre.adresse.PPP.statique/32 # l'interface loopback est valide. ipfwadm -I -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0 # une fois toutes les regles faites, toutes les autres connexions # entrantes sont refusees et logguees. ipfwadm -I -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o # Connexions sortantes,efface tout et positionne le comportement par # defaut a deny (refus).En fait, le comportement par defaut est # inadequat puisqu'il y a une regle pour tout intercepter, avec refus et # logging. ipfwadm -O -f ipfwadm -O -p deny # interface locale, machines locales. n'importe quelle source allant # vers le reseau local est valide. ipfwadm -O -a accept -V 192.168.255.1 -S 0.0.0.0/0 -D 192.168.0.0/16 # destination vers le reseau local a partir de l'interface # sortante. C'est du routage pirate, tout refuser. ipfwadm -O -a deny -V votre.adresse.PPP.statique -S 0.0.0.0/0 -D 192.168.0.0/16 -o # sortante depuis le reseau local sur l'interface sortante. C'est du # masquerading pirate, tout refuser. ipfwadm -O -a deny -V votre.adresse.PPP.statique -S 192.168.0.0/16 -D 0.0.0.0/0 -o # sortante depuis le reseau local sur l'interface sortante. C'est du # masquerading pirate, tout refuser. ipfwadm -O -a deny -V votre.adresse.PPP.statique -S 0.0.0.0/0 -D 192.168.0.0/16 -o # l'interface loopback est valide. ipfwadm -O -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0 # une fois toutes les regles faites, toutes les autres connexions # sortantes sont refusees et logguees. ipfwadm -O -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o # Connexions a faire suivre (forwarding), efface tout et positionne le # comportement par defaut a deny (refus).En fait, le comportement par # defaut est inadequat puisqu'il y a une regle pour tout intercepter, # avec refus et logging. ipfwadm -F -f ipfwadm -F -p deny # Masquerade depuis le reseau local sur l'interface locale vers # n'importe ou ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/16 -D 0.0.0.0/0 # une fois toutes les regles faites, toutes les autres connexions # a faire suivre sont refusees et logguees. ipfwadm -F -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o
Vous pouvez bloquer le traffic vers ou depuis un site particulier en utilisant -I, -O ou -F. Souvenez vous que les règles sont analysées de haut en bas, et -a signifie ajoute (append) à l'ensemble des règles existantes. Par exemple (non testé) :
En utilisant les règles -I. Probablement le plus rapide mais stoppe uniquement les machines locales, le firewall peut encore accéder au site "interdit". C'est peut être d'ailleurs le comportement que vous désirez.
... debut des regles -I ... # rejette et loggue l'interface locale et la machine locale allant sur # 204.50.10.13 ipfwadm -I -a reject -V 192.168.255.1 -S 192.168.0.0/16 -D 204.50.10.13/32 -o # interface locale, machines locales. Aller n'importe ou est autorise. ipfwadm -I -a accept -V 192.168.255.1 -S 192.168.0.0/16 -D 0.0.0.0/0 ... fin des regles -I ...
En utilisant les règles -O. C'est le plus lent puisque les paquets passent d'abord à travers le masquerading, mais cette règle empèche même au firewall d'accéder au site interdit.
... debut des regles -O ... # rejette et loggue les connexions sortantes vers 204.50.10.13 ipfwadm -O -a reject -V votre.adresse.PPP.statique -S votre.adresse.PPP.statique/32 -D 204.50.10.13/32 -o # tout le reste, sortant vers l'interface distante est valide ipfwadm -O -a accept -V votre.adresse.PPP.statique -S votre.adresse.PPP.statique/32 -D 0.0.0.0/0 ... fin des regles -O ...
En utilisant les règles -F. Probablement plus lent qu'en utilisant les règles -I, et cela stoppe uniquement les machines pour lesquelles on effetue du masquerading (c'est à dire les machines internes). Le firewall peut encore accéder au site interdit.
... debut des regles -F ... # Rejette et loggue les connexions depuis le reseau local sur # l'interface PPP vers 204.50.10.13. ipfwadm -F -a reject -W ppp0 -S 192.168.0.0/16 -D 204.50.10.13/32 -o # Masquerade depuis le reseau local sur l'interface locale vers # n'importe ou ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/16 -D 0.0.0.0/0 ... fin des regles -F ...
Il n'y a pas besoin d'une règle spéciale pour autoriser 192.168.0.0/16 à se connecter sur 204.50.11.0, ce comportement est inclus dans les règles globales.
Il y a plus d'une façon d'écrire les règles précédentes. Par exemple, au lieu de -V 192.168.255.1, vous pouvez utiliser -W eth0, au lieu de -V votre.adresse.PPP.statique, vous pouvez utiliser -W ppp0. C'est une question de goût personnel.
IPautofw est un module générique pour faire suivre les paquets TCP et UDP pour le Masquerading de Linux. Généralement, pour utiliser un client utilisant UDP, un module spécifique doit être chargé. Ipautofw agit de manière plus générique, puisqu'il fait suivre tout type de traffic, y compris ceux pour lesquels les modules spécifiques ne feront rien suivre. Cela peut créer un trou de sécurité, si ce n'est pas administré correctement.
Chapitre suivant, Chapitre Précédent
Table des matières de ce chapitre, Table des matières générale
Début du document, Début de ce chapitre