Port forwarding in OS X 10.10

3

Devo inoltrare ogni pagina internet al mio indirizzo locale, ad esempio 127.0.0.1 utilizzando OS X.

Ho provato a seguire il comando ma non ha alcun effetto:

echo " rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080 " | sudo pfctl -ef -

Ho cercato di ricercare il significato esatto della riga sopra, ma non riesco a trovare una buona spiegazione. Come posso eseguire questo inoltro?

Modifica 1 :

Supponiamo che un utente inserisca "www.google.com" nel browser; questo dovrebbe avere un impatto come questo - >

L'utente dovrebbe essere reindirizzato alla mia pagina locale che è a 127.0.0.1:8080

Ora, se premo 127.0.0.1:8080, vedo il mio portale locale.

Ma voglio che venga mostrato dopo il reindirizzamento da "Google.com"

Sto scrivendo la seguente dichiarazione. Ma, non stanno avendo alcun effetto.

rdr pass on lo0 proto {tcp, udp} from any to any port 80 -> 127.0.0.1 port 7894 
pass out log(all) on em0 route-to lo0 inet proto {tcp, udp} from any to any port 80 keep state

Scrivo sopra le righe nel mio file di ancoraggio e aggiungo ancora a pf.conf utilizzando rdr-anchor

    
posta PrafulD 12.03.2016 - 12:13
fonte

1 risposta

1

Se comprendo correttamente la tua domanda e il tuo commento, stai cercando di ottenere qualcosa come un captive portal locale.

Questo non può essere fatto con pf e un semplice reindirizzamento. Sono coinvolte molte più cose e configurazioni. Qui (il link a bsdguides.org nel file github non funziona: link corretto ) trovi un esempio su come farlo in OpenBSD. La soluzione potrebbe essere adattata a OS X in determinate circostanze.

La regola rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080 effettua le seguenti operazioni:

rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
|   |    |              |
|   |    |              #from any IP (all source IPs) to any IP (all destination IPs of the local machine)
|   |    |              from any to any
|   |    #IPv4 Protocol TCP
|   |    inet proto tcp
|   #allow
|   pass
#redirect from port 80 to localhost:8080
rdr                                     port 80 -> 127.0.0.1 port 8080

Oppure: qualsiasi incoming ( rdr reindirizza solo i pacchetti in ingresso) Il traffico TCP IPv4 (su qualsiasi interfaccia) alla porta 80 da qualsiasi IP a qualsiasi IP (su qualsiasi interfaccia) della macchina locale è passato e reindirizzato a 127.0.0.1:8080.

La regola non reindirizza le richieste da un computer client locale per google.com:80 (ad esempio 216.58.201.206:80) o da 175.68.9.102:80 a 127.0.0.1:80 perché né di questi IP è un IP del server locale (www-), né il server locale (www-) conosce le richieste.

Questo non si applica al traffico in uscita del computer locale perché non è un traffico in entrata . Devi prima eseguire il ciclo di questo traffico:

risposta data 12.03.2016 - 17:15
fonte

Leggi altre domande sui tag