Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Openwrt freewifi iptables firewall configuration


Messages recommandés

Posté(e)

Bonjour,

 

J'essaye de configurer un routeur Linksys WRT54GL qui tourne sous openwrt, afin que ce dernier fonctionne en mode client wifi pour se connecter sur des points d'accès wifi.

 

L'objectif est de pouvoir utiliser le routeur afin de se connecter sur des points d'accès wifi.

En effet dans certains cas ou le signal est perturbé, ou bien lorsqu'il y a un même reseau sur plusieurs canaux ca marche pas top.

Et puis plutôt que de brancher un PC directement sur le réseau l'idée serait que ce soit le routeur qui soit branché, qu'il fasse du NAT et du firewalling.

Mais voila il faudrait qu'il soit bien configuré pour cela

 

Pourquoi poster ici ?

 

J'aurai besoin d'aide sur la partie iptables .

 

J'ai bien posté chez openwrt mais il n'y a pas trop de réponses. Or je vois que dans ce forum il y a des gens et le modérateur qui sont actifs en iptables, et c'est la compétence dont j'ai besoin.

 

le post total ce trouve sur https://forum.openwrt.org/viewtopic.php?id=23510

Pour résumé donc, je dispose d'un réseau lan en filaire, d'un reseau WAN filaire que je ne souhaite pas utiliser, et du reseau wifi que j'ai nommé wifan qui tourne sur l'interface wl0.

Le wifi est en mode client et va se connecter au reseau freewifi par script.

 

Le "freewifi" correspond au réseau de l'opérateur français free qui va m'allouer une IP public internet dédié. Qui dit IP public internet dit exposition au risque et donc mieux vaudrait un bon niveau de protection et de configuration. Bref j'ai besoin de passer les bonnes commandes iptables pour verrouiller toute tentative d'entrée par l'IP wifi.

 

J'ai un peu essayé de faire des tests d'intrusions ainsi que des tests de nmap. La configuration iptables est au dela de mon niveau actuel en iptables, mais je dispose de connaissance suffisante pour savoir qu'il peut y avoir un soucis et que j'aimerai trouver quelqu'un d'un niveau suffisant pour verifier si j'ai les bonnes commandes ou pas.

 

En gros pour l'instant j'ai trouvé deux moyens :

1. verrouiller chaque port qu'un scanner externe m'a déclaré ouvert avec

 iptables --append input_rule --protocol tcp --dport  $port --jump DROP

mais le hic est que l'on ne peux plus piloter le routeur après, et que je repose sur le site de test pour la liste des ports, d'ou un risque de faille residuel

 

 

 

2. verrouiller l'interface avec

iptables -I INPUT -i wl0 -j DROP

, et la je me sens plus confiant car pas port par port, mais le hic est que depuis le pc qui est derriere le routeur j'arrive encore a me connecter en SSH et http sur l'ip public wifi, meme si le site de test de pénétration externe me dit que je suis safe, j'ai un doute raisonnable sur il y reste un trou ou pas. J'ai tenté un full nmap depuis un autre pc en freewifi sans que cela ne revele rien, mais j'ai pu ne pas passer les bonnes commandes de test, et comme j'arrive a me connecter j'ai un doute qui reste.

 

 

 

Cher iptables guru(ssss) j'apprécierai un peu d'aide et ca servira a d'autres (enfin j'espère) .

Qu'elle est / serait la bonne commande a passer, soit dans ce que j'ai trouvé ou sinon autre, et quelles explications auriez vous sur les comportements decrits ?

Posté(e)
1. verrouiller chaque port qu'un scanner externe m'a déclaré ouvert avec
 iptables --append input_rule --protocol tcp --dport  $port --jump DROP

mais le hic est que l'on ne peux plus piloter le routeur après, et que je repose sur le site de test pour la liste des ports, d'ou un risque de faille residuel

Surtout, le hic c'est que tu vas te casser le tronc à faire du cas-par-cas et oublier de verrouiller le jour où (au hasard) tu vas installer VNC Server sur ta machine...

Tu devrais plutôt mettre une Policy à DROP et ne forwarder que les ports dont tes services ont besoin au cas-par-cas (parce que là tu es certain de ne pas oublier !).

Quelle est cette chaîne "input_rule" ?

 

