IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> port forwarding, pfctl
Options
SuperCed
posté 28 Sep 2022, 07:26
Message #1


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 831
Inscrit : 19 Jul 2001
Lieu : Живим у Греноблу
Membre no 519



Hello, je voudrais faire un port forwarding sur une autre IP et un autre port quand on se connecte sur un certain port de mon Mac.

Mais ça ne semble pas fonctionner, j'ai essayer de charger cette conf :
rdr pass inet proto tcp from any to any port 9080 -> 192.168.0.123 port 80

en utilisant la commande : pfctl

Celle ci semble être correctement prise en compte, mais ça marche pas du tout. Ca semble fonctionner uniquement sur l'IP du Mac, c'est à dire 127.0.0.1.

Mais moi, je cherche à forwarder vers l'IP 192.168.0.123 (une autre machine sous Linux) sur le port 80 quand on se connecte sur le Mac qui a l'adresse 192.168.0.189.
Il semble qu'il reste une sécurité qui bloque le port forwarding.
Est-ce que quelqu'un a de l'expérience avec ça ?

Si je trouve pas de solution, je mettrai un reverse proxy avec nginx, mais je trouve ça un peu lourd juste pour forwarder un port...

Merci!


--------------------
Хајде Јано коло да играмо
iMac 27 mi 2010
Macbook air mi 2011
Mac Mini M1
Go to the top of the page
 
+Quote Post
Polo35230
posté 28 Sep 2022, 14:18
Message #2


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 533
Inscrit : 2 Feb 2011
Membre no 164 276



Salut,

Je ne suis pas sûr de ce que je vais dire, mais je pense que ça ne peut pas marcher si la demande de connexion TCP initiale (sur le port 9080) et la demande TCP modifiée (192.168.0.123:80) passent par la même interface réseau du MAC.
C'est bon avec l'adresse 127.0.0.1 parceque la boucle locale est aussi l'interface interne du Mac. Donc là, il y a deux interfaces (une d'entrée, et une de sortie) Mais bien sûr, ce n'est pas ce que tu veux faire...

Si l'appel vient de l'extérieur, pourquoi ne passes-tu pas par la table NAT/PAT de la box?
Go to the top of the page
 
+Quote Post
SuperCed
posté 28 Sep 2022, 15:30
Message #3


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 831
Inscrit : 19 Jul 2001
Lieu : Живим у Греноблу
Membre no 519



Citation (Polo35230 @ 28 Sep 2022, 15:18) *
Salut,

Je ne suis pas sûr de ce que je vais dire, mais je pense que ça ne peut pas marcher si la demande de connexion TCP initiale (sur le port 9080) et la demande TCP modifiée (192.168.0.123:80) passent par la même interface réseau du MAC.
C'est bon avec l'adresse 127.0.0.1 parceque la boucle locale est aussi l'interface interne du Mac. Donc là, il y a deux interfaces (une d'entrée, et une de sortie) Mais bien sûr, ce n'est pas ce que tu veux faire...

Si l'appel vient de l'extérieur, pourquoi ne passes-tu pas par la table NAT/PAT de la box?


Il n'y a pas vraiment de réglage sur la box d'une part, d'autre part, je n'ai pas d'IP publique (c'est un routeur 4G de secours).
Mais je crois que tu as raison, ça ne peut pas fonctionner sur la même interface réseau.

Je vais tenter plutôt le reverse proxy avec nginx.

En fait, je voulais faire un tunnel ssh entre mon Mac et un serveur qui a lui, une IP publique et fixe.
Donc en gros, à un moment, il faut que ce soit un des ordi local qui aille se connecter sur mon serveur avec l'IP fixe.
Celui-ci redirigerait les ports vers le Mac. Et ensuite, je vais faire un reverse proxy depuis le Mac.
J'ai pas encore tout testé pour voir si ça peut fonctionner.


--------------------
Хајде Јано коло да играмо
iMac 27 mi 2010
Macbook air mi 2011
Mac Mini M1
Go to the top of the page
 
+Quote Post
Polo35230
posté 29 Sep 2022, 08:07
Message #4


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 533
Inscrit : 2 Feb 2011
Membre no 164 276



Je ne sais pas si j'ai bien compris...
-Sur le réseau local A, tu as un Mac (192.168.0.189) et un routeur 4G pour sortir sur internet.
-Sur le réseau local B, tu as un serveur Unix (192.168.0.123)
-Tu as un tunnel SSH entre le Mac (client SSH) et la machine Unix (serveur SSH)
-Tu veux que toutes les machines du réseau A passent par le tunnel SSH (donc par ton MAC) pour joindre le serveur Unix.

