0 votes

Impossible d'accéder au serveur localhost après une redirection pf

Après avoir ajouté quelques règles pf pour rediriger certains trafics de sortie vers un serveur local, je ne peux pas accéder directement à ce serveur local. En revanche, je peux y accéder sans problème via la redirection.

J'ai essentiellement suivi cette réponse et ajouté les règles suivantes :

rdr pass on lo0 inet proto tcp from any to 169.254.169.254 port 80 -> 127.0.0.1 port 1254
pass out route-to lo0 proto tcp from any to 169.254.169.254 port 80 keep state

Après avoir fait cela, je peux tester avec succès avec curl http://169.254.169.254 . Cependant curl http://127.0.0.1:1254 ne fonctionne pas.
Si je supprime les règles (notamment le rdr règle), 127.0.0.1:1254 fonctionne très bien.

Lorsque j'effectue un tcpdump sur lo0 Je vois ce qui suit :

08:27:49.659051 IP 127.0.0.1.63994 > 127.0.0.1.1254: Flags [S], seq 677650599, win 65535, options [mss 16344,nop,wscale 5,nop,nop,TS val 1709439529 ecr 0,sackOK,eol], length 0
08:27:49.659177 IP 169.254.169.254.80 > 127.0.0.1.80: Flags [S.], seq 2981033646, ack 677650600, win 65535, options [mss 16344,nop,wscale 5,nop,nop,TS val 1709439529 ecr 1709439529,sackOK,eol], length 0
08:27:49.762036 IP 169.254.169.254.80 > 127.0.0.1.63994: Flags [S.], seq 2981033646, ack 677650600, win 65535, options [mss 16344,nop,wscale 5,nop,nop,TS val 1709439629 ecr 1709439529,sackOK,eol], length 0
08:27:49.762056 IP 127.0.0.1.63994 > 127.0.0.1.1254: Flags [S], seq 677650599, win 65535, options [mss 16344,nop,wscale 5,nop,nop,TS val 1709439629 ecr 0,sackOK,eol], length 0
08:27:49.762089 IP 169.254.169.254.80 > 127.0.0.1.63994: Flags [S.], seq 2981033646, ack 677650600, win 65535, options [mss 16344,nop,wscale 5,nop,nop,TS val 1709439629 ecr 1709439629,sackOK,eol], length 0
08:27:49.866634 IP 127.0.0.1.63994 > 127.0.0.1.1254: Flags [S], seq 677650599, win 65535, options [mss 16344,nop,wscale 5,nop,nop,TS val 1709439729 ecr 0,sackOK,eol], length 0
08:27:49.866690 IP 169.254.169.254.80 > 127.0.0.1.63994: Flags [S.], seq 2981033646, ack 677650600, win 65535, options [mss 16344,nop,wscale 5,nop,nop,TS val 1709439729 ecr 1709439729,sackOK,eol], length 0
08:27:49.967548 IP 169.254.169.254.80 > 127.0.0.1.63994: Flags [S.], seq 2981033646, ack 677650600, win 65535, options [mss 16344,nop,wscale 5,nop,nop,TS val 1709439829 ecr 1709439729,sackOK,eol], length 0
...

Nous voyons donc le SYN original avec la source et la destination correctes. Mais ensuite nous voyons deux réponses venant de 169.254.169.254:80 , un à 127.0.0.1:80 et un autre à 127.0.0.1:63994 .

Quand j'ajoute log (all) à la règle, je vois des informations similaires :

 00:00:00.000000 rule 0/0(match): rdr out on lo0: 169.254.169.254.80 > 127.0.0.1.80: Flags [S.], seq 1734908561, ack 3748497075, win 65535, options [mss 16344,nop,wscale 5,nop,nop,TS val 1711591000 ecr 1711591000,sackOK,eol], length 0
 00:00:00.100977 rule 0/0(match): rdr out on lo0: 169.254.169.254.80 > 127.0.0.1.80: Flags [S.], seq 1734908561, ack 3748497075, win 65535, options [mss 16344,nop,wscale 5,nop,nop,TS val 1711591101 ecr 1711591000,sackOK,eol], length 0
 00:00:00.000044 rule 0/0(match): rdr out on lo0: 169.254.169.254.80 > 127.0.0.1.80: Flags [S.], seq 1734908561, ack 3748497075, win 65535, options [mss 16344,nop,wscale 5,nop,nop,TS val 1711591101 ecr 1711591101,sackOK,eol], length 0

Pourquoi le rdr la règle de correspondance du trafic de réponse et sa réécriture ? La règle de correspondance est définie comme suit to 169.254.169.254 port 80 .

C'est sur High Sierra.

1voto

poige Points 898

Pour que cela fonctionne, il faudrait ajouter cette règle :

  • pass quick on _lo0_

- Je l'ai généralement comme première ligne de filtrage des règles que je gère.

Pour être précis, même cela serait suffisant :

  • pass _in_ quick on _lo0_

mais pourquoi s'embêter avec les directions si vous en avez typiquement besoin dans les deux sens sur le loopback de toute façon( ?) .

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X