2. verrouiller l'interface avec
iptables -I INPUT -i wl0 -j DROP

, et la je me sens plus confiant car pas port par port, mais le hic est que depuis le pc qui est derriere le routeur j'arrive encore a me connecter en SSH et http sur l'ip public wifi, meme si le site de test de pénétration externe me dit que je suis safe, j'ai un doute raisonnable sur il y reste un trou ou pas.

"et là" tu es surtout incapable d'accéder à quoi que ce soit sur ton PC depuis le côté WiFi parce que tout paquet qui aurait la mauvaise idée de rentrer serait ignoré...

Le PC qui est derrière le routeur envoie des paquets qui ne correspondent pas à cette règle-là (vu qu'il n'est pas côté wl0) donc il est normal que, même en utilisant l'IP publique (que le routeur reconnaît comme étant la sienne et qu'il traduit donc par "localhost"... tu croyais que parce que tu utilises l'IP publique les paquets de données allaient prendre l'air sur Internet avant de revenir en WiFi ??) tu puisses toujours accéder à tes services, mais que plus rien ne passe depuis l'extérieur.

 

Si on pouvait reprendre depuis le début, ça m'arrangerait :

- quelles sont TOUTES les règles que tu utilises sur ton routeur ? (si on n'est pas exhaustifs et si l'ordre n'est pas le bon, ça change tout. Donc il faut qu'on puisse être certains de l'état de départ, Policy / NAT / port forwarding et le reste)

- quels sont les services qui tournent sur ton PC et que tu veux laisser accessibles depuis l'extérieur ?

- est-ce que tu veux également verrouiller le NAT de telle façon que ton PC n'ait accès qu'à certaines choses - HTTP, HTTPS, FTP, SSH, MSN Messenger et quelques rares autres ? Ou bien, est-ce inutile parce que tu as déjà un firewall sur ton PC pour filtrer ce qui en "sort" ?

Posté(e)
Si on pouvait reprendre depuis le début, ça m'arrangerait :

- quelles sont TOUTES les règles que tu utilises sur ton routeur ? (si on n'est pas exhaustifs et si l'ordre n'est pas le bon, ça change tout. Donc il faut qu'on puisse être certains de l'état de départ, Policy / NAT / port forwarding et le reste)

- quels sont les services qui tournent sur ton PC et que tu veux laisser accessibles depuis l'extérieur ?

- est-ce que tu veux également verrouiller le NAT de telle façon que ton PC n'ait accès qu'à certaines choses - HTTP, HTTPS, FTP, SSH, MSN Messenger et quelques rares autres ? Ou bien, est-ce inutile parce que tu as déjà un firewall sur ton PC pour filtrer ce qui en "sort" ?

 

Je ne dispose d'aucune regle spécifique.

je ne souhaite rien publié sur internet ou rendre accessible. L'objectif est plutot le nomadisme et d'emepcher tout intrusion .

 

J'ai l'impression que la seconde option est celle que je recherche.

 

pour repondre au reste que faudrait il ? est ce que les fichiers fournit sur forum openwrt cité pus haut sont suffisant ?

 

 

sinon un iptables -L donne :

iptables -L
Chain INPUT (policy ACCEPT)
target	 prot opt source			   destination
DROP	   all  --  anywhere			 anywhere			state INVALID
ACCEPT	 all  --  anywhere			 anywhere			state RELATED,ESTABLISHED
ACCEPT	 all  --  anywhere			 anywhere
syn_flood  tcp  --  anywhere			 anywhere			tcp flags:FIN,SYN,RST,ACK/SYN
input_rule  all  --  anywhere			 anywhere
input	  all  --  anywhere			 anywhere

Chain FORWARD (policy DROP)
target	 prot opt source			   destination
zone_wan_MSSFIX  all  --  anywhere			 anywhere
zone_wifan_MSSFIX  all  --  anywhere			 anywhere
DROP	   all  --  anywhere			 anywhere			state INVALID
ACCEPT	 all  --  anywhere			 anywhere			state RELATED,ESTABLISHED
forwarding_rule  all  --  anywhere			 anywhere
forward	all  --  anywhere			 anywhere
reject	 all  --  anywhere			 anywhere

Chain OUTPUT (policy ACCEPT)
target	 prot opt source			   destination
DROP	   all  --  anywhere			 anywhere			state INVALID
ACCEPT	 all  --  anywhere			 anywhere			state RELATED,ESTABLISHED
ACCEPT	 all  --  anywhere			 anywhere
output_rule  all  --  anywhere			 anywhere
output	 all  --  anywhere			 anywhere

Chain forward (1 references)
target	 prot opt source			   destination
zone_lan_forward  all  --  anywhere			 anywhere

Chain forwarding_lan (1 references)
target	 prot opt source			   destination

Chain forwarding_rule (1 references)
target	 prot opt source			   destination

Chain forwarding_wan (1 references)
target	 prot opt source			   destination

Chain forwarding_wifan (1 references)
target	 prot opt source			   destination

Chain input (1 references)
target	 prot opt source			   destination
zone_lan   all  --  anywhere			 anywhere

Chain input_lan (1 references)
target	 prot opt source			   destination

Chain input_rule (1 references)
target	 prot opt source			   destination

Chain input_wan (1 references)
target	 prot opt source			   destination

Chain input_wifan (1 references)
target	 prot opt source			   destination

Chain output (1 references)
target	 prot opt source			   destination
zone_lan_ACCEPT  all  --  anywhere			 anywhere
zone_wifan_ACCEPT  all  --  anywhere			 anywhere
zone_wan_ACCEPT  all  --  anywhere			 anywhere

Chain output_rule (1 references)
target	 prot opt source			   destination

Chain reject (3 references)
target	 prot opt source			   destination
REJECT	 tcp  --  anywhere			 anywhere			reject-with tcp-reset
REJECT	 all  --  anywhere			 anywhere			reject-with icmp-port-unreachable

Chain syn_flood (1 references)
target	 prot opt source			   destination
RETURN	 tcp  --  anywhere			 anywhere			tcp flags:FIN,SYN,RST,ACK/SYN limit: avg 25/sec burst 50
DROP	   all  --  anywhere			 anywhere

Chain zone_lan (1 references)
target	 prot opt source			   destination
input_lan  all  --  anywhere			 anywhere
zone_lan_ACCEPT  all  --  anywhere			 anywhere

Chain zone_lan_ACCEPT (2 references)
target	 prot opt source			   destination
ACCEPT	 all  --  anywhere			 anywhere
ACCEPT	 all  --  anywhere			 anywhere

Chain zone_lan_DROP (0 references)
target	 prot opt source			   destination
DROP	   all  --  anywhere			 anywhere
DROP	   all  --  anywhere			 anywhere

Chain zone_lan_MSSFIX (0 references)
target	 prot opt source			   destination
TCPMSS	 tcp  --  anywhere			 anywhere			tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU

Chain zone_lan_REJECT (1 references)
target	 prot opt source			   destination
reject	 all  --  anywhere			 anywhere
reject	 all  --  anywhere			 anywhere

Chain zone_lan_forward (1 references)
target	 prot opt source			   destination
zone_wifan_ACCEPT  all  --  anywhere			 anywhere
forwarding_lan  all  --  anywhere			 anywhere
zone_lan_REJECT  all  --  anywhere			 anywhere

Chain zone_wan (0 references)
target	 prot opt source			   destination
ACCEPT	 udp  --  anywhere			 anywhere			udp dpt:68
input_wan  all  --  anywhere			 anywhere
zone_wan_REJECT  all  --  anywhere			 anywhere

Chain zone_wan_ACCEPT (1 references)
target	 prot opt source			   destination

Chain zone_wan_DROP (0 references)
target	 prot opt source			   destination

Chain zone_wan_MSSFIX (1 references)
target	 prot opt source			   destination

Chain zone_wan_REJECT (2 references)
target	 prot opt source			   destination

Chain zone_wan_forward (0 references)
target	 prot opt source			   destination
forwarding_wan  all  --  anywhere			 anywhere
zone_wan_REJECT  all  --  anywhere			 anywhere

Chain zone_wifan (0 references)
target	 prot opt source			   destination
ACCEPT	 udp  --  anywhere			 anywhere			udp dpt:68
input_wifan  all  --  anywhere			 anywhere
zone_wifan_REJECT  all  --  anywhere			 anywhere

Chain zone_wifan_ACCEPT (2 references)
target	 prot opt source			   destination

Chain zone_wifan_DROP (0 references)
target	 prot opt source			   destination

Chain zone_wifan_MSSFIX (1 references)
target	 prot opt source			   destination

Chain zone_wifan_REJECT (2 references)
target	 prot opt source			   destination

Chain zone_wifan_forward (0 references)
target	 prot opt source			   destination
forwarding_wifan  all  --  anywhere			 anywhere
zone_wifan_REJECT  all  --  anywhere			 anywhere

:

 

A priori sinon si je remplace iptables par echo iptables dans le fichier ca donne

 

fw_init
Loading defaults
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -F
iptables -t nat -F
iptables -t nat -X
iptables -X
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
Loading synflood protection
iptables -N syn_flood
iptables -A syn_flood -p tcp --syn -m limit --limit 25/second --limit-burst 50 -j RETURN
iptables -A syn_flood -j DROP
iptables -A INPUT -p tcp --syn -j syn_flood
Adding custom chains
iptables -N input_rule
iptables -N output_rule
iptables -N forwarding_rule
iptables -N prerouting_rule -t nat
iptables -N postrouting_rule -t nat
iptables -A INPUT -j input_rule
iptables -A OUTPUT -j output_rule
iptables -A FORWARD -j forwarding_rule
iptables -A PREROUTING -t nat -j prerouting_rule
iptables -A POSTROUTING -t nat -j postrouting_rule
iptables -N input
iptables -N output
iptables -N forward
iptables -A INPUT -j input
iptables -A OUTPUT -j output
iptables -A FORWARD -j forward
iptables -N reject
iptables -A reject -p tcp -j REJECT --reject-with tcp-reset
iptables -A reject -j REJECT --reject-with icmp-port-unreachable
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -A FORWARD -j reject
iptables -P FORWARD DROP
Loading zones
iptables -N zone_lan
iptables -N zone_lan_MSSFIX
iptables -N zone_lan_ACCEPT
iptables -N zone_lan_DROP
iptables -N zone_lan_REJECT
iptables -N zone_lan_forward
iptables -A zone_lan_forward -j zone_lan_REJECT
iptables -A zone_lan -j zone_lan_ACCEPT
iptables -A output -j zone_lan_ACCEPT
iptables -N zone_lan_nat -t nat
iptables -N zone_lan_prerouting -t nat
iptables -N input_lan
iptables -N forwarding_lan
iptables -N prerouting_lan -t nat
iptables -I zone_lan 1 -j input_lan
iptables -I zone_lan_forward 1 -j forwarding_lan
iptables -I zone_lan_prerouting 1 -t nat -j prerouting_lan
iptables -N zone_wifan
iptables -N zone_wifan_MSSFIX
iptables -N zone_wifan_ACCEPT
iptables -N zone_wifan_DROP
iptables -N zone_wifan_REJECT
iptables -N zone_wifan_forward
iptables -A zone_wifan_forward -j zone_wifan_REJECT
iptables -A zone_wifan -j zone_wifan_REJECT
iptables -A output -j zone_wifan_ACCEPT
iptables -N zone_wifan_nat -t nat
iptables -N zone_wifan_prerouting -t nat
iptables -t nat -A POSTROUTING -j zone_wifan_nat
iptables -I FORWARD 1 -j zone_wifan_MSSFIX
iptables -N input_wifan
iptables -N forwarding_wifan
iptables -N prerouting_wifan -t nat
iptables -I zone_wifan 1 -j input_wifan
iptables -I zone_wifan_forward 1 -j forwarding_wifan
iptables -I zone_wifan_prerouting 1 -t nat -j prerouting_wifan
iptables -N zone_wan
iptables -N zone_wan_MSSFIX
iptables -N zone_wan_ACCEPT
iptables -N zone_wan_DROP
iptables -N zone_wan_REJECT
iptables -N zone_wan_forward
iptables -A zone_wan_forward -j zone_wan_REJECT
iptables -A zone_wan -j zone_wan_REJECT
iptables -A output -j zone_wan_ACCEPT
iptables -N zone_wan_nat -t nat
iptables -N zone_wan_prerouting -t nat
iptables -t nat -A POSTROUTING -j zone_wan_nat
iptables -I FORWARD 1 -j zone_wan_MSSFIX
iptables -N input_wan
iptables -N forwarding_wan
iptables -N prerouting_wan -t nat
iptables -I zone_wan 1 -j input_wan
iptables -I zone_wan_forward 1 -j forwarding_wan
iptables -I zone_wan_prerouting 1 -t nat -j prerouting_wan
Loading forwarding
iptables -I zone_lan_forward 1 -j zone_wifan_ACCEPT
Loading redirects
Loading rules
iptables -I zone_wan 1 -p udp --dport 68 -j ACCEPT
iptables -I zone_wifan 1 -p udp --dport 68 -j ACCEPT
Loading includes

Posté(e)

Vite fait, je vois plusieurs problèmes :

1) très tôt dans ton fichier tu ajoutes une règle sur la chaîne INPUT qui renvoie tous les paquets dans la chaîne input_rule (toutes les règles suivantes sur INPUT sont donc inutiles parce qu'elles ne seront jamais évaluées, en particulier celle qui renvoie sur la chaîne "input")

2) tu redéfinis les POLICY en cours de route (ce qui aurait pu être sécurisé avec une politique DROP par défaut se retrouve complètement ouvert parce que finalement la POLICY devient ACCEPT)

3) tu as énormément de chaînes mais beaucoup sont totalement vides et certaines ne sont même jamais atteintes (voir le point 1)

