[résolu] transfert de port limité a une adresse

Forum traitant de la distribution ClarkConnect. ClarkConnect est une distribution Linux destiné à transformer un simple PC en un routeur/firewall avec certaines fonctions de serveur internet (Web,Mail,FTP....).

Modérateur: modos Ixus

[résolu] transfert de port limité a une adresse

Messagepar Nemric » 28 Nov 2005 19:56

Salut,

nouvel arrivant sur clark 3.2 home, je cherche a transférer un port, depuis une seule ip.
il s'agit en fait du freeplayer de free, necessitant le tranfert du port 8080 sur la machine où est installé le freeplayer ...

l'ip source de ces requetes est 212.27.38.53

je souhaite donc une règle de transfert de port du style

212.27.38.253:8080 -> 192.168.0.1:8080

et je n'arrive pas a avoir autre chose que

internet:8080 -> 192.168.0.1:8080

j'ai trouvé comment creer une regle (forward:custom [page reseau / pare feu / avancé]) mais cela ne fonctionne pas (en ssh, en tapant iptables --list FORWARD la regle n'apparait pas) et freeplayer ne fonctionne pas.
par contre une simple regle de transfert de port fonctionne mais mon port 8080 est accessible depuis tout internet ... hum hum

merci du coup de main

Nemric
Dernière édition par Nemric le 24 Déc 2005 12:31, édité 1 fois au total.
Avatar de l’utilisateur
Nemric
Aspirant
Aspirant
 
Messages: 129
Inscrit le: 01 Fév 2005 20:16
Localisation: Lyon

explications

Messagepar nicoleega » 05 Déc 2005 03:53

Pour parametrer le freeplayeril n'y a pas besoin de NAT :

1 - déactiver de dhcp de la freebox.
2 - donner une ipfixe (par ex. 192.168.0.1) à ton pc qui a le freeplayer en route
3 - parametrer dans la configuration de la freebox l'adresse du freeplayer (soit ici 192.168.0.1)
3 - ouvrir le port 8080 dans la section "reseau" "entrant"
4 - vérifier que firewall de xp ne bloque pas.

ça doit fonctionner.

c'est hypothétique car je n'ai perso pas cette $%#&! de free chez moi.

bon courage et quand tu auras bien galèré et que tu te seras rendu compte que c'est pas top ce freeplayer, tu feras comme tout le monde et tu achetera un lecteur divx de salon à 40 €

bonne route
le meilleur outil est encore celui que l'on maitrise le mieux
Avatar de l’utilisateur
nicoleega
Major
Major
 
Messages: 90
Inscrit le: 10 Oct 2003 00:00
Localisation: orléans

Messagepar Nemric » 06 Déc 2005 13:48

Merci d'avoir repondu,

Mais j'ai deja utiliser le freeplayer (freebrowser en fait) lorsque j'etait encore derriere un ipcop. et je prefere garder mes 40€ ;) car je suis extremement satisfait de cette option

1 - la freebox n'est pas en mode routeur ou autre, pas de dhcp ... c'est un modem
2 - l'ip du freeplayer est bien 192.168.0.1 en fixe (dhcp fixe)
3 - pas de parametrage de freebox à faire, sauf en mode routeur/dhcp, désactivé en 1 - :roll:
3 - c'est ce que je veux faire, mais pas pour tout internet ! limité a l'adresse de la freebox, et puis, c'est pas du trafic entrant mais du forwarding puisque ma clark est en mode gateway, et mon pc freeplayer est derriere !
4 - pas de problème de ce côté là

pour info, ce sont les règles avancées de clarkconnect qui posent probleme, pas ma config !
En effet, lorsque j'applique un regle de tranfert personnalisée (réseau, firewall, avancé -> regle de transfert avancé) il y a une erreur dans etc/firewall.lua vers la ligne 1700 au moment d'appliquer les regles de custom forward.
J'ai debugué (avec mes moyens de debutant linux / connaissances programmation VB windows) en ajoutant des echo("xx") dans ce fichier et il y a une boucle for/next qui ne passe pas et les regles ne sont pas appliquées ...

Etant donné que j'ai pas un max de temps pour debuguer ce fichier, je n'enverrai les logs recuperés que dans quelques jours, comme ca un debuggueur pourra m'aider ...

ce qui me surprend le plus, c'est le peu de questions relatives a ce bug. Pour m'aider j'aimerais bien que quelqu'un essaye de faire fonctionner une telle regle, pour voir si cela vient de clark ou de mon install ...

comment faire ?

