Реклама: |
While FTP server support is still less than perfect in IPF, FTP client support has been
working well since 3.3.3. As with FTP servers, there are two types of ftp client
transfers: passive and active.
The simplest type of client transfer from the firewall's standpoint is the passive
transfer. Assuming you're keeping state on all outbound tcp sessions, passive transfers
will work already. If you're not doing this already, please consider the following:
pass out proto tcp all keep state
The second type of client transfer, active, is a bit more troublesome, but
nonetheless a solved problem. Active transfers cause the server to open up a second
connection back to the client for data to flow through. This is normally a problem when
there's a firewall in the middle, stopping outside connections from coming back in. To
solve this, ipfilter includes an ipnat proxy which temporarily opens up a hole in
the firewall just for the FTP server to get back to the client. Even if you're not using ipnat
to do nat, the proxy is still effective. The following rules is the bare minimum to add to
the ipnat configuration file (ep0 should be the interface name of the
outbound network connection):
map ep0 0/0 -> 0/32 proxy port 21 ftp/tcp
For more details on ipfilter's internal proxies, see section 3.6