Você está na página 1de 48

Unidad 3: Servidor ftp

Ing. Efrain Padilla Valera


Taller de Sistemas Operativos para Redes

Departamento de Sistemas y Computación


Instituto
Tecnológico
Definición Tepic

 FTP (File Transfer Protocol) es un protocolo de red para la


transferencia de archivos entre sistemas conectados a una red TCP,
basado en la arquitectura cliente-servidor. Desde un equipo cliente se
puede conectar a un servidor para descargar archivos desde él o para
enviarle archivos, independientemente del sistema operativo
utilizado en cada equipo.
Instituto
Tecnológico
TCP/IP Tepic

 El Servicio FTP es ofrecido por la capa de Aplicación del modelo de capas de


red TCP/IP al usuario, utilizando normalmente el puerto de red 20 y el 21. Un
problema básico de FTP es que está pensado para ofrecer la máxima
velocidad en la conexión, pero no la máxima seguridad, ya que todo el
intercambio de información, desde el login y password del usuario en el
servidor hasta la transferencia de cualquier archivo, se realiza en texto plano
sin ningún tipo de cifrado, con lo que un posible atacante puede capturar este
tráfico, acceder al servidor, o apropiarse de los archivos transferidos.
Instituto
Tecnológico
El Modelo FTP Tepic

 En el modelo, el intérprete de protocolo (PI) de usuario, inicia la conexión de control


en el puerto 21. Las órdenes FTP estándar las genera el PI de usuario y se transmiten al
proceso servidor a través de la conexión de control. Las respuestas estándar se envían
desde el PI del servidor al PI de usuario por la conexión de control como respuesta a las
órdenes.
 Estas órdenes FTP especifican parámetros para la conexión de datos (puerto de datos,
modo de transferencia, tipo de representación y estructura) y la naturaleza de la
operación sobre el sistema de archivos (almacenar, recuperar, añadir, borrar, etc.). El
proceso de transferencia de datos (DTP) de usuario u otro proceso en su lugar, debe
esperar a que el servidor inicie la conexión al puerto de datos especificado (puerto 20
en modo activo o estándar) y transferir los datos en función de los parámetros que se
hayan especificado.
 Vemos también en el diagrama que la comunicación entre cliente y servidor es
independiente del sistema de archivos utilizado en cada computadora, de manera que
no importa que sus sistemas operativos sean distintos, porque las entidades que se
comunican entre sí son los PI y los DTP, que usan el mismo protocolo estandarizado: el
FTP.
 También hay que destacar que la conexión de datos es bidireccional, es decir, se puede
usar simultáneamente para enviar y para recibir, y no tiene por qué existir todo el
tiempo que dura la conexión FTP
Instituto
Tecnológico
El Modelo FTP Tepic
Instituto
Tecnológico
Servidor FTP Tepic

 Un servidor FTP es un programa especial que se ejecuta en un equipo


servidor normalmente conectado a Internet (aunque puede estar
conectado a otros tipos de redes, LAN, MAN, etc.). Su función es
permitir el intercambio de datos entre diferentes
servidores/computadoras.
 Por lo general, los programas servidores FTP no suelen encontrarse
en los computadoras personales, por lo que un usuario normalmente
utilizará el FTP para conectarse remotamente a uno y así
intercambiar información con él.
 Las aplicaciones más comunes de los servidores FTP suelen ser el
alojamiento web, en el que sus clientes utilizan el servicio para subir
sus páginas web y sus archivos correspondientes; o como servidor de
backup (copia de seguridad) de los archivos importantes que pueda
tener una empresa. Para ello, existen protocolos de comunicación
FTP para que los datos se transmitan cifrados, como el SFTP (Secure
File Transfer Protocol).
Instituto
Tecnológico
Cliente FTP Tepic

 Cuando un navegador no está equipado con la función FTP, o si se quiere


cargar archivos en una computadoras remota, se necesitará utilizar un
programa cliente FTP. Un cliente FTP es un programa que se instala en la
computadora del usuario, y que emplea el protocolo FTP para conectarse a un
servidor FTP y transferir archivos, ya sea para descargarlos o para subirlos.
 Para utilizar un cliente FTP, se necesita conocer el nombre del archivo, la
computadora en que reside (servidor, en el caso de descarga de archivos), el
ordenador al que se quiere transferir el archivo (en caso de querer subirlo
nosotros al servidor), y la carpeta en la que se encuentra.
 Algunos clientes de FTP básicos en modo consola vienen integrados en los
