Modo Pasivo VSFTPD

Habilita qué sólo se permita el acceso en modo pasivo (pasv_enable)
Para activar solo el modo pasivo, yo entiendo que tenemos primero que desactivar que la respuesta o conexión de datos del modo activo y que no se haga por el puerto habitual (20).
Primero desactivo la opción conect_from_port=20=”” poniéndole no y comentándola.
La opción de port enable permite conexiones activas, así que lo ponemos en NO y la comentamos.
Después activo el modo pasivo
Una conexión en modo pasivo básicamente sirve para cambiar el número de los puertos usados en la conexión entre un cliente FTP y su servidor.
Para usarla, además de la configuración en el servidor, el cliente envía una solicitud de conexión pasiva al servidor por el puerto 21 desde un puerto superior al 1024. El servidor responde por un puerto con número superior al 1024 , para indicarle al cliente el nuevo puerto, y el cliente vuelve a establecer la conexión por un puerto superior al 1024, con destino a un puerto dentro del rango que tiene el servidor para conexiones pasivas.
El cliente tiene que iniciar una conexión por ese puerto y tendrá que hacerlo antes de superar un tiempo máximo.
Para designar el rango de puertos habilitados para la opción de modo pasivo añadimos las dos opciones.
También hay que establecer un tiempo de conexión pasiva permitida por el servidor después de enviarle al cliente los datos para su conexión por el puerto designado.
Para probar la conexión en modo pasivo, puedo usar usuarios locales o anónimos, según tenga la configuración de vsftpd.conf
Con filezilla desde Windows XP
Una vez establecida la conexión, uso tcpdump para ver la transferencia de datos y compruebo que los datos van desde el puerto 4075 /dentro del rango usado en vsftdp (4000/4100) y van al puerto 1056 del equipo cliente.

*************************************

ARchivos


vsftpd.conf

# Carpeta de trabajo de usuarios locales
local_root=/home/ftpsri

# Configurar el puerto de escucha
listen_port=21

# Configurar IP de escucha
listen_address=10.33.1.8

# numero maximo de clientes
max_clients=5

# numero maximo de clientes con la misma IP
max_per_ip=5

# Mascara de permisos de usuarios anonimos
anon_umask=266

# Directorio o ubicacion del archivo mensaje
message_file=.mensaje.txt

# Directorio de trabajo de usuarios anonimos
anon_root=/home/ftpsri

# Limitar tasa maxima de transferenca en conexiones de usuarios anonimos
anon_max_rate=25000

# Permite conexiones con transferencia de datos encriptados a usuarios anonimos
#allow_anon_ssl=NO

# Permite conexiones con transferencia encriptada a user locales
#ssl_enable=NO

# Obligar a hacer todas operaciones por SSL
#force_local_data_ssl=NO
#force_local_logins_ssl=NO

# Especificar preferencia de sslv2 sobre sslv3
#ssl_tlsv1=YES
#ssl_sslv2=NO
#ssl_sslv3=NO
#rsa_cert_file=/etc/vsftpd/vsftpd.pem
# Definir el sistema e cifrado
#ssl_ciphers=HIGH

# Listar directorio (solo valido en algunos clientes FTP)
#require_ssl_reuse=NO

# Permite descarga de archivos
download_enable=YES

# Permite leer a los user anonimos archivos permitidos para leer para todo el mundo
#anon_world_readable_only=YES

# Permite crear directorios a los anonimos
#anon_mkdir_write_enable=NO

# Permite un tiempo maximo de conexion entre comando y comando de xx segundos
idle_session_timeout=600

# Limita tiempo de sesion de datos
data_connection_timeout=6000

# Permite modo pasivo
pasv_enable=YES

# Se permites conexiones en modo activo
port_enable=YES

# Puertos para modo pasivo
pasv_max_port=4100
pasv_min_port=4000

# IP de escucha modo pasivo
#pasv_address=192.168.0.12



# Tiempo maximo de espera a que un cliente en modo pasivo establezca la conxeion
accept_timeout=20

# Permitir log de todos los comandos y respuestas. Tiene q estar tambien configurado
# con xferlog_enable=YES y xferlog_std_format=NO y una directiva donde se indica
# el nombre d ela directiva y su ubicacion y nombre vsftpd_log_filr=/var/log/vsftpd.log
log_ftp_protocol=YES


# Activate logging of uploads/downloads.
xferlog_enable=YES

#vsftpd_log_file=/etc/vsftpd/log/vsftpd.log

# Esta opcion obliga a que el formato del log sea estandar
#xferlog_std_format=YES
#dual_log_enable=YES


# Indica el nombre y lugar donde esta el fichero de log de vsftpd
#xferlog_file=/var/log/vsftpd.log

# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
#
# Run standalone? vsftpd can run either from an inetd or as a standalone
# daemon started from an initscript.


# Permite ejecutarse por si solo, sin necesidad de init.d
listen=YES


#
# Run standalone with IPv6?
# Like the listen parameter, except vsftpd will listen on an IPv6 socket
# instead of an IPv4 one. This parameter and the listen parameter are mutually
# exclusive.
#listen_ipv6=YES
#


# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES

#


# Uncomment this to allow local users to log in.
# Permite la conexion de usuarios locales a FTP
local_enable=YES
#

# Uncomment this to enable any form of FTP write command.
write_enable=YES

#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)

# Maskara de permisos de usuarios locales
local_umask=022

#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP usepr.

# Permite subir archivos a anonimos
anon_upload_enable=YES
#

# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.


# Permite crear directorios a los usuarios anonimos
#anon_mkdir_write_enable=NO

#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.

# Activar el mensaje de directorios
dirmessage_enable=YES


#
# If enabled, vsftpd will display directory listings with the time
# in your local time zone. The default is to display GMT. The
# times returned by the MDTM FTP command are also affected by this
# option.
use_localtime=YES
#

#

# Make sure PORT transfer connections originate from port 20 (ftp-data).
# Este apartado sirve para establecer la conexion de datos por el puerto 20
connect_from_port_20=YES

#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
#xferlog_std_format=NO
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.

#Usuario sin privilegios
#nopriv_user= (virtual)


#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:

# Mensaje cuando te conectas al servidor
ftpd_banner="Servidor FTP Red Virtual SRI"

#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may restrict local users to their home directories. See the FAQ for
# the possible risks in this before using chroot_local_user or

# Si se activa, los usuario locales anotados en la lista son enjaulados
#chroot_list_enable=NO

# Nombre y ubicacion de archivo de enjaulamiento usuarios locales
#chroot_list_file=/etc/vsftpd.chroot_list

# Si se activa, los usuarios locales de la lista Pueden salir de su directorio
# NO SE recomiendo no habilitar
#chroot_local_user=NO



#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)


#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
# Customization
#
# Some of vsftpd's settings don't fit the filesystem layout by
# default.
#
# This option should be the name of a directory which is empty. Also, the
# directory should not be writable by the ftp user. This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem
# access.
#secure_chroot_dir=/var/run/vsftpd/empty
#
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd_virtual

#userlist_enable=YES
#tcp_wrappers=YES
#userlist_deny=yes

#
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/ssl/private/vsftpd.pem

## Vsftpd permitira inicio sesion a usuario vsftpd en /home/ftpsri
guest_enable=YES
guest_username=virtual
user_sub_token=$USER
virtual_use_local_privs=YES

## Especifica direc de archivos configuracion por usuario
user_config_dir=/home/ftpsri/vsftpd_user_conf

Comentarios