Si c'est ça, tu peux essayer de faire un routage par interface dans le Mac.
Fais un ifconfig, et regarde le nom de l'interface du tunnel SSH.
Ensuite, rajoute une route dans le Mac.
route add -host 192.168.0.123 -interface NomDeLinterfaceSSH

Ensuite, sur chacune des machines du réseau A qui veulent passer par le tunnel ssh, il faudra rajouter une route:
route add -net 192.168.0.123/32 192.168.0.189 (syntaxe à voir, et pas sûr que ça marche; On est sur le même plan IP...)

Le truc curieux, c'est que le client et le serveur sont sur un même plan IP, c'est pas l'idéal, mais ça peut marcher si se sont des IP lcales fixes

Ce message a été modifié par Polo35230 - 29 Sep 2022, 11:32.
Go to the top of the page
 
+Quote Post
SuperCed
posté 29 Sep 2022, 17:56
Message #5


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 831
Inscrit : 19 Jul 2001
Lieu : Живим у Греноблу
Membre no 519



Non, c'est pas ça.

J'ai un serveur avec une IP publique sous Linux chez un hébergeur
Un Mac avec une IP pas publique, mais relié à internet via un routeur 4G
Une webcam avec un serveur http sur le port 80

Je veux accéder à la webcam.

Mais je n'ai pas d'IP publique sur le Mac à cause du routeur 4G (temporaire, ma fibre est coupée).

Donc je veux que le Mac se connecte au serveur avec IP publique et crée un tunnel.
Puis, sur ce même serveur, je veux que le port 8080 soit ouvert, et aille vers la webcam.
Donc l'idée est d'utiliser un reverse proxy qui reroute le 8080 vers 127.0.0.1:9080 tout ça sur mon serveur IP publique.
Ensuite, la connexion utilise le tunnel ssh qui mappe le Mac avec l'adresse 127.0.0.1:9080 du serveur. Le mac utilise le port 8080.
Sur le Mac, un autre reverse proxy ouvert sur 8080 mais qui va finalement chercher les data sur le réseau local 192.168.0.123:80 (la webcam).


--------------------
Хајде Јано коло да играмо
iMac 27 mi 2010
Macbook air mi 2011
Mac Mini M1
Go to the top of the page
 
+Quote Post
SuperCed
posté 30 Sep 2022, 11:18
Message #6


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 831
Inscrit : 19 Jul 2001
Lieu : Живим у Греноблу
Membre no 519



En fait, si, ça fonctionne, mais peut être que ça ne tient pas dans le temps...

Donc sur mon serveur, j'ai un nginx avec la conf :

Code
server {
listen       8080;
location / {
                proxy_pass http://127.0.0.1:9080;
        }
}


Sur le Mac, je mets en place un tunnel ssh qui va rediriger le port 9080 du serveur vers mon Mac sur le port 8080

Code
autossh -fNC -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -R 9080:127.0.0.1:8080 [email protected]


puis sur le Mac, un autre proxy nginx pour que ça aille sur le serveur web que je souhaite (ma webcam) avec la conf:
Code
server {
        listen       8080;
        server_name  localhost;

        location / {
      
          proxy_pass http://192.168.0.117:80;
        }
}


--------------------
Хајде Јано коло да играмо
iMac 27 mi 2010
Macbook air mi 2011
Mac Mini M1
Go to the top of the page
 
+Quote Post
SuperCed
posté 1 Oct 2022, 17:12
Message #7


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 831
Inscrit : 19 Jul 2001
Lieu : Живим у Греноблу
Membre no 519



Bon, finalement, ça semble bien fonctionner depuis plus de 24H, c'est parfait!

Sauf un truc, j'aimerais utiliser zeroconf/bonjour pour ne pas dépendre des IPs de mes sous réseaux, mais ça marche pas trop quand on a 2 sous réseaux différents.

En fait, j'ai un réseau wifi, puis un partage sur l'interface Ethernet de mon Mac.
Bonjour/zeroconf fonctionne très bien sur les 2 sous réseaux ou depuis le Mac.
Par contre, un ordinateur du wifi ne peut pas accéder aux réseaux qui sont sur le sous réseau Ethernet (192.168.0.x vers 192.168.2.x et réciproquement).

Savez vous comment on peut faire connaitre les 2 sous réseaux entre eux via zeroconf/bonjour ?

Merci


--------------------
Хајде Јано коло да играмо
iMac 27 mi 2010
Macbook air mi 2011
Mac Mini M1
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 24th April 2024 - 05:44