<span class="gmail_quote"><br></span>Hi all, <br><br>I want to run vsftp behind a firewall.(i.e DMZ zone) . It is runnig as passive ftp. <br><br>the theroy behind passive ftp is ,<br><br><ul><li>FTP server's port 21 from anywhere (
<span style="font-weight: bold;">
Client initiates connection</span>)</li><li>FTP server's port 21 to ports > 1024 (Server responds to client's
control port)</li><li>FTP server's ports > 1024 from anywhere (<span style="font-weight: bold;">Client initiates data
connection to random port specified by server</span>)</li><li>FTP server's ports > 1024 to remote ports > 1024 (Server sends
ACKs (and data) to client's data port)</li></ul><br><br>Then, How can I write DNAT rules. <br><br>pls assume <span style="font-weight: bold;"><a href="http://1.2.3.4" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

1.2.3.4</a></span> is the ip of the internert interface. <br><br>#DNAT from Internet to the box running VSFTP @ 
<a href="http://192.168.100.3" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">192.168.100.3</a> <br>iptables -t nat -A PREROUTING -p tcp -i eth0 -d <a href="http://1.2.3.4" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

1.2.3.4</a> --dport 21 -j DNAT --to-destination <a href="http://192.168.100.3:21" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">192.168.100.3:21
</a><br>iptables -t nat -A PREROUTING -p tcp -i eth0 -d <a href="http://1.2.3.4" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">1.2.3.4</a> --dport 1024: -j DNAT --to-destination <a href="http://192.168.100.3" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

192.168.100.3</a><br><br>And also <br>#connect to below ip (actual destination ip) with below ports,due to DNATing
<br>iptables -A FORWARD -p tcp -d <a href="http://192.168.100.3" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">192.168.100.3</a> --dport 21 -m state --state NEW -j ACCEPT<br>iptables -A FORWARD -p tcp -d 
<a href="http://192.168.100.3" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">192.168.100.3</a> --dport 1024: -m state --state NEW -j ACCEPT
<br><br><br>R u okay with the above 4 rules ?<br><br>If WRONG, pls write down your rules. I am going to put this vsftp server in to PRODUCTION USE. <br><br><br>Pls also make sure , my firewall has below rules such as DROP, ESTABLISHED,RELATED.
<br><br>iptables -P INPUT DROP<br>iptables -P FORWARD DROP<br>iptables -P OUTPUT DROP<br><br>iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT<br>iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
<br>iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT<br><br><br>YOUR comments. <br><br><br>-- <br>Thank you<br>Indunil Jayasooriya<br>