First of all, please use this:
iptables -xvnL
I find it to be easier to read and with more useful information.
Second, also check the "nat" table, by adding the "-t nat" parameter to the previous command, like this:
iptables -t nat -xvnL
Third, I'm looked over the code and this couldn't have worked
If I'm looking in the right place, this bug is _ancient_. The line I'm referring to is in /usr/pluto/bin/Network_Firewall.sh, the script responsible for applying the firewall rules, at line 136. Now, that line was last modified at revision 545. What I noticed there was this:
ForwardPort "$Protocol" "$ExtIP" "$SrcPort" "$DestIP" "$DestPort"
and I changed it to this:
ForwardPort "$Protocol" "$ExtIP" "$SrcPort" "$DestIP" "$DestPort" "$SrcIP"
.
Now, my iptables -t nat -xvnL shows that a filter for the source IP is applied, as it should. I also checked the other calls to ForwardPort and OpenPort to make sure this parameter is correct, and this is the only place without it.
Please try out my change and let me know if it fixes your issues. It has already been committed to SVN.