reseau / parefeu / avancé
selectionner dans "Ajout d'une règle personnalisée" l'option "forward" puis ajout
la page affiche :

Ajout d'une règle personnalisée: Forward
Nom : freeplayer
Groupe : multimedia
Protocol : TCP
Source Address : 212.27.38.53
Source Port (Range) : 8080
Destination Address : 192.168.0.1
Destination Port (Range) : 8080

bien sur ici ce sont mes parametres pour mon freeplayer, pour tester utilisez d'autres adresses / ports.
ensuite, vous pouvez aussi aller sur la page rapport / logs pour voir les logs de l'application des nouvelles regles (le rapports est 'system') j'ai comme resultat : Error: invalid key for `next'...

il en resulte un 'iptables --list' ou un 'service firewall status' ou un 'iptables-save' qui ne contient pas la regle, qui n'est pas appliquée, ...

a vos clark pour m'aider un peu ... il y a une autre version de mon probleme ici en anglais : http://www.clarkconnect.com/forums/show ... #Post80548

merci encore et a bientôt
Avatar de l’utilisateur
Nemric
Aspirant
Aspirant
 
Messages: 129
Inscrit le: 01 Fév 2005 20:16
Localisation: Lyon

Messagepar Muzo » 07 Déc 2005 10:03

Bonjour,

Si le sujet est "résolu", merci d'ajouter le drapeau [RESOLU] dans le titre de ton sujet.

Cordialemnt,

/Muzo
/Muzo
"La vie n'est pas un combat, mais une passion à défendre!" MASS HYSTERIA - Knowledge is power
Avatar de l’utilisateur
Muzo
Amiral
Amiral
 
Messages: 5236
Inscrit le: 07 Mai 2003 00:00
Localisation: BNF! Je me culturise.

Messagepar Nemric » 07 Déc 2005 17:49

Mon problème a t il l'air resolu ?

Etant donné que j'ai pas un max de temps pour debuguer ce fichier, je n'enverrai les logs recuperés que dans quelques jours, comme ca un debuggueur pourra m'aider ...


serais tu capable de m'aider a debugguer etc/rc.d/firewall.lua ?

Pour m'aider j'aimerais bien que quelqu'un essaye de faire fonctionner une telle regle, pour voir si cela vient de clark ou de mon install ...


As tu essayé de faire fonctionner une regle de ce type ?

j'ai comme resultat : Error: invalid key for `next'...


j'ai toujours le même resultat ...

autant te prévenir que c'est une tache tres "hard" pour moi que de debugguer du "linux" sachant que je fait tout a l'instinct. les echo ("x") dans le code, la recuperation des logs, ... et soit sûr que lorsque je reussirais a appliquer une regle de ce type mon probleme apparaitra resolu !

a vos clark pour m'aider un peu


svp

Nemric
Avatar de l’utilisateur
Nemric
Aspirant
Aspirant
 
Messages: 129
Inscrit le: 01 Fév 2005 20:16
Localisation: Lyon

Messagepar Nemric » 10 Déc 2005 15:36

Bonjour, voila le travail :

j'ai placé des echo dans le code du fichier etc/rc.d/firewall.lua
A partir de la ligne 1680 jusqu'à 1760 environ :