4) le nommage des chaînes prête à confusion (input et input_rule, en plus de la chaîne par défaut INPUT ? Comment tu t'y retrouves ?)

Posté(e)

C'est super sympa de relire avec autant de detail, mais je crains que l'on s'éloigne du sujet initial.

Pour rappel, cette serie de commande est l'execution du script de la distribution openwrt (/lib/firewall/uci_firewall.sh) il est donc possible qu'il soit taillé pour faire des choses compliqués et que j'ai tenté de garder une configuration réseau simple). ce qui peut expliquer des elements vide.

 

L'objectif est de configurer un routeur wifi en mode client et le connecter sur un réseau freewifi.

Le reseau distribuant des ip publics internet il faut proteger correctement le routeur pour qu'un rigolo ne se connecte par sur la console http, le ssh, ou passe par n'importe quel autre trou. D'ou l'idée de firewaller le tout et notamment tout ce qui est intrusion par l'interface du wifi.

L'interface a protéger ( sur mon modèle) est wl0, et le nom de reseau wifan.

 

1.La commande

iptables -I INPUT -i wl0 -j DROP

est-elle suffisante ?

2. est-ce qu'il y aurait un trou que j'aurai crée dans la configuration que j'ai envoyé

 

Vite fait, je vois plusieurs problèmes :

1) très tôt dans ton fichier tu ajoutes une règle sur la chaîne INPUT qui renvoie tous les paquets dans la chaîne input_rule (toutes les règles suivantes sur INPUT sont donc inutiles parce qu'elles ne seront jamais évaluées, en particulier celle qui renvoie sur la chaîne "input")

2) tu redéfinis les POLICY en cours de route (ce qui aurait pu être sécurisé avec une politique DROP par défaut se retrouve complètement ouvert parce que finalement la POLICY devient ACCEPT)

Hmm aurai tu une reference d'article de tutoriel sur iptables, tout ce que j'ai trouvé fait trop de pages (30 et+), j'aimerai qqc qui me permettrait de comprendre les efffets et interet des elements comme POLICY, chaine,.... comment cela s'emboite les un dans les autres .

 

je supposer que tu parle la de la ligne iptables -P INPUT ACCEPT au milieu de fichier et por ce qui est input_rule je vais regarder un peu plus tard mais plus pour comprendre iptables car je ne compte pas modifier la distrib openwrt.

 

3) tu as énormément de chaînes mais beaucoup sont totalement vides et certaines ne sont même jamais atteintes (voir le point 1)

4) le nommage des chaînes prête à confusion (input et input_rule, en plus de la chaîne par défaut INPUT ? Comment tu t'y retrouves ?)

Il s'agit de la distribution openwrt et en fait cette serie de commande est le resultat de lecture de fichier de config et execution d'un script.

  • Tonton a modifié le titre en Openwrt freewifi iptables firewall configuration

Rejoindre la conversation

Vous publiez en tant qu’invité. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...