Depuis la version stable 2.18 de fli4l, une nouvelle configuration est possible pour le filtrage de paquets. La configuration d'origine existe toujours, elle doit être activée à part dans le fichier config\base.txt
Avec cette nouvelle version on peut configurer séparément les tables de filtrages de paquets. De plus chaque table a sa propre chaîne, la chaîne (INPUT_LIST_x) pour les paquets entrant dans le routeur, la chaîne (FORWARD_LIST_x) pour les paquets traversant le routeur, la chaîne (POSTROUTING_LIST_x) pour faire de la translation d'adresse IP et du masquage. Il y a deux possibilités de configuration qui peuvent être exploitées en même temps, la chaîne Prerouting PREROUTING_LIST_x, et la variable Porforwarding qui a déjà été vue dans PORTFW_x.
Une entrée dans chaque chaîne produit une action, excepté dans la chaîne Prerouting, ces actions appelées aussi cibles sont (ACCEPT, DROP, REJECT, SNAT ou MASQUERADE) Ces actions peuvent modifier l'état d'un paquet. Un paquet contient des informations sur son origine (de quel ordinateur est parti le paquet) et sa destination (vers quel ordinateur le paquet doit aller). Les critères suivants peuvent s'associer aux caractéristiques du paquet.
Si un paquet parfait (non modifié) arrive, il entre dans une chaîne puis les différentes règles d'une chaîne sont appliquées les unes à la suite des autres, chaque règle est associée à une action (ou cible). En fonction des différentes règles de la chaîne, Netfilter pourra décider quoi faite du paquet, le laisser passer, le supprimer ou le modifier. Si aucune régle ne s'applique au paquet, il passe alors à la chaîne suivante.
Voici Une inscription des commandes, il faut considérer que tous les paramètres sont optionnels:
paramètre{0,} [[source] [destination]] action [BIDIRECTIONAL|LOG|NOLOG]
Les actions peuvent être les suivantes:
Quelques unes de ces actions (ou cibles) peuvent avoir les options BIDIRECTIONAL, LOG ou NOLOG modifiant leur comportement. Le paramètre BIDIRECTIONAL génère une connexion avec l'adresse de source et de destination de manière à communiquer entre deux réseaux locaux. LOG/NOLOG active ou n'active pas le fichier Log (ou journal) pour une régle définie.
Dans ce chapitre, nous allons spécifier l'utilisation des variables de restrictions. Les paramètres de restrictions peuvent être écrites dans n'importe quel ordre, si ils ont un préfixe en tête, cela est valable pour toutes les variables excepté pour les paramètres d'Adresse source et/ou destination elle doit toujours être directement écrite avant une action. Les autres paramètres de restrictions doivent avoir lieu avant.
Lors de la configuration d'une régle il faut obligatoirement indiquer un paramètre, on peut écrire "any" si on ne veut pas utiliser de paramètre spécifique. On trouve parfois le symbole "!" ce symbole peut se rajouter aux autres paramètres, afin d'indiquer la négation (on peut le traduire par "sauf" ).
Chaque paquet contient des renseignements sur la source et sur la destination, sous la forme d'une adresse IP et/ou un port. On peut rajouter à cette source ou à cette destination un paramétre de restriction. Les informations de l'adresse source ou de la destination peuvent être écrites de la manière suivante:
| ip | Adresse IP simple |
| network | Réseau sous la forme ip/masque sous réseau |
| port[-port] |
Port simple. ou ensemble de Ports |
| IP_NET_x_IPADDR | Adresse IP d'Interface x du Routeur |
| IP_NET_x | Sous réseau d'interface x du Routeur |
| IP_ROUTE_x |
Route d'un sous réseau (par défaut les routes ne peuvent pas être utilisées car elles communiqueraient toutes entre-elles ce paramètre sera exclus par précaution) |
| name |
Dans la variable HOST_x_* le Nom donnés aux Hôtes du LAN correspond à leur Adresse-IP |
| < ip oder netzwerk> :port[-port] |
Adresse IP/réseau dans l'une des variables mentionnées ci-dessus combiné à un Port ou un ensemble de Ports |
Exemple des paramètres que l'on n'a vus ci-dessus: '192.168.6.2 any DROP'.
Si on regarde les deux premiers paramètres, le premier paramètre est la source, le second est la destination. Dans cet exemple les paquets envoyés par l'ordinateur qui a l'Adresse IP 192.168.6.2 (source) sont reçu indifférament par tous les réseaux locaux any (destinataire) enfin les paquets reçus seront rejetés DROP.
Si un seul paramètre est écrit dans la variable, on peut décider au moyen cette valeur si c'est la source ou si c'est la destination qui est concernée, la décision est relativement simple:
Si nous voulons écrire plus brièvement l'exemple ci-dessus: '192.168.6.2 DROP' Aucun port n'est indiqué, donc l'IP de l'ordinateur est la source (c'est lui qui envoie les paquets).
Pour accéder à une connexion sshd any any:22 ACCEPT' (les paquets sont envoyés de n'importe quel ordinateur et reçus sur n'importe quel ordinateur sur le port 22 pour une connexion sshd les paquets seront acceptés). On peut écrire plus simplement '22 ACCEPT' seul un port est indiqué donc nous pouvons dire que c'est la destination et que les paquets reçus sur le Port 22 sont acceptés.
Pour simplifier la quantité de régle à écrire, on peut utiliser l'action BIDIRECTIONAL elle indique que les communications se feront dans les deux sens. Les règles sont paramètrées simplement avec l'IP source et destination ou éventuellement avec leurs interfaces, les échanges entre cet deux réseaux reste constant.
Exemple:
| '127.0.0.1 ACCEPT' | Communication locale (Souce 127.0.0.1) est accepté |
| 'any 192.168.12.1 DROP' | Les paquets de l'Adresse-IP 192.168.12.1 sont rejetés |
| 'any 192.168.12.1 DROP LOG' |
Les paquets de l'Adresse-IP 192.168.12.1 sont rejetés et en plus sont enregistés |
| 'any 192.168.12.1 DROP NOLOG' | Les paquets de l'Adresse-IP 192.168.12.1 sont rejetés, et ne seront pas enregistés |
| '22 ACCEPT' | Les paquets sur le Port 22 (sshd) sont acceptés |
| 'IP_NET_1_NET ACCEPT' |
Les paquets du sous réseau de l'Interface 1 seront acceptés |
| 'IP_NET_1_NET IP_NET_2_NET ACCEPT BIDIRECTIONAL' | La communication entre les sous réseaux de la première et la seconde Interface est accepté |
Pour limiter les paquet entrant ou sortant des interfaces à l'intérieur du routeur. On écrit les paramètres sous cette forme: if:in :out
Vous ne pouvez pas limiter l'interface entrante dans la Chaîne-Input (le paquet ne sortira pas du routeur), dans la Chaîne Masquerade (postrouting) vous ne pourrez pas limiter l'interface sortante, car les informations sur cet interfaces ne seront plus disponibles. C'est seulement dans la Chaîne-Forward que vous pourrez limiter les deux (entrant et sortant).
Les valeurs possibles des interfaces sont pour in ou out :
Le format des paramètres de protocole dans les paquets sont indiqué ici: prot:protcol ou prot: icmp:icmp-type.
protcol peut être remplacé par une de ces valeurs:
Avec icmp on peut ajouter une variable en plus sous la forme icmp-type, par exemple: prot:icmp:echo-request.
la configuration de l'adresse MAC peut être utilisée au moyen de mac:mac addr.
Le filtrage de paquets sur fli4l utilise des informations sur les connexions. On peut alors utiliser ces informations pour controler les connexions p. ex n'accepter que les connexions déjà établies ou en relation avec des connexions déjà établies. Ces informations sont principalement:
Pour plus d'informations visiter ce site
http://www.sns.ias.edu/%7Ejns/index.php?pagename=connexionTracking.
Les paramètres des états des paquets sont écris comme ceci: state:state(s). Si on veut indiquer plusieurs états on les sépare par une virgule. Par exemple pour laisser passer seulement le paquet, les connexions déjà établies on peut écrire (dans input et forwarding): state:ESTABLISHED,RELATED
Dans certaine circonstance, on aimerait limiter la fréquence des actions, p. ex autoriser uniquement une echo request (ping) par seconde. On peut écrire cette restriction dans la variable limit qui est indiquée ici: limit:Fréquence/n:Burst avec n qui sera l'unité de temps comme (second, minute, hour, day) et Burst (ou salve) suite d'événements successifs. Par exemple, limit:3/minute:5 3 fois par minute une fréquence d'événements est exécutée et en plus 5 événements successifs sont exploités.
il y a une possibilité de simplifier l'utilisation des données de filtrage de paquets, on appelle Template un condensé concernant des règles fréquemment utilisées. Un résumé de toute une série de règles de filtrage de paquets, dans cette collection de règles un nom symbolique y est associé. Au lieu d'écrire dans la variable directement les protocoles et des numéros de port il suffit d'écrire "tmpl: ssh" si vous voulez travailler avec le protocole SSH. Comment faut-il procéder avec Templates, un exemple avec SSH est montré ici.
Si vous voulez atteindre votre Routeur-fli4l par Internet avec SSH, vous devez écrire dans la variable INPUT_LIST_x le nom du service correspondant avec prémis tmpl: et l'action qui doit être utilisé pour ce service. Exemple:
INPUT_LIST_2='tmpl:ssh ACCEPT'
Aprés les deux points de TMPL: se trouve le Nom du service, que l'on a donné pour créer la variable. A la fin de notre exemple 'ssh' est écrit une action qui sera liée au service. Puisque vous voulez atteindre le Routeur-fli4l par Internet nous acceptons la connexion avec la cible 'ACCEPT'. Des restrictions d'adresses IP ou de réseau ne sont pas indiquées, donc le service SSH est accessible à l'ensemble des réseaux et des interfaces. On pourraient écrire plus loin en cas de besoin une restriction des paquets filtrés pour limiter les accès au service SSH.
Dans le dossier (=Templates ) des règles peuvent être préparées et lues dans le fichier opt/etc./fwrules.tmpl/templates, ici l'installation sous forme de tableau (voir le tableau 4.5).
La syntaxe des règles pour des filtrages de paquets s'écrit toujours dans ce forme
tmpl:< Nom du Service> < Paramètre de Restriction> < Action Souhaitée>
Au sujet des < paramètres de Restriction> tout est décrit dans le paragraphe 4.14.2 . Les valeurs possibles pour <Action Souhaitée> son listées et décries dans le paragraphe 4.14.1.
Quelques exemples supplémentaires. D'abord nous allons voir la variable PREROUTING_LIST.
PREROUTING_LIST_N='2' PREROUTING_LIST_1='tmpl:xbl dynamic DNAT:@xbox' PREROUTING_LIST_2='tmpl:https dynamic DNAT:192.168.193.250'
La variable PREROUTING_LIST_1 envoie tous les paquets sur Xbox et uniquement sur Xbox. Le détail serait qu'avec 'tmpl:xbl' tous les ports et les protocoles nécessaires pour Xbox sont transmis directement à Hôte 'xbox'. A la place du Nom hôte '@xbox' dans la variable HOST_x_NAME on peut écrire l'adresse IP de l'hôte. Par 'dynamic' fli4l sait que les ports doivent être transmis par l'intermédiaire de l'interface Internet.
La deuxième variable transmet les paquets correstondants au protocole https sur un serveur Web dans une DMZ.
Maintenant, nous allons voir avec la Chaîne INPUT_LIST.
INPUT_LIST_N='3' INPUT_LIST_1='if:IP_NET_1_DEV:any ACCEPT' INPUT_LIST_2='if:pppoe:any prot:tcp 113 ACCEPT' INPUT_LIST_3='if:br0:any tmpl:dns @xbox 192.168.193.254 ACCEPT'
La première variable laisse passer tout ce qui vient par IP_NET_1 (internet) que l'on a défini sur le Routeur. La deuxième variable est uniquement pour les paquets donc le port est identifié ils doivent se diriger sur le port qui est ouvert . La troisième et dernière variable permet à Xbox l'accès au serveurs DNS sur fli4l et également être vu par le serveur central. Au lieu d'écrire Adresse-IP 192.168.193.254, j'aurais pu écrire IP_NET_1_IPADDR.
Dans mes variables FORWARD_LIST et POSTROUTING_LIST rien n'ai spécifié avec 'tmpl:'
Il est possible d'utiliser Templates comme il est ou de créer votre propre fichier Templates pour le filtrage de paquets. Pour utiliser votre propre Template vous devez simplement créer un nom de fichier et enregistrer les règles de filtage correspondantes à votre configuration. Lorsque vous avez terminé votre fichier Template personnel vous devez le sauvegarder dans etc/fwrules.tmpl avec les autres fichiers Template, comme dans l'illustration 4.6. Si le répertoire etc/fwrules.tmpl n'existe pas vous devez d'abord créer le répertoire. Vous pouvez installer plusieurs configurations de fichier Template dans le répertoire etc/fwrules.tmpl ou utiliser le fichier Template existant pour rajouter vos régle de filtrage. En conclusion le fichier Template qui est dans le dossier original de fli4l, est déjà configuré avec plusieurs régles de filtrage, il suffit de prendre le nom qui est devant la régle et de paramétrer vos variables avec, comme indiqué dans ce paragraphe.
Si vous voulez par exemple ajouter un Template vpn_freunde, vous créez le fichier vpn_freunde. Le Template doit contenir les services suivants, ssh, smtp, dns et samba. Vous écrivez ainsi ce qui suit dans le fichier vpn_freunde:
prot:tcp 22 prot:tcp 25 53 prot:udp 137-138 prot:tcp 139 prot:tcp 445
Chaque fois que vous utilisez maintenant Template vpn_freunde, des règles sont produites pour tous les protocoles et ports spécifiés. Si vous écrivez dans la variable forward_list_x= FORWARD_LIST_x='tmpl:vpn_freunde ACCEPT' les règles suivantes sont produites:
FORWARD_LIST_x='prot:tcp 22 ACCEPT' FORWARD_LIST_x='prot:tcp 25 ACCEPT' FORWARD_LIST_x='53 ACCEPT' FORWARD_LIST_x='prot:udp 137-138 ACCEPT' FORWARD_LIST_x='prot:tcp 139 ACCEPT' FORWARD_LIST_x='prot:tcp 445 ACCEPT'
Le filtrage de paquets est configuré essentiellement dans ces 3 variables:
on active avec NEW_FW_CONFIG ='yes' la configuration de ces Chaînes.
Avec la chaîne Input on configure ceux qui peuvent interroger le Routeur. Si aucune des règles de la chaîne Input ne s'applique, on détermine par Default-Policy (Politique-Transfére) ce qu'il doit se passer pour le paquet avec la variable log, savoir s'il devrait être écrit ou un non dans le journal système.
Avec les paramètres utilisés, il y a deux restrictions:
Le Default-Policy (Politique-Transfére) est appliqué, si aucune des variables ne correspond. Les 3 actions possibles dans les variables sont:
Si cette variable est sur 'yes' , trois règles par defaut sont générées. La première (' prot:icmp:8 ACCEPT ') permet à icmp echo requests de faire un ping sur le routeur, la deuxième ('state:ESTABLISHED, RELATED ACCEPT') accepte les paquets qui font partie d'une connexion existante, ainsi que tous les paquets qui sont en relation avec une connexion existante et la troisième ('if:lo:any ACCEPT') une communication locale avec le routeur. En cas de doute, vous devez écrire 'yes'.
Ici on définit, les paquets du Kernel qui sont refusés, ils seront écrits par intermédiaire de SYSLOG et de KLOGD dans un (fichier journal).
Ici on écrit la liste des variables des paquets qui doivent être acceptés ou rejetés par le Routeur.
Ici on définit la fréquence d'écriture dans le fichier log (ou journal), la fréquence des restrictions de limites sont décrite de façon analogue voir si dessus, "n" comme unité de temps et avec Bursts (ou salve) par. exemple 3/minute:5. Si cette variable est vide, aucune limite de temps est utilisé.
Ici on definit la fréquence de refus des paquets avant le rejet du prochain paquet généré, la fréquence de restriction des limites est décrite de façon analogue (voir si dessus), n unité de temps et avec Bursts (ou salve), par exemple 1/second:5. Si la limite de temps est dépassée le paquet est simple drop (rejet sans message d'erreur) Si cette variable est vide, aucune limite de temps est utilisé.
Avec la Chaîne Forward on configure les paquets qui sont transmis par Routeur (il s'agit de faire passer des paquets d'une interface réseau vers une autre interface). Si aucune des règles de la liste de Forward ne peut s'appliquer, on détermine par Default-Policy (Politique-Transfert) ce qu'il doit se passer avec le paquet dans la variable log, savoir s'il devrait être écrit ou non dans le journal système
Avec les paramètres utilisés, il y a deux restrictions:
Le Default-Policy (Politique-Transfert) est appliqué, si aucune des variables ne correspond. Les actions possibles dans les variables sont:
Il détermine si le Routeur accepte les paquets qui font partie des relations existantes. Si cette variable est sur 'yes' fli4l produit automatiquement une règle sur les paquets acceptés dont l'état correspond.
Ici on définit, les paquets du Kernel qui sont refusés, ils seront écrits par intermédiaire de SYSLOG et de KLOGD dans un (fichier journal).
Ici on définit la fréquence d'écriture dans le fichier log (ou journal), la fréquence de restriction des limites est décrite de façon analogue voir si dessus, "n" unité de temps et avec Bursts (ou salve) par. exemple 3/minute:5. Si cette variable est vide, aucune limite de temps n'est utilisée.
Ici on definit la fréquence de refus des paquets avant le rejet du prochain paquet généré, la fréquence de restriction des limites est décrite de façon analogue voir si dessus, "n" unité de temps et avec Bursts (ou salve), par exemple 1/second:5. Si la limite de temps est dépassée le paquet est drop (rejet sans message d'erreur) Si cette variable est vide, aucune limite de temps n'est utilisée.
Ici ont écrit la liste des variables sur les paquets qui doivent être acceptés ou rejetés par le Routeur.
Cette table permet non seulement de faire de la translation stricte d'adresse, mais également de la translation de ports et un mélange des deux. Des paquets peuvent être manipulés avant et après les décisions de Routing. Ils peuvent recevoir une nouvelle adresse de destination pour les transmettre à un autre ordinateur (Portforwarding) ou recevoir une autre adresse de source, pour masquer le réseau qui se trouve derrière Routeur. On appelle ce service Masquerade, par exemple, connecter un réseau privé sur une Adresse IP publique pour aller sur internet ou cacher un ordinateur DMZ dans une structure du réseau local.
La configuration se fait sur deux chaînes, la prerouting et la postrouting
Sur la chaîne Postrouting, on configure les paquets qui seront masqués par le Routeur. Si aucune règles de la chaîne Postrouting n'est appliquée, alors les paquets sont transmis sans être masqués.
Il y a deux variantes pour masquerading, une pour l'interface dans laquelle est assigné une IP à la connexion (MASQUERADE) et une pour l'interface avec IP statique (SNAT). Cette dernière utilise ces paramètres supplémentaires:
un Port ou un ensemble de Ports peut être utilisé pour attribuer le port source (normalement ce n'est pas nécessaire puisque le Kernel (ou noyau) peut choisir les ports, cependant il y a des applications qui exigent que le port source reste inchangé (nécessite un 1:1 NAT ou interdisent le PAT (port adresse Translation) ou NAPT (réseau port adresse Translation). L'ensemble des ports sont simplement attaché derrière le paramètre par exemple: SNAT:IP_NET_1_IPADDR: 4000-8000.
Avec les paramètres utilisés, il y a deux restrictions:
Dans ces variables on décrit le nombre et les paquets qui doivent être transmis par le Routeur à un autre destinataire du réseau local.
Dans la variable Prerouting on configure, le paquet qui doit être transmis à un autre ordinateur. Si aucune des règles de la liste Prerouting ne s'applique, les paquets ne seront pas traités et resteront inchangés.
DNAT attend une IP comme paramètre, ainsi une nouvelle adresse de paquet est enregistrée, on peut aussi enregister un nouveau port:
Redirect se comporte comme DNAT, seulement Adresse-IP de destination est toujours placée sur 127.0.0.1 et ainsi le paquet est distribué localement.
Si on veut faire du Portforwarding sur des interfaces avec des IPs dynamiques, on ne connait pas au moment de la configuration l'Adresse-IP des PCs vers lesquel les paquets seront dirigés. Pour celà, on peut utiliser dans la variable Prerouting dynamic comme paramètre de remplacement pour les Adresses-IP qui seront assignées plus tard. Par exemple:
'dynamic:80 DNAT:1.2.3.4' # forwarde Paquet-http
# à cette ip 1.2.3.4
'prot:gre any dynamic DNAT:1.2.3.4' # forwarde gre (fait partie du
# protocole pptp) à cette ip 1.2.3.4
Avec les paramètres utilisés, il y a une restriction qui ne peut pas être indiquée comme action c'est REJECT .
Ci-après quelques exemples pour la nouvelle configuration.
La configuration Standard de la distribution fli4l apparaît comme ceci, si on laisse toutes les options désactivées:
MASQ_NETWORK='192.168.6.0/24' # networks to masquerade (e.g. our LAN)
INPUT_POLICY='REJECT' # policy for input chain: reject or drop
FORWARD_DENY_PORT_N='1' # no. of ports to reject/deny forwarding
FORWARD_DENY_PORT_1='137:139 reject' # drop/reject forwarding of netbios
DENY_ICMP='no' # deny icmp (ping): yes or no
PACKETFILTER_LOG='no' # log access to rejected/denied ports
Si nous prenons les options décrites dans le chapitre de filtrage de paquets et en supposant que nous les traduisions avec la nouvelle configuration cela donnerait:
INPUT_POLICY='REJECT'
INPUT_ACCEPT_DEF='yes'
INPUT_LOG='no'
INPUT_LIST_N='1'
INPUT_LIST_1='IP_NET_1 ACCEPT'
De cette façon, nous arrivons à
De la même façon pour la chaîne Forward, seul les paquets qui font partie et qui sont construits par la connexion de notre réseau local, doivent être transmis. Les ports des paquets Netbios sont rejetés avec Template.
FORWARD_POLICY='REJECT'
FORWARD_ACCEPT_DEF='yes'
FORWARD_LOG='no'
FORWARD_LIST_N='2'
FORWARD_LIST_1='tmpl:samba DROP'
FORWARD_LIST_2='IP_NET_1 ACCEPT'
Ici, les régles sont dépendantes par rapport aux séquences. En premier, on rejette les paquets de Netbios, ensuite les paquets du réseau local sont acceptés.
Maintenant, le réseau local peut traverser le Router, les paquets sont transmits d'une interface à une autre, il manque seulement le masquerade celui-ci est nécessaire pour accèder au réseau privé Internet:
POSTROUTING_LIST_N='1'
POSTROUTING_LIST_1='IP_NET_1 MASQUERADE'
La configuration originale paraît largement plus simple. Cela change, lorque nous ajoutons les autres options qui sont:
Si nous voulons plusieurs Sous Réseaux locaux qui puissent communiquer les uns avec les autres librement et non masqués, nous devons nous assurer qu'aucun paquet ne soit pas rejetés entre ces Sous Réseaux et ne soit pas masqués. Avec la ancienne configuration, ceci êtait fait en les indiquant dans TRUSTED_NETS. Dans la nouvelle configuration, nous ajoutons simplement une variable ou bien la modifie si elle est disponible.
Supposons, les Sous Réseaux suivants IP_NET_1 192.168.6.0 /24 et IP_NET_2 192.168.7.0 /24 et le protocole pppoe pour DSL qui est utilisé. La configuration ressemblerait alors à ce qui suit:
FORWARD_POLICY='REJECT'
FORWARD_ACCEPT_DEF='yes'
FORWARD_LOG='no'
FORWARD_LIST_N='4'
FORWARD_LIST_1='IP_NET_1 IP_NET_2 ACCEPT BIDIRECTIONAL'
FORWARD_LIST_2='tmpl:samba DROP'
FORWARD_LIST_3='IP_NET_1 ACCEPT'
FORWARD_LIST_4='IP_NET_2 ACCEPT'
POSTROUTING_LIST_N='3'
POSTROUTING_LIST_1='IP_NET_1 IP_NET_2 ACCEPT BIDIRECTIONAL'
POSTROUTING_LIST_2='IP_NET_1 MASQUERADE'
POSTROUTING_LIST_3='IP_NET_2 MASQUERADE'
La première variable FORWARD_LIST_1 s'assure que les paquets entre les Sous Réseaux sont expédiés sans vérification. La troisième et la quatrième variable s'assurent que les deux Sous Réseaux peut accéder à Internet. La première variable POSTROUTING_LIST_1 s'assure que la communication entre les Sous Réseaux ne sera pas masquée. Si l'on veut, on peut alléger les deux dernières variables pour définir que tous les paquets sortants par l'interface du protocole pppoe devront être masqués:
POSTROUTING_LIST_N='1'
POSTROUTING_LIST_1='if:any:pppoe MASQUERADE'
De la même manière avec la variable FORWARD_LIST_1, le filtrage des ports pourrait été limité par le protocole pppoe. cela ressemblerait à ceci:
FORWARD_POLICY='REJECT'
FORWARD_ACCEPT_DEF='yes'
FORWARD_LOG='no'
FORWARD_LIST_N='2'
FORWARD_LIST_1='if:any:pppoe tmpl:samba DROP'
FORWARD_LIST_2='192.168.6.0/23 ACCEPT'
POSTROUTING_LIST_N='1'
POSTROUTING_LIST_1='if:any:pppoe MASQUERADE'
Les paquets qui partent par le protocole pppoe et qui sont adressés aux ports 137-139 udp ainsi que 139 et 445 tcp sont rejetés (variable 1), tout les autres paquets du Sous Réseau 192.168.6.0 /23 seront expédiés (variable 2).
Si nous ajoutons un réseau 10.0.0.0 /24 (par exemple communiquer avec le réseau non masqué et les ports 137-139 udp 139 und 445 tcp qui doivent être rejetés. Cela ressemblerait à ceci :
FORWARD_POLICY='REJECT'
FORWARD_ACCEPT_DEF='yes'
FORWARD_LOG='no'
FORWARD_LIST_N='4'
FORWARD_LIST_1='IP_NET_1 IP_NET_2 ACCEPT BIDIRECTIONAL'
FORWARD_LIST_2='tmpl:samba DROP'
FORWARD_LIST_3='192.168.6.0/23 ACCEPT'
FORWARD_LIST_4='10.0.0.0/24 ACCEPT'
POSTROUTING_LIST_N='2'
POSTROUTING_LIST_1='10.0.0.0/24 ACCEPT BIDIRECTIONAL'
POSTROUTING_LIST_2='192.168.6.0/23 MASQUERADE'
On pourrait écrire une autre variante:
POSTROUTING_LIST_N='1'
POSTROUTING_LIST_1='if:any:pppoe MASQUERADE'
Seulement les paquets qui sortent de l'interface pppoe sont masqués.
Blacklists (ou listes noires) (on refuse aux ordinateurs de cette liste "de faire quelque chose") et Whitelists (ou liste blanches) (on permet aux ordinateurs de cette liste "de faire quelque chose") sont traduit en principe de la même façon. Les règles qui sont écrites au début de la liste sont très spécifiques et deviennent de plus en plus le générales vers la fin de la liste. Quand vous utilisez une Blacklists (liste noire) vous devez écrire la variable au début de la liste, quand vous utilisez une Whitelists (liste blanche) vous devez écrire la variable à la fin de la liste. Un exemple: On permet à tous les ordinateurs du Sous Réseau 192.168.6.0 /24 d'accéder à Internet, mais on interdi à l'ordinateur avec l'IP 192.168.6.12 d'accéder, on rejette toujours les ports 137-139 udp 139 et 445 tcp:
FORWARD_POLICY='REJECT'
FORWARD_ACCEPT_DEF='yes'
FORWARD_LOG='no'
FORWARD_LIST_N='3'
FORWARD_LIST_1='192.168.6.12 DROP'
FORWARD_LIST_2='tmpl:samba DROP'
FORWARD_LIST_3='192.168.6.0/23 ACCEPT'
POSTROUTING_LIST_N='1'
POSTROUTING_LIST_2='192.168.6.0/24 MASQUERADE'
On permet seulement à l'ordinateur x.x.x.12 d'accéder à Internet (mais pas sur les ports…), tous les autres ne peuvent communiquer que localement avec un autre sous-réseau:
FORWARD_POLICY='REJECT'
FORWARD_ACCEPT_DEF='yes'
FORWARD_LOG='no'
FORWARD_LIST_N='3'
FORWARD_LIST_1='192.168.6.0/24 192.168.7.0/24 ACCEPT BIDIRECTIONAL'
FORWARD_LIST_2='tmpl:samba DROP'
FORWARD_LIST_3='192.168.6.12 ACCEPT'
POSTROUTING_LIST_N='1'
POSTROUTING_LIST_1='if:any:pppoe MASQUERADE'
ORIG_FW_CONFIG='no'
NEW_FW_CONFIG='yes'
#
# Accès sur Routeur
#
INPUT_POLICY='REJECT'
INPUT_ACCEPT_DEF='yes'
INPUT_LOG='no'
INPUT_LIST_N='1'
INPUT_LIST_1='IP_NET_1 ACCEPT' # tous les hôtes du réseau local
# peuvent communiquer avec le router
# Accés à "Internet" #
FORWARD_POLICY='REJECT'
FORWARD_ACCEPT_DEF='yes'
FORWARD_LOG='no'
FORWARD_LIST_N='2'
FORWARD_LIST_1='tmpl:samba DROP' # les paquets samba (ports)qui peuvent
# sortir du réseau sont rejetés
FORWARD_LIST_2='IP_NET_1 ACCEPT' # tous les paquets du réseau local
# peuvent sortir
#
# Masque du réseau local
#
POSTROUTING_LIST_N='1'
POSTROUTING_LIST_1='IP_NET_1 MASQUERADE' # masquerade traffic leaving
# the subnet
ORIG_FW_CONFIG='no'
NEW_FW_CONFIG='yes'
#
# Accès sur le Routeur
#
INPUT_POLICY='REJECT'
INPUT_ACCEPT_DEF='yes'
INPUT_LOG='no'
INPUT_LIST_N='2'
INPUT_LIST_1='IP_NET_1 ACCEPT' # tous les hôtes du réseau local
# peuvent communiquer avec le router
INPUT_LIST_2='IP_NET_2 ACCEPT' # tous les hôtes du réseau local
# peuvent communiquer avec le router
#
# Accés à "Internet" #
FORWARD_POLICY='REJECT'
FORWARD_ACCEPT_DEF='yes'
FORWARD_LOG='no'
#
# Aucun communication entre les deux réseaux locaux
#
FORWARD_LIST_N='3'
FORWARD_LIST_1='tmpl:samba DROP' # les paquets samba (ports)qui peuvent
# sortir du réseau sont rejetés
FORWARD_LIST_2='IP_NET_1 ACCEPT' # tous les paquets du réseau local
# peuvent sortir
FORWARD_LIST_3='IP_NET_2 ACCEPT' # tous les paquets du réseau local
# peuvent sortir
#
# Communication libre entre les deux réseaux locaux
#
FORWARD_LIST_N='4'
FORWARD_LIST_1='IP_NET_1 IP_NET_2 ACCEPT BIDIRECTIONAL'
FORWARD_LIST_2='tmpl:samba DROP' # les paquets samba (ports)qui peuvent
# sortir du réseau sont rejetés
FORWARD_LIST_3='IP_NET_1 ACCEPT' # tous les paquets du réseau local
# peuvent sortir
FORWARD_LIST_4='IP_NET_2 ACCEPT' # tous les paquets du réseau local
# peuvent sortir
#
# Entre les réseaux locaux non masqués et les deux
# sous réseaux masqués pour Internet
#
POSTROUTING_LIST_N='3'
POSTROUTING_LIST_1'IP_NET_1 IP_NET_2 ACCEPT BIDIRECTIONAL'
POSTROUTING_LIST_2='IP_NET_1 MASQUERADE' # masquerade traffic leaving
#the subnet
POSTROUTING_LIST_3='IP_NET_2 MASQUERADE' # masquerade traffic leaving
# the subnet
ORIG_FW_CONFIG='no'
NEW_FW_CONFIG='yes'
#
# Accès sur le Routeur
#
INPUT_POLICY='REJECT'
INPUT_ACCEPT_DEF='yes'
INPUT_LOG='no'
INPUT_LIST_N='4'
INPUT_LIST_1='IP_NET_1 ACCEPT' # tous les hôtes du réseau local
# peuvent communiquer avec le router
INPUT_LIST_2='IP_NET_2 ACCEPT' # tous les hôtes du réseau local
# peuvent communiquer avec le router
INPUT_LIST_3='tmpl:ssh ACCEPT' # permets d'accéder au service ssh
# de partout
INPUT_LIST_4='tmpl:http 1.2.3.4/24 ACCEPT' # permets au ordinateurs du
# sous réseau déterminé
# d'accéder au service http
#
# Accés à "Internet" #
FORWARD_POLICY='REJECT'
FORWARD_ACCEPT_DEF='yes'
FORWARD_LOG='no'
#
# Aucune communication entre les deux réseaux, les deux réseaux peuvent aller
# Sur Internet, les paquets Samba sont rejetés
#
FORWARD_LIST_N='2'
FORWARD_LIST_1='tmpl:samba if:any:pppoe DROP' # les paquets samba (ports)qui peuvent
# sortir du réseau sont rejetés
FORWARD_LIST_2='if:any:pppoe ACCEPT' # tous les paquets du réseau
# local peuvent sortir
#
# Masque le réseau local, communication non masquée entre les
# deux Réseaux
#
POSTROUTING_LIST_N='1'
POSTROUTING_LIST_1='if:any:pppoe MASQUERADE' # masquerade traffic leaving
# the subnet
Au lieu de l'ancienne Configuration avec Portforwarding on veut utiliser la nouvelle, cela pourait être traduit comme ceci:
TARGET='<port>' NEW_TARGET='<ip>' PROTOCOL='<proto>'
PREROUTING_LIST_x='prot:<proto> dynamic:<port> DNAT:<ip>' TARGET='<port1>-<port2>' NEW_TARGET='<ip>' PROTOCOL='<proto>'
PREROUTING_LIST_x='prot:<proto> dynamic:<port1>-<port2> DNAT:<ip>' TARGET='<ip>:<port-a>' NEW_TARGET='<ip>:<port-b>' PROTOCOL='<proto>'
PREROUTING_LIST_x='prot:<proto> <ip>:<port-a> DNAT:<ip>:<port-b>'
Si on permet certains accès à Internet à travers un serveur un Proxy, on peut imposer cela à l'aide des variables Pre/Postrouting, sans que le Client ne remarque quelque chose.
En principe, trois étapes sont nécessaires:
1. Dans cet exemple: nous n'avons qu'un réseau IP_NET_1, un ordinateur a le Nom "proxy" sur lequel Squid fonctionne pour pouvoir diriger totalement Traffic http. Le Squid écoute sur le port 3128. Pour simplifier nous appellerons l'hôte "@proxy" et nous l'enregistrerons dans la variable HOST_1_NAME='proxy' (cf. Configuration Domaine)
Voici l'ensemble des paramètres:
PREROUTING_LIST_x='@proxy ACCEPT'
# les paquets du proxy ne doivent pas être déviés
PREROUTING_LIST_x='prot:tcp IP_NET_1 any:80 DNAT:@proxy:3128'
# les paquet http de IP_NET_1 sont transmis
# destination de @proxy sur le Port 3128
POSTROUTING_LIST_x='any @proxy:3128 SNAT:IP_NET_1_IPADDR'
# tous les paquets venant du Proxy par Port 3128 vont sur(IP_NET_1_IPADDR)
# comme s'ils venaient du routeur fli4l FORWARD_LIST_x='prot:tcp @proxy 80 ACCEPT'
# Proxy laisse passer les paquets http par la chaîne Forward (au besoin)
FORWARD_LIST_x='prot:tcp @proxy 80 ACCEPT' # la chaîne Forward laisse passer les paquet http du Proxy (si nécessaire)
S'il y a plusieurs réseaux, un conflit potentiel peut arriver avec d'autres Portforwarding (ce ne sont rien d'autre que des régles DNAT), on doit peut-être formuler encore plus étroitement les règles.
2. Exemple: Notre Proxy au nom de "proxy" se trouve dans IP_NET_1, écoute sur le port 3128 et doit être efficace seulement pour des clients IP_NET_1 et est accessible sur IP_NET_1_DEV. Les paquets des réseaux supplémentaires ne doivent pas être pris en considération.
PREROUTING_LIST_x='if:ip_net_1_dev:any !@proxy 80 DNAT:@proxy:3128' # Anfragen an den http Port, die nicht vom proxy aber über ein # internes Interface (ip_net_1_dev) kommen, an den Proxy Port umleiten # An dieser Stelle ist es wichtig, mit if:ip_net_1_dev:any zu # überprüfen ob die Pakete von innen kommen da sonst auch Pakete von außen # umgeleitet werden würden (Sicherheitslücke) POSTROUTING_LIST_x='prot:tcp IP_NET_1 @proxy:3128 SNAT:IP_NET_1_IPADDR' # tous les paquets venant du Proxy par Port 3128 vont sur(IP_NET_1_IPADDR) # comme si ils venaient du routeur fli4l FORWARD_LIST_x='prot:tcp @proxy 80 ACCEPT' # Proxy laisse passer les paquets http par la chaîne Forward (au besoin)
3. Exemple: Pour se faciliter la vie et utiliser plus facilement les variables appropriées tmpl:http, on peut utiliser des "Templates" (cf. Templates im Paketfilter), .
tmpl:http devient 'prot:tcp any any:80' et on peut écrire la variable 'tmpl:http IP_NET_1 DNAT:@proxy:3128' 'prot:tcp IP_NET_1 80 DNAT:@proxy:3128'
IP_NET_1 et IP_NET_2 doivent être transparents et déviées par le Proxy. On pourrait écrire simplement:
PREROUTING_LIST_x='tmpl:http @proxy ACCEPT'
# les paquets http ne doivent pas être déviés
PREROUTING_LIST_x='tmpl:http IP_NET_1 DNAT:@proxy:3128'
# les paquets http de IP_NET_1 doivent être déviés
PREROUTING_LIST_x='tmpl:http IP_NET_2 DNAT:@proxy:3128'
# les paquets http de IP_NET_2 doivent être déviés
POSTROUTING_LIST_x='IP_NET_1 @proxy:3128 SNAT:IP_NET_1_IPADDR'
FORWARD_LIST_x='tmpl:http @proxy ACCEPT'
On pourrait continué à l'infini…
Fli4l permet aussi la construction d'une simple DMZ. La condition est, que sur le Routeur il y ait trois interfaces, une pour WAN (interface rouge), une pour la DMZ (interface orange) et une pour le réseau local (interface verte). La configuration de la DMZ est décrite ci-après.
Cette communication est tout à fait ordinaire la configuration est décrite ci-dessus.
Des réseaux verts peuvent communiquer librement avec des ordinateurs du réseau orange. Les ordinateurs du réseau orange ne doivent rien voir de la structure du réseaux verts les connexions semblent toutes partir de l'interface orange du Routeur (SNAT).
Les ordinateurs du sous réseau orange ne peuvent pas établir de connexion à l'intérieur des réseaux verts. Seuls les paquets qui font partie des ordinateurs du réseau vert peuvent se connecter et passer.
Les connexions de l'interface rouge au réseau orange peuvent être installées par Portforwarding. Les services qui y seront mentionnés seront accessibles par WAN (Wide Area Network). Les paquets qui font partie d'une telle connexion, sortirons du réseau orange en direction du net masqués, l'interface rouge reçevras les Adresses IP de celle-ci.
Les autres paquets quittant le Sous réseau orange, doivent être configurés dans la variable DMZ_ORANGE_RED_x.
Les ordinateurs du réseau orange peuvent utiliser les services choisis sur le Router ils seront configurés dans la variable DMZ_ORANGE_ROUTER_x.
Les types de sous-réseaux sont décrits par leur couleur. La variable IP_NET_x_TYPE sera rajoutée juste en dessous de la variable IP_NET_1_DEV. Les autres paramètres sont définis dans les variable DMZ_*.
Si la configuration DMZ est active.
Définit aux types de Subnetz. Les valeurs permises sont 'green' et 'orange'. Si cette variable est vide, le réseau est ignoré sur la configuration DMZ.
Interface pour accéder à Internet.Ils peuvent être indiqué: pppoe pour une interface dsl , ppp <index> pour ppp-Device, ippp + pour des interfaces isdn, IP_NET_x_DEV ou ETHx pour les interfaces réseaux.
Si dans la DMZ on utilise des adresses IP privées, Routeur doit masquer ceci par DMZ_NAT ='yes' active le masquerade.
Définit les relations qui peuvent être développées sur le sous-réseau orange. La syntaxe correspond à la syntaxe du filtrage dse paquets.
Définit les services du Routeur qui peuvent être demandés par le sous-réseau orange. La syntaxe correspond à la syntaxe du filtrage de paquets.
Enregistre les paquets rejetés dans un fichier log (ou journal).
Un petit exemple avec un Serveur Web (http), un serveur Mail (smpt) et un Web-Proxy dans la DMZ, il pourrait ressembler à ceci:
IP_NET_N='3' IP_NET_1_DEV='eth0' IP_NET_1='192.168.6.1/24' IP_NET_1_TYPE='green' IP_NET_2_DEV='eth1' IP_NET_2='192.168.7.1/24' IP_NET_2_TYPE='green' IP_NET_3_DEV='eth3' IP_NET_3='192.168.8.1/24' IP_NET_3_TYPE='orange' OPT_DMZ='yes' DMZ_NAT='yes' DMZ_LOG='yes' DMZ_RED_DEV='ppp0' DMZ_ORANGE_RED_N='2' DMZ_ORANGE_RED_1='prot:tcp 80 ACCEPT' # allow access to http DMZ_ORANGE_RED_2='prot:tcp 25 ACCEPT' # allow access to smtp DMZ_ORANGE_ROUTER_N='1' DMZ_ORANGE_ROUTER_1='53 ACCEPT' # accept dns requests PORTFW_N='2' PORTFW_1_TARGET='80' # forward http PORTFW_1_NEW_TARGET='192.168.8.2' # ...to dmz host 192.168.8.2 PORTFW_1_PROTOCOL='tcp' # ...using tcp PORTFW_2_TARGET='25' # forward smtp PORTFW_2_NEW_TARGET='192.168.8.3' # ...to dmz host 192.168.8.3 PORTFW_2_PROTOCOL='tcp' # ...using tcp
Pour certain protocole Internet, il est parfois nécessaire de réorienter une connexion réseau externe (internet) vers un ordinateur du réseau interne. Si le réseau est masqué vers l'extérieur avec (IP-Masquerading), c-à-d. qu'il y ait seulement une Adresse IP officielle disponible pour le réseau local, les ports déterminés ou des protocoles doivent être accessibles de l'extérieur par un ordinateur interne déterminé. On appelle ceci du Port-Forwarding (ou redirection de port) (plus généralement Tranlation d'Adresse Réseau de Destination, DNAT). Le caractère problématique du port forwarding est déjà décrite dans la variable MASQ_MODULE_N.
Souvent avec les jeux, ftp, irc, peer-to-peer, des communications téléphoniques par Internet, ces ports doivent être librement ouverts. On ne peut pas résoudre ce problème avec le Module Masquerade, mais on peut configurer soi-même les directions des Ports.
On indique ici, le nombre de Port à transmettre. ils seront définis dans ces variables PORTFW_x_TARGET, PORTFW_x_NEW_TARGET et PORTFW_x_PROTOCOL .
Les paquets sont dirigés vers une destination déterminée (normalement une Adresse IP et un port) et appartiennent à un protocole spécifique. Cette destination est derrière le routeur donc le réseau est masqué les paquets doivent lui être expédiés.
On indique le port dans cette variable PORTFW_x_TARGET les paquets qui arrivent sur le routeur par ce numéro de port seront transmis à son destinataire.
On configure toujours la source par une Adresse IP on peut y rajouter le Port et éventuellement un protocole. Les Routeur qui on un adressage IP Dynamique ne peut pas être configuré car leur IP est inconnue. Port Forwarding est seulement configuré aprés le démarrage et la connexion du routeur.si l'Adresse IP du Routeur est connu, les paquets arrivent toujours sur le routeur, puis ils sont adressés à IP Dynamique attribués.
Contrairement à la chaîne Forwarding l'adresse IP déjà connue au boot (ou démarrage).
Important: les Routeurs avec une Adresse IP statique doivent être
indiquée ici, autrement le Port-Forwarding ne sera pas réglé correctement et aura un problème d'accés.
Les formats suivants sont possibles:
PORTFW_x_TARGET='<port>'
Tous les paquets (d'internet) qui arrivent sur le port <port> sont transmis à un autre ordinateur du réseau local
PORTFW_x_TARGET='<port1>-<port2>'
Tous les paquets (d'internet) qui arrivent sur l'ensemble de ports <port1> et <port2> sont transmis à un autre ordinateur du réseau local
PORTFW_x_TARGET='<ip>:<port>' ou PORTFW_x_TARGET='<ip>:<port1>-<port2>'
Tous les paquets (d'internet) qui arrivent de l'Adresse IP <IP> et avec le port <port> ou sur l'ensemble des ports <port1> et <port2> sont transmis à un autre ordinateur local. L'Adresse IP locale peut être écrite avec le Nom qui est indiqué de ces variables HOST_x_NAME / HOST_x_ALIAS_x ou référencé dans IP_NET_x (avec cette variable le réseau est entier) ou dans IP_NET_x_IPADDR (IP contenus ici est unique IP du routeur).
PORTFW_x_TARGET='<circuit>:<port>'
Tous les paquets (d'internet) qui arrivent du Circuit <circuit> et avec le port <port> sont transmis à un autre ordinateur du réseau local. Le <circuit> est le numéro du circuit RNIS (ou ISDN) ou "pppoe" pour une connexion DSL (voir le paquetage DSL).
PORTFW_x_TARGET='none'
Pas de restriction sur la source. Tous les paquets qui arrivent sur le Routeur et qui font partie du protocole indiqué dans la variable PORTFW_x_PROTOCO sont transmis à un autre ordinateur du réseau local.
PORTFW_x_TARGET='<ip>:none'
Tous les paquets (d'internet) qui arrivent de IP <IP> , sans restriction sur la source sur le Routeur et qui font partie du protocole indiqué dans la variable PORTFW_x_PROTOCO sont transmis à un autre ordinateur du réseau local.
Cette variable indique la destination d'un Port-Forwardings. Cela est généralement un autre ordinateur dans le réseau interne (ou local). Les formats sont les suivants:
PORTFW_x_NEW_TARGET='<ip>'
Transmet les paquets reçus dans le routeur à l'Adresse IP <IP> de l'ordinateur du réseau local. IP locale peut être indiqué avec le nom de ces variables HOST_x_NAME / HOST_x_ALIAS_x ou référencé dans IP_NET_x (avec cette variable le réseau est entier) ou dans IP_NET_x_IPADDR (IP contenus ici est unique IP du routeur).
PORTFW_x_NEW_TARGET='<ip>:<port>'
Transmet les paquets reçus dans le routeur à l'Adresse IP <IP> et au Port <port> à l'ordinateur du réseau local, dans cette variable on ne peut pas utiliser un ensemble de port <port1>-<port2> IP local peut être indiqué avec le nom de ces variables HOST_x_NAME / HOST_x_ALIAS_x ou référencé dans IP_NET_x (avec cette variable le réseau est entier) ou dans IP_NET_x_IPADDR (IP contenus ici est unique IP du routeur).
Dans cette variable les protocoles utilisés sont "tcp", "udp", "gre" plus les numéros de protocole autorisés voir la liste des numéros de protocole de IANA ici http://www.iana.org/assignments/protocol-number .
La possibilité de placer vos propres règles dans un Script spécial existe dans les anciennes versions. Cette possibilité n'existe plus depuis la version fli4l 2.1.0, parce que le Script interférerait avec les variables construites dans Port-Forwarding en plus on aurait aucune garanti de fonctionnement
J'ai placé un Script sur ma page d'accueil qui convertit les règles au format de configuration de fli4l. Par exemple les Port-Forwarding-Scripts de l'ancienne versions fli4l peuvent ainsi être transformés en nouveau format:
http://portfolio16.de/fli4l/portfw.pl
Maintenant avec le Client imonc de Windows ou avec le service web httpd, il est possible de modifier les variables ports Forwarding pendant le fonctionnement du Routeur et d'envoyer les variables sur celui-ci en arrière plan.
L'avantage de l'IP Masquerade est que plusieurs ordinateurs peuvent se connecter à internet avec une Adresse IP officielle fournie par votre FAI (Fournisseur Accé Internet) mais il y a également des inconvénients.
Par exemple le plus gros problème est qu'aucun ordinateur externe (internet) ne pourra accéder à un ordinateur du réseau local. C'est un phénomène qui est catégoriquement voulu pour des raisons de sécurité, mais certains protocoles ne fonctionnent plus, parce qu'ils dépendent des connexions extérieures.
Un exemple classique est le serveur ftp. En plus d'une voie de transmission qui est utilisée pour les échanges de commandes, un autre canal (sous la forme d'un port IP) est utilisé, pour expédier les données réelles. FLI4L utilise les modules masquerading spécifiques pour alimenter les ports qui sont employés dans ce genre de connexion "ad hoc" ces ports sont seulement permis si des données doivent être envoyées à l'ordinateur LAN (réseau interne). Pourtant le module masquerading écoute les flux de données pour savoir si un port supplémentaire est nécessaire.
Les demandes typiques des modules masquerading sont des protocoles pour des sites de discussion (chat) et pour les jeux sur Internet.
Jusqu'ici le module masquerading de ftp est chargé automatiquement dans fli4l. Il y a d'autre modules additionnels disponibles. Ils peuvent être utilisés avec des options supplémentaires dans MASQ_MODULE_OPTION. Cela est nécessaire par exemple lorsqu'un serveur FTP doit être appelé avec un port autre que le 21. Ici un aperçu des modules avec leurs paramètres standard, les valeurs par défaut sont fixées à l'avance:
Un maximum de 12 ports peuvent être paramètrés dans la liste de ports.
Naturellement vous ne pouvez pas programmer un module masquerading pour chaque protocole qui utilise des ports supplémentaires. Par conséquent, il y a une autre possibilité pour expédier de nouveaux ports à un ordinateur LAN (réseau interne). Voir la description au sujet du Port Forwarding ici PORTFW_N. Ou ici: http://www.fli4l.de FAQ au sujet du Port Forwarding.
Configuration des variables:
MASQ_MODULE_N nombre de variable masquerading à charger. MASQ_MODULE_x variable masquerading "x" unité de module à chargé. Dans la variable MASQ_MODULE_x_OPTION on indique les paramètres optionnels. Les paramètres décrits plus haut, peuvent être indiqués séparément.
Par défaut MASQ_MODULE_N est à "1" . Cela signifie: que la première variable masquerading "ftp" sera chargée. Si vous voulez charger plus de variables, vous devrez incrémenter MASQ_MODULE_N. La configuration dans le fichier config/base.txt est uniquement mentionné comme exemple. Vous pouvez la modifier selon vos besoins personnels.
Exemple:
MASQ_MODULE_N='1'
MASQ_MODULE_1='ftp'
MASQ_MODULE_1_OPTION='ports=21,2121'
MASQ_MODULE_2='irc'
MASQ_MODULE_2_OPTION=''
Le contenu supplémentaire de MASQ_MODULE_x sera simplement ignoré.
Dans cet exemple le Module FTP est paramétré.
Das Fli4l-Team