FTP Funcionamiento de FTP Funcionamiento de Cliente FTP Instalacion y Configuracion de Servidor VSFTPD VSFTPD + SSL
FTP (FILE TRASFER PROTOCOL) FTP es un programa que se utiliza para transferir información, almacenada en ficheros, de una máquina remota a otra local, o viceversa (RFC 959). Para poder realizar esta operación es necesario conocer la dirección IP (o el "nombre") de la máquina a la que nos queremos conectar para realizar algún tipo de transferencia. Al igual que HTTP, FTP se basa en el envío de comandos codificados mediante ASCII, es decir, en texto plano.
Esquema de funcionamiento FTP Esquema de funcionamiento FTP es un servicio orientado a conexión concurrente que funciona sobre dos puertos 21 para el intercambio de comandos y 20 para los datos.
FTP
Los elementos que componen el sistema son los siguientes: FTP Los elementos que componen el sistema son los siguientes: Servidor FTP: Máquina a la que nos queremos conectar y que debe aceptar sesiones FTP. Debe ser una máquina en la que esté activo el servicio FTP. A su vez se compone de: Servidor PI Servidor DTP
FTP Servidor PI (Protocol Interpreter): El intérprete de protocolo del servidor “escucha” en el puerto 21 los comandos que le envía el intérprete de protocolo del cliente y controla el proceso de transferencia de datos del servidor.
FTP Servidor DTP (Data Transfer Protocol): El protocolo de transferencia de datos del servidor se utiliza para transmitir los datos entre el servidor y el protocolo de transferencia de datos del cliente. Puede estar en modo “pasivo” a la escucha de conexiones en el puerto 20 de datos.
FTP Cliente FTP: Máquina con la que nos conectamos al servidor FTP. Está compuesta por los siguientes elementos: Interfaz de Usuario Cliente IP Cliente DTP
FTP Interfaz de usuario: Conjunto de comandos de “alto nivel” que el usuario puede memorizar más fácilmente que los comandos FTP que se envían entrecliente y servidor.
FTP Cliente PI: El intérprete de protocolo de usuario inicia el control de la conexión a través del puerto 21 con el servidor FTP, envía los comandos FTP una vez codificados por la interfaz de usuario y los envía al intérprete de protocolo del servidor, y controla el proceso de transferencia de los archivos (DTP).
FTP Cliente DTP: El proceso de transferencia de datos “escucha” el puerto de datos (20) aceptando conexiones para la transferencia de ficheros.
FTP En el modelo descrito en la figura anterior, el PI del cliente inicia la conexión TCP por el puerto 21. Al iniciarse, se envían los comandos mediante dicho PI al PI del servidor y si éste acepta la conexión, solicita una identificación al usuario, pudiéndose realizar un acceso anónimo (no aceptado por todos los servidores). Cuando se solicita un archivo del servidor, se establece una conexión TCP por el puerto 20 para entre el DTP del cliente y el servidor para la transmisión de datos.
Modos de conexión del cliente FTP 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.
FTP
FTP
Conectarse al servidor de FTP [restauracion@/home/crond1 $] ftp www.cabresto.com.ar Connected to www.cabresto.com.ar (46.105.246.169). 220 Welcome to blah FTP service. Name (www.cabresto.com.ar:crond1): ubftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>
FTP posee varios comandos para obtener ayuda de cómo utilizarlo.
Desconectarse servidor de FTP Para salir de una sesión de FTP, se pueden utilizar los siguientes comandos: close: termina la sesión de FTP, pero no sale del programa. bye o quit: termina la sesión de FTP y sale del programa.
FTP Archivos y directorios A continuación se da una relación de comandos del FTP referentes al manejo de archivos y directorios. FTP Archivos y directorios
FTP Transferencia de información Con FTP se puede realizar la transferencia de información en dos formatos diferentes: ascii y binario. Por defecto, la transferencia se hace en modo ascii. FTP Transferencia de información
FTP Clientes: Existen diferentes clients de ftp por linea de comando: Ftp, lftp,sftp,gftp,ncftp Existen diferentes clientes de ftp por grafica: filezilla
Instalando Servidor FTP
VSFTPD Features Virtual IP configurations Virtual users Standalone or inetd operation Powerful per-user configurability Bandwidth throttling Per-source-IP configurability Per-source-IP limits IPv6 Encryption support through SSL integration etc...
VSFTPD Documentacion: Opciones Booleanas Opciones Numericas Opciones de Strings
Archivo de Configuracion: VSFTPD Archivo de Configuracion: /etc/vsftpd/vsftpd.conf
VSFTPD Usuarios Anonimos: Una forma de utilizar este tipo de servicio es de forma anónima, permitiendo el uso para subir o bajar archivos de el utilizando como autenticacion el usuario anonymous y como password una dirección de email.
Por defecto viene configurado el usuario ftp como anonymous VSFTPD Por defecto viene configurado el usuario ftp como anonymous [root@jmr1 vsftpd]# cat /etc/passwd| grep ftp ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
VSFTPD Parametros para Anonymous Anonymous_enable=no fpt_username=user no_anon_password=YES deny_email_enable=YES banned_email_file=/etc/vsftpd/banned_emails
VSFTPD Escritura Anonymous anon_upload_enable=YES chown_upload_mode=0600 (default) anon_umas=077 (default) chown_uploads=YES Chown_username=adecidir anon_mkdir_write_enable=YES nopriv_user=ftpsecure anon_umask=077 (default) ascii_download_enable=NO(default) ascii_upload_enable=NO(default)
VSFTPD Escritura en Gral write_enable=YES local_umask=022 file_open_mode=0770
userlist_deny=YES(default)usa archivo VSFTPD Habilitar Usuarios Locales local_enable=YES Solo acceden los que no estan en el archivo userlist_enable=YES(default) userlist_file=archivo(user_list) Solo acceden los que estan en la lista userlist_deny=YES(default)usa archivo
chroot_list_enable=YES chroot_local_user=YES chroot_list_file=archivo VSFTPD Enjaunlado Usuarios chroot_list_enable=YES chroot_local_user=YES chroot_list_file=archivo
VSFTPD Mensajes dirmessage_enable=YES message_file=.message(default) banner_file=archivo ftpd_banner=string con datos
VSFTPD DISPLAY hide_ids=NO use_localtime=NO(default)ls,mls usa UTC ls_recurse_enable=NO(default)
VSFTPD LOGS syslog_enable=YES log_ftp_protocol=YES xferlog_enable=YES (default) xferlog_std_format=YES(default) xferlog_file=/var/log/vsftpd.log
Valores de Conexion VSFTPD listen=NO(default) listen_address=ip listen_port=21(default) max_clients=0(default,sin limite) max_per_ip=0(default,sin limite)
Timeouts VSFTPD accept_timeout=60(default,tiempo espera pasv) connect_timeout=60(default, tiempo espera port) data_connection_timeout=300(default, stalled ) idle_session_timeout=300(default) local_max_rate=0(default,transferencia) anon_max_rate=0(default)
Otros VSFTPD user_config_dir=/etc/vsftpd/user_conf pam_service_name=vsftpd(default) tcp_wrapper=YES(default)
Timeouts VSFTPD accept_timeout=60(default,tiempo espera pasv) connect_timeout=60(default, tiempo espera port) data_connection_timeout=300(default, stalled ) idle_session_timeout=300(default) local_max_rate=0(default,transferencia) anon_max_rate=0(default)
Ejecutar dos FTP en distintas ip's VSFTPD Ejecutar dos FTP en distintas ip's Crear otro archivo de configuracion Ejecutar el binario pasandole la ruta del archivo de configuracion
Creacion de Certificados VSFTPD + SSL Creacion de Certificados
VSFTPD + SSL [root@jmr1 vsftpd]# cd /etc/pki/tls/certs [root@jmr1 certs]# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/vsftpd.pem -out /etc/pki/tls/certs/vsftpd.pem [root@jmr1 certs]# chmod 600 vsftpd.pem Agregar lo siguiente en /etc/vsftpd/vsftpd.conf rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem ssl_enable=YES force_local_data_ssl=YES force_local_logins_ssl=YES Reiniciar --> /etc/rc.d/init.d/vsftpd restart
FTP Bibliografia: Manual VSFTPD Pdf Wikipedia FTP vsftp + ssl