OSX-Firewall: Ports weiterleiten und nicht-lokale Anfragen ignorieren

Auf meinem Debian-Produktionsserver verwende ich dies, um Anfragen, die an Port 80 eingehen, an einen Nicht-Root-Prozess weiterzuleiten, der auf Port 8080 läuft:

sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

(Der Prozess ist ein Node.js-Cluster, aber ich bezweifle, dass er für diese Frage relevant ist.)

Ich entwickle auf meinem Mac und versuche, eine elegantere Umgebung für mich aufzubauen, ohne unnötige Software auf meinem Computer hinzuzufügen . Ich habe meiner /private/etc/hostsDatei einen Eintrag hinzugefügt, damit ich eine hübsche lokale Domain verwenden kann:

127.0.0.1 myapp.dev

Jetzt möchte ich darauf zugreifen, ohne einen Port anzugeben. http://myapp.dev:8080Mit anderen Worten, ich würde lieber als http://myapp.dev. Ich würde es auch vorziehen, meinen Webserver nicht direkt auf Port 80 zu betreiben, damit er keine Root-Rechte hat.

Ich weiß, dass mein Computer mit einer Firewall ausgestattet ist, aber ich konnte nicht viele Informationen darüber finden. Also suche ich nach einer einfachen Möglichkeit, alles, was an Port 80 kommt, an Port 8080 weiterzuleiten, wie die IP-Tabellen-Lösung unter Debian. Ich würde am liebsten die mit meinem Computer gelieferte Firewall verwenden und diese so einfach wie möglich einrichten.

Kann mir jemand sagen, wie das geht?

Bonuspunkte : Gibt es eine einfache Möglichkeit, alle Anfragen zu ignorieren, die an Port 80 (und 8080) kommen, außer denen von meinem eigenen Computer, auf dem der Webserver läuft?

Mac OS X verwendete einst ein Dienstprogramm namens ipfw, das jedoch zugunsten einer Portierung von BSDs pf verworfen wurde. Die Dokumentation von Apple ist verfügbar unter developer.apple.com/library/mac/documentation/Darwin/Reference/…
Es gibt GUI-Tools, die helfen könnten. Für IPFW gibt es hanynet.com/waterroof und für PF gibt es hanynet.com/icefloor . Ich versuche, ohne diese zu installieren, da ich sie wahrscheinlich nie wieder verwenden werde.

Antworten (1)

Eine Lösung mit IPFW, die ab OS X 10.9 (Mavericks) mit PF koexistiert, besteht darin, einfach den Befehl auszuführen:

sudo ipfw add 100 fwd 127.0.0.1,8080 tcp from any to me 80