Las características del protocolo ftp hacen que sea difícil
emplearlo desde una red interna con un cortafuegos que hace
NAT. pf ofrece facilidades para
lograrlo en conjunto con el programa
/usr/sbin/ftp-proxy
que redirige
conexiones ftp a su destino y automáticamente agrega reglas a
pf que permitan la conexión.
El siguiente ejemplo ejemplifica parte del archivo
/etc/pf.conf
para esto:
# En la sección nat/rdr pass on $int_if proto tcp from $lan to any port 21 match in on $int_if proto tcp from $lan to any port 21 rdr-to 127.0.0.1 port 8021 # En la sección de reglas de filtrado pass out proto tcp from $ext_ip to any port 21
Aviso | |
---|---|
Para emplear ftp-proxy asegurese que entre las reglas de su cortafuegos no esté: set skip $int_if porque esto impediría la redirección al puerto 8021 (por defecto usado por ftp-proxy) del cortafuegos cuando se hacen peticiones de ftp. |
Además de las reglas del cortafuegos (recuerde reiniciar pf con pfctl -f /etc/pf.conf para que surtan efecto) debe iniciar el proxy con:
/usr/sbin/ftp-proxy
y para que se efectúe en cada arranque del servidor agregar
a /etc/rc.conf.local
:
ftpproxy_flags=""
Las siguientes páginas man: ftp-proxy(8), pf(4).
Guía del usuario de PF [PF].