Report this

What is the reason for this report?

iptables nat port redirect loses POST parameters

Posted on October 24, 2014

I have a Grails application deployed on glassfish on a droplet running Ubuntu Server. In order to make the domain work with the default http and https ports, I had to redirect the port 80 to 8080 and 443 to 8181 using iptables.

Unfortunately, something strange happens: on login, the username and password are correctly POST’ed by the client but they don’t reach the server application. Instead, the application redirects to the port 8181 and then everything works fine.

The problem seems therefore to be with the port forwarding somehow losing the POST parameters. I have no idea why this could happen.

Here is the script that I use to redirect the ports:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080

iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8181

Any ideas why this happens and how I could fix it?

Thanks!

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Start building today

From GPU-powered inference and Kubernetes to managed databases and storage, get everything you need to build, scale, and deploy intelligent applications.