sistemas operativos, incluyendo Windows, DOS, Linux y Unix. Sin embargo,
hay disponibles clientes con opciones añadidas e interfaz gráfica. Aunque
muchos navegadores tienen ya integrado FTP, es más confiable a la hora de
conectarse con servidores FTP no anónimos utilizar un programa cliente.
Instituto
Tecnológico
Modos de conexión del cliente FTP Tepic

 FTP admite dos modos de conexión del cliente. Estos modos se denominan Activo (o
Estándar, o PORT, debido a que el cliente envía comandos tipo PORT al servidor por el
canal de control al establecer la conexión) y Pasivo (o PASV, porque en este caso envía
comandos tipo PASV). Tanto en el modo Activo como en el modo Pasivo, el cliente
establece una conexión con el servidor mediante el puerto 21, que establece el canal de
control.

Modo Activo
En modo Activo, el servidor siempre crea el canal de
datos en su puerto 20, mientras que en el lado del cliente
el canal de datos se asocia a un puerto aleatorio mayor
que el 1024. Para ello, el cliente manda un comando
PORT al servidor por el canal de control indicándole ese
número de puerto, de manera que el servidor pueda
abrirle una conexión de datos por donde se transferirán
los archivos y los listados, en el puerto especificado.
Lo anterior tiene un grave problema de seguridad, y es
que la máquina cliente debe estar dispuesta a aceptar
cualquier conexión de entrada en un puerto superior al
1024, con los problemas que ello implica si tenemos el
equipo conectado a una red insegura como Internet. De
hecho, los cortafuegos que se instalen en el equipo para
evitar ataques seguramente rechazarán esas conexiones
aleatorias. Para solucionar esto se desarrolló el modo
Pasivo.
Instituto
Tecnológico
Modos de conexión del cliente FTP Tepic

 Modo Pasivo
 Cuando el cliente envía un comando PASV sobre el canal de control, el servidor FTP abre un
puerto efímero (cualquiera entre el 1024 y el 5000) e informa de ello al cliente FTP para que,
de esta manera, sea el cliente quien conecte con ese puerto del servidor y así no sea necesario
aceptar conexiones aleatorias inseguras para realizar la transferencia de datos.
 Antes de cada nueva transferencia, tanto en el modo Activo como en el Pasivo, el cliente debe
enviar otra vez un comando de control (PORT o PASV, según el modo en el que haya
conectado), y el servidor recibirá esa conexión de datos en un nuevo puerto aleatorio (si está
en modo pasivo) o por el puerto 20 (si está en modo activo).
Instituto
Tecnológico
Programas que funcionan como servidor ftp Tepic

AceFTP
CoreFTP
FileZilla
SmartFTP
WS_FTPLE
Instituto
Tecnológico
Servidores FTP Tepic

 Red Hat Enterprise Linux se entrega con dos servidores


FTP diferentes:
 Acelerador de Contenidos Red Hat — Un servidor Web basado
en el kernel que ofrece un servidor web y servicios FTP de alto
rendimiento. Puesto que la velocidad es su objetivo principal de
diseño, su funcionalidad es limitada y solamente se ejecuta como
FTP anónimo. Para más información sobre la configuración y
administración del Acelerador de Contenidos Red Hat,
consulte la documentación disponible en línea en
http://www.redhat.com/docs/manuals/tux/.

 vsftpd — un demonio FTP rápido y seguro, preferido para Red


Hat Enterprise Linux. El resto de este capítulo se enfoca en vsftpd.
Instituto
Tecnológico
vsftpd Tepic

 El demonio FTP vsftpd (o Very Secure FTP Daemon) está diseñado


desde la base para ser rápido, estable y lo más importante, seguro. Su
habilidad para manejar grandes números de conexiones de forma
eficiente y segura es lo que hace que vsftpd sea el único FTP
independiente distribuido con Red Hat Enterprise Linux.

 El modelo de seguridad utilizado por vsftpd tiene tres aspectos


principales:
• Clara separación de procesos privilegiados y sin
privilegios — Procesos separados manejan tareas diferentes y
cada uno de estos procesos se ejecuta con los privilegios
mínimos requeridos para la tarea.
• Las tareas que requieren altos privilegios son manejadas
por procesos con los mínimos privilegios necesarios —
Influenciando las compatibilidades encontradas en la
biblioteca libcap, las tareas que usualmente requieren
privilegios de superusuario se pueden ejecutar de forma más
segura desde un proceso menos privilegiado.
Instituto
Tecnológico
vsftpd Tepic

• La mayoría de los procesos se ejecutan enjaulados en un


