9

On OS X 10.6 you do not have iptables, so what is the full solution for this permanently redirect all request sent to port 80 to another port, like 8080?

It has to be persistent.

sorin
  • 8,454

2 Answers2

12

Use ipfw(read http://discussions.info.apple.com/message.jspa?messageID=10945451 http://discussions.apple.com/thread.jspa?messageID=10996939&#10996939)

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

or http://www.hanynet.com/waterroof/

bindbn
  • 5,321
10

Use ipfw as in @bindbn's answer. That's the general idea.

Persistence:

put your rules into a file :

/etc/ipfw.conf

add at the very top of your file

flush

Ensure that there are not leading or trailing whitespaces in any line.

add to /Library/LaunchDaemons/com.yourdomain.ipfw.plist :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>com.yourdomain.ipfw</string>
    <key>Program</key>
    <string>/sbin/ipfw</string>
    <key>ProgramArguments</key>
    <array>
      <string>/sbin/ipfw</string>
      <string>-q</string>
      <string>/etc/ipfw.conf</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
  </dict>
</plist>

Either reboot, or

launchctl load -w /Library/LaunchDaemons/com.yourdomain.ipfw.plist

the first time.

After that it is

launchctl load com.yourdomain.ipfw
chiggsy
  • 1,616
  • 1
  • 16
  • 20