|
|
|
|
Bonjour,
J'ai installé un firewall sur la configuration précisée plus bas. J'ai utilisé firewall builder (http://www.fwbuilder.org) qui me génère un script qui configure mes règles pour IPTABLES.
J'ai une carte réseau relié à un modem ADSL Ethernet.
J'ai configuré le démon pppd via le script adsl-setup (configuration d'une connexion pppoe)
L'adresse ip de l'interface ppp0 (DHCP) change toutes les jours (wanadoo). A chaque fois qu'elle change, la connexion s'arrête et se relance. Or pour que mon firewall continu de fonctionner, il faut relancer le script avec les commandes IPTABLES. Sinon plus de connexion internet pour le réseau local.
Je pensais utliser le fichier /etc/ppp/ip-up (j'ai rajouté à la fin de ce fichier une ligne pour relancer mon script) mais celui-ci ne s'éxécute jamais.
Bizarrement j'ai configuré un deuxième firewall à l'identique pour un autre site avec une slackware 10.1 (même configuration materiel que le premier) et lui fonctionne très bien.
Je ne sais pas quoi faire, le script ip-up peut être éxecuté par tous les utilisateurs ainsi que le script pour IPTABLES.
Si quelqu'un à une idée, elle est la bienvenue.
Merci encore.
▀▄▀▄▀▄
Configuration: PIII 350Mhz 128Mo de ram
2 cartes réseaux Realtek 8139
Slackware 9.1
Je pensais utliser le fichier /etc/ppp/ip-up (j'ai rajouté à la fin de ce fichier une ligne pour relancer mon script) mais celui-ci ne s'éxécute jamais.
0.0.0.0/0 comme "numero IP" de ton pc. Avec une telle modification ton script va marcher pour tout numero IP et il suffit de ne le lancer qu'une fois au boot. Ca marche aussi si c'est lance avant la connexion pppoe. A mon avis ton firewall Slackware doit exactement faire ca (plus precisement il ne contient pas la restriction). Pour donner un exemple, regarde le script firewall ici: http://www.tldp.org/HOWTO/IP-Masquerade-HOWTO/stronger-firewall-examples.html#RC.FIREWALL-2.4.X-STRONGER Ce script fait firewall et le partage de la connexion pour d'autre pcs branche a lui (il active le protocole NAT, mais ce n'est pas important ici). Avec ce script tu aurais le meme probleme car il utilise la meme restriction pour ton numero IP et le script determine automatiquement le numero IP. Seul petit probleme, il faut l'executer apres avoir demarre la connexion et si le numero IP change (par exemple avec DHCP) il le faut reexecuter. Par contre si dans ce script tu mets manuellement au bon endroit EXTIP=0.0.0.0/0 ca va marcher pour tous les numeros IPs et les problemes avec ppp0 ou DHCP seront resolus. Moi je ne vois pas comment cette modif pourrait reduire l'efficacite du firewall (peut-etre quelqu'un peut m'expliquer si j'ai rate quelque chose ?). Tu peux essayer la meme chose avec ton script.
|
As-tu déjà mis en pratique cette solution ? J'ai un peu de mal à comprendre ce que ça donnerait d'appliquer les règles (normalement écrites pour l'adresse IP de ppp0) à l'adresse IP 0.0.0.0/0
|
Bon, j'ai testé la solution.
|
(bloqué par la dernière règle du firewall : bloque tout de ANY à destination de ANY). En tant normal ma première règle est autorise les requête DNS de MonFirewall à destination de ANY. Cette règle n'est plus reconnu quand je met en place la solution.
|
Bonjour,
# Rule 4(global) # echo "Rule 4(global)" # test -n "$i_ppp0" && $IPTABLES -A OUTPUT -s $i_ppp0 -m state --state NEW -j ACCEPT $IPTABLES -A OUTPUT -s 192.168.0.2 -m state --state NEW -j ACCEPT $IPTABLES -A OUTPUT -s 10.0.0.10 -m state --state NEW -j ACCEPT En fait en début de code j'ai initialisé la variable ip_ppp0 à 0.0.0.0. J'ai même fait un affichage pour être sur : getaddr ppp0 i_ppp0 echo $i_ppp0 i_ppp0="0.0.0.0" echo $i_ppp0 La fonction getaddr récupère l'@IP de ppp0 et la stock dans i_ppp0 Voilà en espérant y voir plus claire. ▀▄▀▄▀▄ |
D'abord ci-dessus j'ai mis:
0.0.0.0/0 et non: "0.0.0.0" !!!! Le truc: "/0" a la fin est tres important pour que ca marche! C'est ca qui fait le "joker". Je crois avec ca, ca devrait fonctionner. Donc il te faut mettre dans ton script: getaddr ppp0 i_ppp0 echo $i_ppp0 i_ppp0="0.0.0.0/0" echo $i_ppp0 Apart ca quelques commentaire de ma part: J'ai vu qu'il s'agit d'une regle d'OUTPUT donc pour la direction sortant. Normalement pour un firewall simple on peut completement ouvrir pour l'OUTPUT. Si on ne le fait pas ca revient a dire qu'on ne peut pas faire confiance a son propre pc Linux. En Windows on controle cette direction pour cause de spywares, et virus difficilement controlable sur son propre Pc. En Linux on peut aussi faire ce genre de filtrage mais c'est quand-meme un peu la paranoia. Par contre la direction importante a fermer et controler c'est la direction entrant, l'INPUT, et bien-sur aussi la chaine FORWARD pour controler ce que font les pcs derriers ton routeur NAT. Apres pour l'option "-s $i_ppp0" qui fait la restriction pour le numero IP (qui peut changer), a mon avis c'est mieux de mettre plutot un truc comme "-o ppp0" (pour l'OUTPUT) ou "-i ppp0" (pour l'INPUT), c.-a-d. de selectionner avec le device reseau comme ppp0 pour la connexion internet et eth0 pour le reseau local etc. C'est comme ca que tu peux faire certains regles pour la direction internet (entrant/sortant comme on veut) et d'autres regles pour la direction sous-reseau. De toute facon c'est le "fwbuilder" qui te cree ce genre de regles. Regarde un peu le script exemple dont j'ai donne le lien dans mon 1er poste. La dedans c'est principalement fait avec les devices reseau. Je crois moi personnellement je changerais considerablement le script de fwbuilder mais tant ca fonctionne bien pour toi il n'y a pas de vraies raisons pour toi de le faire. Pour resdoudre ton probleme, il te suffit de mettre "0.0.0.0/0" au lieu de "0.0.0.0" et ca ira. |
Bonjour,
83.x.x.x 0.0.0.0 Activating firewall script generated Thu Apr 14 Rule 0(NAT) Rule 1(NAT) Rule 2(NAT) Rule 0(lo) Rule 0(global) Rule 1(global) Rule 2(global) Rule 3(global) Rule 4(global) Rule 5(global) La première adresse qui s'affiche est celle de l'interface ppp0 avant changement du code. Il n'est pas spécifié de masque réseau "/x" à la fin de l'adresse. C'est pourquoi je pensais qu'il ne fallait pas le mettre. Et en essayant les deux solutions on obtient un "meilleur" résultat avec i_ppp0="0.0.0.0" "pour un firewall simple on peut completement ouvrir pour l'OUTPUT. Si on ne le fait pas ca revient a dire qu'on ne peut pas faire confiance a son propre pc Linux. En Windows on controle cette direction" J'ai confiance en mon firewall sous linux, mais c'est dans les postes windows du réseau local que je n'ai pas confiance (un peu trop bavards). Sinon la solution à mon probème est normalement le script ip-up ou ip-up.local mais que ce soit avec l'un ou l'autre ou les deux, j'ai l'impression qu'ils ne se lancent jamais. ▀▄▀▄▀▄ |
Quand j'initialise la variable i_ppp0 à "0.0.0.0/0" plus aucune règle n'est reconnue.
/sbin/iptables -L -v l'ensemble de toutes tes regles ca affiche un truc "anywhere" au lieu du numero IP si on a mis "0.0.0.0/0". C'est normal. Donc pour faire marcher ton truc sur le plan pratique, tu peux garder le "0.0.0.0" et en plus tu modifies seulement la ligne specifique qui a cause le probleme (pour le DNS), par exemple dans ton script je proposerais simplement: # Rule 4(global) # echo "Rule 4(global)" # test -n "$i_ppp0" && $IPTABLES -A OUTPUT -o ppp0 -m state --state NEW -j ACCEPT $IPTABLES -A OUTPUT -s 192.168.0.2 -m state --state NEW -j ACCEPT $IPTABLES -A OUTPUT -s 10.0.0.10 -m state --state NEW -j ACCEP ici j'ai remplace dans ligne test le "-s $i_ppp0" par "-o ppp0", c.-a-d. cette regle n'exige plus de numero IP specifique mais le device reseau ppp0 (donc elle ne marche pas vers le sous-reseau avec eth0). Mais tu peux aussi enlever le "-o ppp0" et comme ca ouvrir aussi vers le sous-reseau si tu le veux. Je pense l'un et l'autre devrais suffir pour toi meme si ce n'est pas tres elegant. J'ai confiance en mon firewall sous linux, mais c'est dans les postes windows du réseau local que je n'ai pas confiance (un peu trop bavards). Pour les postes Windows ce sont uniquement les regles avec la chaine FORWARD qui s'appliquent. La chaine OUTPUT est uniquement pour ton pc linux. Je suppose avec ton script tu dois avoir de regles FORWARD assez restrictives pour bien controler ca. |
Bonjour,
|