systemadmin.es > FTP > vsftpd detras de un NAT

vsftpd detras de un NAT

Al tener un vsftpd detras de un NAT puede provocar que deje de funcionar:

lftp :~> open 10.1.1.3
lftp 10.148.154.3:~> user usuario
Password: 
lftp usuario@10.1.1.3:~> ls
`ls' at 0 [Making data connection...]

Si hacemos un strace al cliente:

strace -s 1000 -o /tmp/lftp lftp 10.1.1.3

Veremos que al intentar establecer la conexion de datos lo hace a la IP desde la que le viene la conexion en lugar de la del NAT:

getpeername(4, {sa_family=AF_INET, sin_port=htons(21), sin_addr=inet_addr("10.1.1.3")}, [1513209483386421264]) = 0
connect(5, {sa_family=AF_INET, sin_port=htons(21521), sin_addr=inet_addr("10.12.10.3")}, 16) = -1 EINPROGRESS (Operation now in progress)

Para poder corregir dicho comportamiento, deberemos editarel fichero de configuración del servidor (normalmente, /etc/vsftpd.conf) y añadir:

pasv_address=0.0.0.0

De estar forma podremos ver que ya funciona:

# strace -s 1000 -o /tmp/lftp lftp 10.1.1.3
lftp 10.1.1.3:~> user usuario
Password: 
lftp usuario@10.1.1.3:~> ls
drwxr-xr-x    2 50005    50005        4096 Apr 08 11:05 nagios
-rw-r--r--    1 50005    50005           3 Apr 08 11:54 test.ftp

Ya que el servidor ya no comunica una IP equivocada al cliente:

getpeername(4, {sa_family=AF_INET, sin_port=htons(21), sin_addr=inet_addr("10.1.1.3")}, [1513209483386421264]) = 0
connect(5, {sa_family=AF_INET, sin_port=htons(28233), sin_addr=inet_addr("10.1.1.3")}, 16) = -1 EINPROGRESS (Operation now in progress)

3 comments to “vsftpd detras de un NAT”

  1. Si me hubiese llegado esta info hace 4 meses, no hubiera perdido 3 días buscando el fallo!!

  2. Cargando el módulo “modprobe ip_nat_ftp” se soluciona el problema. Saludos.

  3. Pero esto es únicamente si el que hace el NAT es el mismo equipo, no? si se hace en transito funciona tambien?

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>