ambiente chroot — Siempre que sea posible, se cambia la
raíz de los procesos al directorio compartido; este directorio se
considera luego como la jaula chroot. Por ejemplo, si el
directorio /var/ftp/ es el directorio compartido principal,
vsftpd reasigna /var/ftp/ al nuevo directorio raíz, conocido
como /. Esto previene actividades maliciosas de cualquier
hacker potencial en algún directorio que no están por debajo
del nuevo directorio root.
Instituto
Tecnológico
vsftpd Tepic

 El uso de estas prácticas de seguridad tiene el efecto siguiente en


cómo vsftpd trata con las peticiones:

 El proceso padre se ejecuta con el mínimo de privilegios


requerido — El proceso padre calcula dinámicamente el nivel de
privilegios requerido para minimizar el nivel de riesgos. Los
procesos hijo manejan la interacción directa con los clientes FTP y
se ejecutan casi sin ningún privilegio.
 Todas las operaciones que requieren altos privilegios son
manejadas por un pequeño proceso padre — Similar a Servidor
Apache HTTP, vsftpd lanza procesos hijos sin privilegios para
manejar las conexiones entrantes. Esto permite al proceso padre
privilegiado, ser tan pequeño como sea posible y manejar
relativamente pocas tareas.
 El proceso padre no confía en ninguna de las peticiones desde
procesos hijos sin privilegios — Las comunicaciones con
procesos hijos se reciben sobre un socket y la validez de cualquier
información desde un proceso hijo es verificada antes de proceder.
Instituto
Tecnológico
vsftpd Tepic

 La mayor parte de la interacción con clientes FTP la manejan


procesos hijo sin privilegios en una jaula chroot. — Debido a
que estos procesos hijo no tienen privilegios y solamente tienen
acceso al directorio que está siendo compartido, cualquier proceso
fallido solamente permitira al atacante acceder a los archivos
compartidos. — El proceso padre calcula dinámicamente el nivel
de privilegios requerido para minimizar el nivel de riesgos. Los
procesos hijo manejan la interacción directa con los clientes FTP y
se ejecutan casi sin ningún privilegio.
Instituto
Tecnológico
Instalando el Servidor ftp Tepic

 Para asegurarse que vsftpd esta instalado


escribir el siguiente comando en la terminal
# rpm -qa | grep vsftpd
o
# rpm -q vsftpd

De lo contrario
#yum install vsftpd
o
# rpm -Uvh latest_vsftpd.rpm
Instituto
Tecnológico
Archivos instalados con vsftpd Tepic

 El RPM vsftpd instala el demonio (/usr/sbin/vsftpd), su archivo de


configuración y otros archivos relacionados, así como también
directorios FTP en el sistema.

 /etc/rc.d/init.d/vsftpd — El script de inicialización (initscript) utilizado


por el comando /sbin/service para iniciar, detener o volver a cargar vsftpd

 /etc/pam.d/vsftpd — El archivo de configuración de los Pluggable


Authentication Modules (PAM) para vsftpd. Este archivo define los
requerimientos que debe cumplir un usuario para conectarse a un
servidor FTP.

 /etc/vsftpd/vsftpd.conf — El archivo de configuración para vsftpd

 /etc/vsftpd/ftpusers — Una lista de los usuarios que no tienen


permitido conectarse a vsftpd. Por defecto esta lista incluye a los usuarios
root, bin y daemon, entre otros.
Instituto
Tecnológico
Archivos instalados con vsftpd Tepic

 /etc/vsftpd/user_list — Este archivo se puede configurar para negar o


permitir el acceso a los usuarios listados, dependiendo de si la directriz
userlist_deny está configurada a YES (por defecto) o a NO en
/etc/vsftpd/vsftpd.conf. Si se utiliza /etc/vsftpd.user_list para permitir
acceso a los usuarios, los nombres de usuarios listados no deben aparecer
en /etc/vsftpd.ftpusers.

 El directorio /var/ftp/ — El directorio que contiene los archivos


servidos por vsftpd. También contiene el directorio /var/ftp/pub/ para los
usuarios anónimos. Ambos directorios están disponibles para la lectura
de todos, pero sólo el superusuario o root puede escribir en el.
Instituto
Tecnológico
Iniciar y detener vsftpd Tepic

 Para iniciar el servidor, escriba como usuario root, lo siguiente:


#/sbin/service vsftpd start
parar
#/sbin/service vsftpd stop
reiniciar
#/sbin/service vsftpd restart

La opción condrestart (reinicio condicional) solamente


arranca vsftpd si está ejecutándose en ese momento.
Esta opción es muy útil para scripts, puesto que no
arranca el demonio si este no se está ejecutando.
#/sbin/service vsftpd condrestart
Instituto
Tecnológico
Opciones de configuración vsftpd Tepic

 Toda la configuración de vsftpd es manejada por su archivo de configuración,