Code: Tout sélectionner
         elseif b_and(r_type, tonumber(os.getenv("FWR_FORWARD"))) ~= 0 then
            -- FORWARD
            prerouting = "-A PREROUTING -p " .. r_proto

            -- TODO: Probably want r_port here?
            --if r_port ~= nil and string.len(dst_port) ~= 0 and
            if dst_port ~= nil and string.len(dst_port) ~= 0 and
               (tonumber(r_proto) == 6 or tonumber(r_proto) == 17) then
               prerouting = prerouting .. " --dport " .. dst_port
            end

            if r_addr ~= nil and string.len(r_addr) ~= 0 then
               prerouting = prerouting .. " -s " .. r_addr
            end

            for __, ifn in WANIF do
               if dst_addr ~= nil and string.len(dst_addr) ~= 0 then
                  iptables("nat",
                     string.format("%s -d %s -j DNAT --to %s", prerouting, if_address(ifn), dst_addr))
                  echo("nat".. string.format("%s -d %s", prerouting, if_address(ifn)))
               else
                  iptables("nat",
                     string.format("%s -d %s", prerouting, if_address(ifn)))
               end
            end

            for __, ifn in LANIF do
               ip, netmask, network, __ = GetInterfaceInfo(ifn)
               postrouting = "-A POSTROUTING -p " .. r_proto

               if r_addr ~= nil and string.len(r_addr) ~= 0 then
                  postrouting = postrouting .. " -d " .. r_addr
               end

               postrouting = string.format("%s -s %s/%s",
                  postrouting, network, netmask)

               if dst_port ~= nil and string.len(dst_port) ~= 0 and
                  (tonumber(r_proto) == 6 or tonumber(r_proto) == 17) then
                  postrouting = postrouting .. " --dport " .. dst_port
               end

               postrouting = postrouting .. " -j SNAT --to " .. ip

               iptables("nat", postrouting)
               echo ("nat".. postrouting)

               forward = string.format("-A FORWARD -i %s -p %s", ifn, r_proto)

               if r_addr ~= nil and string.len(r_addr) ~= 0 then
                  forward = forward .. " -s " .. r_addr
               end

               if dst_addr ~= nil and string.len(dst_addr) ~= 0 then
                  forward = forward .. " -d " .. dst_addr
               end

               if dst_port ~= nil and string.len(dst_port) ~= nil and
                  (tonumber(r_proto) == 6 or tonumber(r_proto) == 17) then
                  forward = forward .. " --dport " .. dst_port
               end

               for ___, ifn_wan in WANIF do
                  echo("ifn_wan = ".. ifn_wan)

                  iptables("filter",
                     string.format("%s -o %s -j %s", forward, ifn_wan, FW_ACCEPT))

                  echo ("filter".. string.format("%s -o %s -j %s", forward, ifn_wan, FW_ACCEPT))
               end
            echo ("ifn = ".. ifn  )
            end
         echo("for __, ifn in LANIF do finished")
         else
            error(string.format("Invalid custom firewall type: 0x%08x", r_type))
         end
      end
   end
end


en relancant le firewall avec ma regle de custom forward, les logs donnent :

Code: Tout sélectionner
Dec 10 14:06:48 Clarkbox cc-firewall: Starting firewall...
Dec 10 14:06:48 Clarkbox cc-firewall: Loading environment
Dec 10 14:06:48 Clarkbox cc-firewall: Detected WAN role for interface: eth1
Dec 10 14:06:48 Clarkbox cc-firewall: Detected LAN role for interface: eth0
Dec 10 14:06:48 Clarkbox cc-firewall: Detected WAN info - eth1 mon.add.ip.ext/255.255.255.0 on network mon.masq.ext.0/24
Dec 10 14:06:48 Clarkbox cc-firewall: Detected LAN info - eth0 10.0.0.1/255.255.255.0 on network 10.0.0.0/24
Dec 10 14:06:48 Clarkbox cc-firewall: Loading kernel modules
Dec 10 14:06:49 Clarkbox cc-firewall: Setting kernel parameters
Dec 10 14:06:49 Clarkbox cc-firewall: Using gateway mode
Dec 10 14:06:49 Clarkbox cc-firewall: Setting default policy to DROP
Dec 10 14:06:49 Clarkbox cc-firewall: Defining custom chains
Dec 10 14:06:49 Clarkbox cc-firewall: Running custom rules
Dec 10 14:06:49 Clarkbox cc-firewall: nat-A PREROUTING -p 6 --dport 8080 -s 212.27.38.253 -d mon.add.ip.ext
Dec 10 14:06:49 Clarkbox cc-firewall: nat-A POSTROUTING -p 6 -d 212.27.38.253 -s 10.0.0.0/255.255.255.0 --dport 8080 -j SNAT --to 10.0.0.1
Dec 10 14:06:49 Clarkbox cc-firewall: ifn_wan = eth1
Dec 10 14:06:49 Clarkbox cc-firewall: filter-A FORWARD -i eth0 -p 6 -s 212.27.38.253 -d 10.0.0.2 --dport 8080 -o eth1 -j ACCEPT
Dec 10 14:06:49 Clarkbox cc-firewall: ifn = eth0
Dec 10 14:06:49 Clarkbox cc-firewall: Error: invalid key for `next'


je vois passé :
la regle de prerouting :
echo("nat".. string.format("%s -d %s", prerouting, if_address(ifn)))
=
nat-A PREROUTING -p 6 --dport 8080 -s 212.27.38.253 -d mon.add.ip.ext

la regle postrouting
echo ("nat".. postrouting)
=
nat-A POSTROUTING -p 6 -d 212.27.38.253 -s 10.0.0.0/255.255.255.0 --dport 8080 -j SNAT --to 10.0.0.1

les valeurs des variables "ifn" et "ifn_wan"
echo("ifn_wan = ".. ifn_wan) = ifn_wan = eth1
echo("ifn = ".. ifn_wan) = ifn = eth0

mais jamais : echo("for __, ifn in LANIF do finished")

Donc l'erreur provient de la boucle
Code: Tout sélectionner
for __, ifn in LANIF do
end


que veut dire ce : Error: invalid key for `next'
LANIF est un tableau de valeur contenant mes connexion LAN initialisées dans etc/firewall ici :
Code: Tout sélectionner
# Interface roles
#----------------