/etc/vsftpd/vsftpd.conf. Cada directriz está en su propia línea dentro del
archivo y sigue el formato siguiente:

sintaxis
<directive>=<value>
Para cada directriz, reemplace <directive> con una directriz válida y <value> con un
valor válido.

Importante
No deben existir espacios entre la <directive>, el símbolo de igualdad y el <value> en
una directriz.
Se debe colocar el símbolo de almohadilla (#) antes de una línea en comentarios. El
demonio ignorará cualquier línea en comentarios.
Instituto
Tecnológico
Directivas de Opciones de demonios Tepic

 La lista siguiente presenta las directrices que controlan el comportamiento


general del demonio vsftpd.
 listen — Cuando está activada, vsftpd se ejecuta en modo independiente.
Red Hat Enterprise Linux configura este valor a YES. Esta directriz no se
puede utilizar en conjunto con la directriz listen_ipv6.
El valor predeterminado es NO.
 listen_ipv6 — Cuando esta directriz está activada vsftpd se ejecuta en
modo independiente, pero solamente escucha a los sockets IPv6. Esta
directriz no se puede utilizar junto con la directriz listen.
El valor predeterminado es NO.
 session_support — Si está activada, vsftpd intentará mantener sesiones
de conexión para cada usuario a través de Pluggable Authentication
Modules (PAM). Si no es necesario hacer sesiones de conexión, el
desactivar esta opción hace que vsftpd se ejecute con menos procesos y
privilegios más bajos.
El valor por defecto es YES.
Instituto
Tecnológico
Opciones de conexión y control de acceso Tepic

 anonymous_enable — Al estar activada, se permite que los usuarios


anónimos se conecten. Se aceptan los nombres de usuario anonymous y
ftp. El valor por defecto es YES.
 banned_email_file — Si la directriz deny_email_enable tiene el valor de
YES, entonces esta directriz especifica el archivo que contiene una lista
de contraseñas de correo anónimas que no tienen permitido acceder al
servidor.
El valor predeterminado es /etc/vsftpd.banned_emails.
 banner_file — Especifica un archivo que contiene el texto que se
mostrará cuando se establece una conexión con el servidor. Esta opción
se sobrepone cualquier texto especificado en la directriz ftpd_banner.
Esta directriz no tiene un valor predeterminado.
 cmds_allowed — Especifica una lista delimitada por comas de los
comandos FTP que permite el servidor. Se rechaza el resto de los
comandos.
Esta directriz no tiene un valor predeterminado.
Instituto
Tecnológico
Opciones de conexión y control de acceso Tepic

 deny_email_enable — Si está activada, se le niega el acceso al servidor a


cualquier usuario anónimo que utilice contraseñas de correo especificadas
en /etc/vsftpd.banned_emails. Se puede especificar el nombre del archivo
al que esta directriz hace referencia usando la directriz banned_email_file.
El valor predeterminado es NO.
 ftpd_banner — Si está activada, se muestra la cadena de caracteres
especificada en esta directriz cuando se establece una conexión con el
servidor. banner_file puede sobreescribir esta opción.
Por defecto, vsftpd muestra su pancarta estándar.
 local_enable — Al estar activada, los usuarios locales pueden conectarse
al sistema. El valor por defecto es YES.
 pam_service_name — Especifica el nombre de servicio PAM para vsftpd.
El valor predeterminado es ftp, sin embargo, bajo Red Hat Enterprise
Linux, el valor es vsftpd.
 tcp_wrappers — Al estar activada, se utilizan TCP wrappers para otorgar
acceso al servidor. También, si el servidor FTP está configurado en
múltiples direcciones IP, la opción VSFTPD_LOAD_CONF se puede
utilizar para cargar diferentes archivos de configuración en la dirección IP
solicitada por el cliente. El valor predeterminado es YES
Instituto
Tecnológico
Opciones de conexión y control de acceso Tepic

 userlist_deny — Cuando se utiliza en combinación con la directriz


userlist_enable y con el valor de NO, se les niega el acceso a todos los
usuarios locales a menos que sus nombres esten listados en el archivo
especificado por la directriz userlist_file. Puesto que se niega el acceso antes
de que se le pida la contraseña al cliente, al configurar esta directriz a NO
previene a los usuarios locales a proporcionar contraseñas sin encriptar
sobre la red.
El valor por defecto es YES.
 userlist_enable — Cuando está activada, se les niega el acceso a los
usuarios listados en el archivo especificado por la directriz userlist_file.
Puesto que se niega el acceso al cliente antes de solicitar la contraseña, se
previene que los usuarios suministren contraseñas sin encriptar sobre la
red.
El valor predeterminado YES.
 userlist_file — Especifica el archivo al que vsftpd hace referencia cuando la
directriz userlist_enable está activada. El valor predeterminado es
/etc/vsftpd.user_list y es creado durante la instalación.
 cmds_allowed — Especifica una lista separada por comas de los comandos
FTP que permite el servidor. Cualquier otro comando es rechazado. Esta
directriz no tiene un valor predeterminado.
Instituto
Tecnológico
Opciones del usuario local Tepic

 La siguiente es una lista de las directrices que caracterizan la


forma en que los usuarios locales acceden al servidor. Para
utilizar estas opciones, la directriz local_enable debe estar a
YES.
 chmod_enable — Cuando está activada, se permite el comando FTP
SITE CHMOD para los usuarios locales. Este comando permite que los
usuarios cambien los permisos en los archivos.
El valor por defecto es YES.
 chroot_list_enable — Cuando está activada, se coloca en una prisión de
chroot a los usuarios locales listados en el archivo especificado en la
directriz chroot_list_file.
 Si se utiliza en combinación con la directriz chroot_local_user, los
usuarios locales listados en el archivo especificado en la directriz
chroot_list_file, no se colocan en una prisión chroot luego de conectarse.
El valor predeterminado es NO.
Instituto
Tecnológico
Opciones del usuario local Tepic

 chroot_list_file — Especifica el archivo que contiene una lista de los


usuarios locales a los que se hace referencia cuando la directriz
chroot_list_enable está en YES.
El valor por defecto es /etc/vsftpd.chroot_list.
 chroot_local_user — Si está activada, a los usuarios locales se les
cambia el directorio raíz (se hace un chroot) a su directorio principal
luego de la conexión.
El valor predeterminado es NO.
Aviso: Al activar chroot_local_user se abren varios problemas de
seguridad, especialmente para los usuarios con privilegios para hacer
cargas. Por este motivo, no se recomienda su uso.
 guest_enable — Al estar activada, todos los usuarios anónimos se
conectan como guest, el cual es el usuario local especificado en la
directriz guest_username.
El valor predeterminado es NO.
 guest_username — Especifica el nombre de usuario al cual guest está
asignado.
El valor por defecto es ftp
Instituto
Tecnológico
Opciones del usuario local Tepic

 local_root — Especifica el directorio al cual vsftpd se cambia después de


que el usuario se conecta.
Esta directriz no tiene un valor predeterminado.
 local_umask — Especifica el valor de umask para la creación de
archivos. Observe que el valor por defecto está en forma octal (un sistema
numérico con base ocho), que incluye un prefijo de "0". De lo contrario el
valor es tratado como un valor entero de base 10.
El valor por defecto 022.
 passwd_chroot_enable — Cuando se activa junto con la directriz
chroot_local_user, vsftpd cambia la raiz de los usuarios locales basado en
la ocurrencia de /./ en el campo del directorio principal dentro de
/etc/passwd.
El valor predeterminado es NO.
 user_config_dir — Especifica la ruta a un directorio que contiene los
archivos de configuración con los nombres de los usuarios locales.
Contiene información específica sobre ese usuario. Cualquier directriz en
el archivo de configuración del usuario ignora aquellas encontradas en
/etc/vsftpd/vsftpd.conf.
Esta directriz no tiene un valor predeterminado
Instituto
Tecnológico
Opciones de directorio Tepic

 La siguiente es una lista de directrices que afectan a los directorios.


 dirlist_enable — Al estar activada, los usuarios pueden ver los listados
de directorios.
El valor por defecto es YES.
 dirmessage_enable — Al estar activada, cada vez que un usuario entra
en un directorio con un archivo de mensaje. Este mensaje se encuentra
dentro del directorio al que se entra. El nombre de este archivo se
especifica en la directriz message_file y por defecto es .message.
El valor predeterminado es NO, sin embargo, bajo Red Hat Enterprise
Linux el valor está configurado a YES.
 force_dot_files — Al estar activada, se listan en los listados de
directorios los mensajes que comienzan con un punto (.), a excepción de
los archivos . y ...
El valor predeterminado es NO.
 hide_ids — Cuando está activada, todos los listados de directorios
muestran ftp como el usuario y grupo para cada archivo.
El valor predeterminado es NO.
Instituto
Tecnológico
Opciones de directorio Tepic

 message_file — Especifica el nombre del archivo de mensaje cuando se


utiliza la directriz dirmessage_enable.
El valor predeterminado es .message.
 text_userdb_names — Cuando está activado, se utilizan los nombres de
usuarios y grupos en lugar de sus entradas UID o GID. Al activar esta
opción puede que reduzca el rendimiento del servidor.
El valor predeterminado es NO.
 use_localtime — Al estar activada, los listados de directorios revelan la
hora local para el computador en vez de GMT.
El valor predeterminado es NO
Instituto
Tecnológico
Opciones de transferencia de archivos Tepic

 download_enable — Cuando está activada, se permiten las descargas de


archivos.
El valor por defecto es YES.
 chown_uploads — Si está activada, todos los archivos cargados por los
usuarios anónimos pertenecen al usuario especificado en la directriz
chown_username.
El valor predeterminado es NO.
 chown_username — Especifica la propiedad de los archivos cargados
anónimamente si está activada la directriz chown_uploads.
El valor predeterminado es root.
 write_enable — Cuando está activada, se permiten los comandos FTP
que pueden modificar el sistema de archivos, tales como DELE, RNFR y
STOR.
El valor por defecto es YES.
Instituto
Tecnológico
Opciones de conexión Tepic

 A continuación se presenta una lista con las directrices que


afectan el comportamiento de conexión de vsftpd.
 dual_log_enable — Cuando se activa en conjunto con xferlog_enable,
vsftpd escribe simultáneamente dos archivos: un registro compatible con
wu-ftpd al archivo especificado en la directriz xferlog_file (por defecto
/var/log/xferlog) y un archivo de registro estándar vsftpd especificado en
la directriz vsftpd_log_file (por defecto /var/log/vsftpd.log).
El valor predeterminado es NO.
 log_ftp_protocol — Cuando está activado en conjunto con
xferlog_enable y con xferlog_std_format configurada a NO, se registran
todos los comandos y respuestas. Esta directriz es muy útil para
propósitos de depuración.
El valor predeterminado es NO.
 syslog_enable — Cuando se activa en conjunto con xferlog_enable,
todos los registros que normalmente se escriben al archivo estándar
vsftpd especificado en la directriz vsftpd_log_file, se envían al registro del
sistema bajo la facilidad FTPD.
El valor predeterminado es NO.
Instituto
Tecnológico
Opciones de conexión Tepic

 vsftpd_log_file — Especifica el archivo de registro de vsftpd. Para que se


utilice este archivo, xferlog_enable debe estar activado y
xferlog_std_format debe ser bien sea NO o, si está en YES, entonces
dual_log_enable debe estar activado. Es importante resaltar que si
syslog_enable está en YES, se utiliza el registro del sistema en lugar del
archivo especificado en esta directriz.
El valor por defecto es /var/log/vsftpd.log.
 xferlog_enable — Cuando se activa, vsftpd registra las conexiones
(solamente formato vsftpd) y la información de transferencia, al archivo
de registro especificado en la directriz vsftpd_log_file (por defecto es
/var/log/vsftpd.log). Si xferlog_std_format está configurada a YES, se
registra la información de transferencia de archivo pero no las conexiones
y en su lugar se utiliza el archivo de registro especificado en xferlog_file
(por defecto /var/log/xferlog). Es importante observar que se utilizan
ambos archivos y formatos de registro si dual_log_enable tiene el valor de
YES.
El valor predeterminado es NO, sin embargo, bajo Red Hat Enterprise
Linux el valor está configurado a YES.
Instituto
Tecnológico
Opciones de conexión Tepic

 xferlog_file — Especifica el archivo de registro compatible con wu-ftpd.


Para que se utilice este archivo, xferlog_enable debe estar activado y
xferlog_std_format debe tener el valor de YES. También se utiliza si
dual_log_enable tiene el valor de YES.
El valor por defecto es /var/log/xferlog.
 xferlog_std_format — Cuando se activa en combinación con
xferlog_enable, sólo se escribe un archivo de registro compatible con wu-
ftpd al archivo especificado en la directriz xferlog_file (por defecto
/var/log/xferlog). Es importante resaltar que este archivo solamente
registra transferencias de archivos y no las conexiones al servidor.
El valor predeterminado es NO, sin embargo, bajo Red Hat Enterprise
Linux el valor está configurado a YES.
Instituto
Tecnológico
Opciones de red Tepic

 Lo siguiente lista las directrices que afectan cómo vsftpd interactua con la
red.
 accept_timeout — Especifica la cantidad de tiempo para un cliente
usando el modo pasivo para establecer una conexión.
El valor por defecto 60.
 anon_max_rate — Especifica la cantidad máxima de datos transmitidos
por usuarios anónimos en bytes por segundo.
El valor por defecto es 0, lo que no limita el ratio de transferencia.
 connect_from_port_20 — Cuando está activada, vsftpd se ejecuta con
privilegios suficientes para abrir el puerto 20 en el servidor durante las
transferencias de datos en modo activo. Al desactivar esta opción, se
permite que vsftpd se ejecute con menos privilegios, pero puede ser
incompatible con algunos clientes FTP.
 El valor predeterminado es NO, sin embargo, bajo Red Hat Enterprise
Linux el valor está configurado a YES.
 connect_timeout — Especifica la cantidad máxima de tiempo que un
cliente usando el modo activo tiene para responder a una conexión de
datos, en segundos.
 El valor por defecto 60.
Instituto
Tecnológico
Opciones de red Tepic

 data_connection_timeout — Especifica la cantidad máxima de tiempo


que las conexiones se pueden aplazar en segundos. Una vez lanzado, se
cierra la conexión con el cliente remoto.
El valor predeterminado es 300.
 ftp_data_port — Especifica el puerto utilizado por las conexiones de
datos activas cuando connect_from_port_20 está configurado a YES.
El valor predeterminado es 20.
 idle_session_timeout — Especifica la cantidad máxima de tiempo entre
comandos desde un cliente remoto. Una vez disparado, se cierra la
conexión al cliente remoto.
El valor predeterminado es 300.
 listen_address — Especifica la dirección IP en la cual vsftpd escucha por
las conexiones de red.
Esta directriz no tiene un valor predeterminado
 listen_address6 — Especifica la dirección IPv6 en la cual vsftpd escucha
por conexiones de red cuando listen_ipv6 está configurada a YES.
Esta directriz no tiene un valor predeterminado.
Instituto
Tecnológico
Opciones de red Tepic

 listen_port — Especifica el puerto en el cual vsftpd escucha por


conexiones de red.
El valor predeterminado es 21.
 local_max_rate — Especifica la máxima tasa de transferencia de datos
para los usuarios locales conectados en el servidor en bytes de segundo.
El valor por defecto es 0, lo que no limita la tasade transferencia.
 max_clients — Especifica el número máximo de clientes simultáneos
que tienen permitido conectarse al servidor cuando se ejecuta en modo
independiente. Cualquier conexión adicional resultará en un mensaje de
error.
El valor predeterminado es 0, lo que no limita las conexiones.
 max_per_ip — Especifica el máximo número de clientes que tienen
permitido conectarse desde la misma dirección IP fuente.
El valor predeterminado es 0, lo que no limita las conexiones.
Instituto
Tecnológico
Opciones de red Tepic

 pasv_address — Especifica la dirección IP para la IP del lado público del


servidor para los servidores detrás de cortafuegos Network Address
Translation (NAT). Esto permite que vsftpd entregue la dirección correcta de
retorno para las conexiones pasivas.
Esta directriz no tiene un valor predeterminado.
 pasv_enable — Cuando está activa, se permiten conexiones en modo pasivo.
El valor por defecto es YES.
 pasv_max_port — Especifica el puerto más alto posible enviado a los clientes
FTP para las conexiones en modo pasivo. Esta configuración es utilizada para
limitar el intervalo de puertos para que las reglas del cortafuegos sean más
fáciles de crear.
El valor predeterminado es 0, lo que no limita el rango de puertos pasivos más
alto. El valor no puede exceder de 65535.
 pasv_min_port — Especifica el puerto más bajo posible para los clientes FTP
para las conexiones en modo pasivo. Esta configuración es utilizada para
limitar el intervalo de puertos para que las reglas del cortafuego sean más
fáciles de implementar. El valor predeterminado es 0, lo que no limita el
intervalo de puertos pasivos más bajo.
El valor no debe ser menor que 1024.
Instituto
Tecnológico
Opciones de red Tepic

 pasv_promiscuous — Cuando está activada, las conexiones de datos no


son verificadas para asegurarse de que se originan desde la misma
dirección IP. Este valor solamente es útil para ciertos tipos de tunneling.
 Atención no active esta opción a menos que sea absolutamente
necesario ya que desactiva una funcionalidad de seguridad muy
importante la cual verifica que las conexiones en modo pasivo partan
desde la misma dirección IP que la conexìón de control que inicia la
transferencia de datos.
El valor predeterminado es NO.
 port_enable — Cuando está activada, se permiten las conexiones en
modo activo.
El valor por defecto es YES.
Instituto
Tecnológico
Ejemplo: Tepic

 si tenemos montado un servidor Web para que los diseñadores y webmasters


puedan dejar allí sus creaciones sin molestar a los administradores, nosotros.
Con este objetivo, vamos a montar un servidor ftp.

 Usuario: client1
Acceso a su directorio: /var/www/dominio1
Sin shell en el sistema y en un entorno chroot

Usuario: client2
Acceso a su directorio: /var/www/dominio2
Sin shell en el sistema y en un entorno chroot

Usuario: webmaster
Acceso a su directorio: /var/www
Sin shell en el sistema y en un entorno chroot
Instituto
Tecnológico
Ejemplo: Tepic

 Preparación del sistema

Antes de instalar el servidor ftp vamos a crear los usuarios y securizarlos para
que tengan los mínimos permisos y sólo puedan hacer lo que nosotros
definamos.

Crearemos un grupo llamado ftp al cual asociaremos los usuarios.

# groupadd ftp

Creamos los usuarios con sus correspondientes características.

#useradd -g ftp -d /var/www/dominio1 -c " Cliente 1 " client1


#useradd -g ftp -d /var/www/dominio2 -c " Cliente 2 " client2
#useradd -g ftp -d /var/www -c " webmaster " webmaster

Les asignamos un password a los usuarios con el comando passwd. Si no


tiene password no funcionará.
Ahora creamos una shell fantasma en el directorio correspondiente.
#mkdir /bin/ftp
Instituto
Tecnológico
Ejemplo: Tepic

 Editamos el archivo/etc/shells y la añadimos en la ultima línea /bin/ftp

 Editamos el archivo /etc/passwd y buscamos las líneas donde están definidos


los usuarios que hemos creado antes y les añadimos el shell falso:
client1:x:501:50: Cliente 1 :/var/www/dominio1:/bin/ftp
client2:x:502:50: Cliente 2 :/var/www/dominio2:/bin/ftp
webmaster:x:503:50: webmaster :/var/www:/bin/ftp
Instituto
Tecnológico
Configuración del servidor Tepic

 El archivo de configuración del servidor se encuentra en


/etc/vsftpd/vsftpd.conf. Lo editamos para configurarlo a nuestro gusto y
objetivo. El contenido es algo parecido, buscamos las líneas indicadas y las
modificamos:

# Example config file /etc/vsftpd/vsftpd.conf


#Escuchando
listen=YES
#
................................................
# Desactivamos el acceso anónimo
anonymous_enable=NO
#
# Descomentamos la línea para que se puedan conectar
local_enable=YES
#
# Permitimos a usuarios locales escribir
write_enable=YES
#
Instituto
Tecnológico
Configuración del servidor Tepic

# APLICA CONFIGURACIÓN UMASK


local_umask=003
#Mensajes welcome
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
............................
#
# You may override where the log file goes if you like. The default is shown
# below.
xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format
xferlog_std_format=YES
Instituto
Tecnológico
Configuración del servidor Tepic

 # Se descomenta esto para crear una jaula


chroot_local_user=YES
# 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().
#chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
#
# Debian customization
# secure_chroot_dir=/var/run/vsftpd
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
#rsa_cert_file=/etc/ssl/certs/vsftpd.pem
userlist_enable=YES
tcp_wrappers=YES
userlist_deny=NO
Instituto
Tecnológico
Configuración del servidor Tepic

 A continuación creamos el archivo chroot_list el cual tendrá la lista de


usuarios que no tendrán acceso al servidor:

# touch /etc/vsftpd/chroot_list

asignamos los datos a este archivo desde etc/password con el comando.

# cat /etc/passwd | awk -F: '{ print $1 }' > /etc/vsftpd/chroot_list

Esto nos genera un archivo con los login de usuarios del sistema del cual
quitamos los que si queremos que tengan acceso y los ponemos en el archivo
/etc/vsftpd/user_list.

Contenido de chroot_list
# usuarios con no acceso
root
daemon
bin
sys
sync
Instituto
Tecnológico
Configuración del servidor Tepic

 vsftpd.user_list
#usuarios con acceso
webmaster
client1
client2

Afinando aún más

Dentro del archivo de configuración (vsftpd.conf) algunas opciones interesantes que


también podemos controlar son las siguientes:

#opciones de transferencia
#ancho banda por usuario anónimo 5kb
anon_max_rate=5100
#ancho de banda por usuario local 5kb
local_max_rate=5100
#número máximo clientes simultáneos
max_clients=5
#máximo conexiones por ip
max_per_ip=2
#envía al sistema
syslog_enable=YES
session_support=YES
Instituto
Tecnológico
Para entrar con el navegador Tepic

ftp://usuario:contraseña@localhost
www.themegallery.com

Você também pode gostar