EXTIF="eth1"
LANIF="eth0"
DMZIF=""
WIFIF=""


grace a la fonction : LoadEnvironment de etc/rc.d/firewall.lua ligne 133
Code: Tout sélectionner
   WANIF = os.getenv("EXTIF")
   LANIF = os.getenv("LANIF")
   DMZIF = os.getenv("DMZIF")
   WIFIF = os.getenv("WIFIF")


on est d'accord ? ma voila bien dans la m---e

peut être que ces indices vont inciter un developpeur a m'aider, je suis pas encore assez mature sous linux pour debuguer ca au dela de ce que je vous ecrit aujourd'hui ... d'ailleur je suis assez fier d'en être arriver là ... :oops:

A bientôt

Nemric
Avatar de l’utilisateur
Nemric
Aspirant
Aspirant
 
Messages: 129
Inscrit le: 01 Fév 2005 20:16
Localisation: Lyon

Messagepar Nemric » 16 Déc 2005 10:41

Personne n'a d'idée ?

je sêche ...

un p'tit up

Nemric
Avatar de l’utilisateur
Nemric
Aspirant
Aspirant
 
Messages: 129
Inscrit le: 01 Fév 2005 20:16
Localisation: Lyon

Messagepar Nemric » 21 Déc 2005 19:42

](*,) :up:
Avatar de l’utilisateur
Nemric
Aspirant
Aspirant
 
Messages: 129
Inscrit le: 01 Fév 2005 20:16
Localisation: Lyon

au plus simple

Messagepar nicoleega » 24 Déc 2005 02:13

désolé de te répondre si tard mais j'avais pas eu le courage de lire les longs précédents post... :?

La question que je me pose est pourquoi tu veu mettre cette regle dans advanced au lieu de forwarding ?

parceque je o'ai saisie dans forwarding avec un pote qui a une freecacabeurk et ça fonctionne nikel !

Pour analyser tes logs, j'en suis au meme niveau que toi donc je peux rien faire.

a+
le meilleur outil est encore celui que l'on maitrise le mieux
Avatar de l’utilisateur
nicoleega
Major
Major
 
Messages: 90
Inscrit le: 10 Oct 2003 00:00
Localisation: orléans

[resolu] abandonner clark

Messagepar Nemric » 24 Déc 2005 12:30

Salut,
désolé de te répondre si tard mais j'avais pas eu le courage de lire les longs précédents post... Confused


Peut être devrais je ouvrir un autre post avec un resumé de celui ci, j'ai peur que plus il y aura de reponses sans interet* plus le post sera long et moin il y aura de courageux ...

*
La question que je me pose est pourquoi tu veu mettre cette regle dans advanced au lieu de forwarding ?

Si le sujet est "résolu", merci d'ajouter le drapeau [RESOLU] dans le titre de ton sujet.

bon courage et quand tu auras bien galèré et que tu te seras rendu compte que c'est pas top ce freeplayer, tu feras comme tout le monde et tu achetera un lecteur divx de salon à 40 €


bref, je veux creer une regle avancé pour limiter l'acces a un ou plusieurs services du LAN a une seule adresse internet.
par exemple :
pour vnc : tranferer les ports 5901, 5902, ... vers les ip respectivement 192.168.0.1:5900 192.168.0.2:5900, ... et a partir d'une seule ip externe, celle de mon boulot

pour freeplayer : port 8080 vers 192.168.0.1 seulement pour l'adresse freeplayer.freebox.fr

en revanche pour mon site internet, pas de restriction, j'ai fait un forward simple et ca marche

capiche ?

Je trouve dommage le nombre de reponse "a côté de la plaque" qu'il y a sur IXUS parfois. si quelqu'un arrive pas a parametrer son firewall de lui demander pourquoi il a un firewall, s'il n'arrive pas a faire son vpn lui demander pourquoi il en veut un, s'il a ipcop et clarkconnect de lui demander pourquoi il a un ipcop, ...

alors j'ai une freebox, j'utilise le freeplayer, j'utilise vnc, j'ai une clakconnect et tout jugement mis a part, techniquement je n'arrive pas a creer une regle avancé qui fonctionne !

je vais marquer ce post [resolu] car la reponse a mon probleme est la suivante :
passé de clark a SME en mode serveur only
derriere un ipcop pour lequel une regle comme celle ci est le B A BA du firewalling ...

désolé, je sais que ce post va pas plaire, mais il est pas moin constructif que les réponses que j'au eu !

joyeues fêtes a tous et BON SKI !

Nemric
Avatar de l’utilisateur
Nemric
Aspirant
Aspirant
 
Messages: 129
Inscrit le: 01 Fév 2005 20:16
Localisation: Lyon

ouahhh

Messagepar nicoleega » 24 Déc 2005 13:45

Je suis impressionné de voir ton dernier post nemric, surtout sur un forum sympa comme celui de clark.

C'est vraiment dommage que tu te sentes client de nos tentatives pour t'aider.

Sinon t'as une autre solution pour que ce soit rapide, tu appelle une hotline à la con comme celle de free, et là tu verras.......

Passe ton chemin mon petit, ici il n a pas de gens comme toi et j'espère que les modératurs seront d'accord avec moi.

que dire de plus ?.............
le meilleur outil est encore celui que l'on maitrise le mieux
Avatar de l’utilisateur
nicoleega
Major
Major
 
Messages: 90
Inscrit le: 10 Oct 2003 00:00
Localisation: orléans

Messagepar Gandalf » 24 Déc 2005 16:51

Ouh là ouh là faut pas le prendre comme ça, surtout avant le réveillon !

Nemric je pense que les réponses que tu as eues ont au moins le mérite d'exister, surtout sur le forum de Clarck qui n'est pas très fréquenté, au lieu de raler tu ferais mieux de remercier non ? Moi non plus je 'ai pas lu tous tes longs messages, et en plus je n'utilise pas Clarck, donc si tu veux vraiment avoir la réponse à ta question contactes un développeur en mp tu verras bien, il y en a sur le site mais si ça se trouve ils ne viennent jamais dans ce forum ! Sinon ouvre un nouveau post ailleurs spécifique à ce bug !
Nicoleega, Nemric veut faire comme ça pour autoriser les flux d'UNE SEULE adresse vers son PC qui a le freeplayer ! Ce que tu lui proposes toi c'est un forwarding de port depuis toutes les adresses !

Voilà, passez de bonne fêtes ... et bon ski pour ceux qui y vont !
/G.
Avatar de l’utilisateur
Gandalf
Amiral
Amiral
 
Messages: 1980
Inscrit le: 22 Août 2002 00:00
Localisation: Strasbourg

Messagepar Nemric » 26 Déc 2005 21:40

Salut,

Je suis désolé Nicoleega, Gandalf, je veux blésser personne, surtout pas en période de réveillon.
Et biensur, Gandalf, que je remercie ceux qui ont répondus, c'est effectivement rare. Mais comme au college, il y en a qui on seulement droit aux points de présentation !

je remercie Nicoleega sans lequel :
- je croirais encore que free est un fournisseur d'access
c'est hypothétique car je n'ai perso pas cette $%#&! de free chez moi.

- je croirais encore que le freebox est un modem
parceque je o'ai saisie dans forwarding avec un pote qui a une freecacabeurk et ça fonctionne nikel !

- je ne me serais pas repeté (cf premier post)
par contre une simple regle de transfert de port fonctionne mais mon port 8080 est accessible depuis tout internet ... hum hum


Je remercire Muzo pour m'avoir rappeler, cordialement, qu'il fallait pas oublier de marquer son probleme résolu le cas echeant
Si le sujet est "résolu", merci d'ajouter le drapeau [RESOLU] dans le titre de ton sujet.


sans quoi je n'aurait jamais pu en arriver là.

je n'ai rien, Nicoleega, contre le forum sympa de clark, mais si je te repondais a ce message http://forums.fr.ixus.net/viewtopic.php?t=30967 que tu n'as qu'a changer de modem et de lecteur divx, tu me repondrait pareil je pense, alors entre nous, si au lieu de freeplayer j'avais exprimer mon probleme avec VNC, y aurait il eu moin de troll sur mon modem et plus de reponses techniques censées ?

A bientôt, bonne fêtes et BON SKI
Avatar de l’utilisateur
Nemric
Aspirant
Aspirant
 
Messages: 129
Inscrit le: 01 Fév 2005 20:16
Localisation: Lyon


Retour vers ClarkConnect

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité