1 RedTauros ltda Versión 1.2 02/2014 http://www.redtauros.com 2 SERVIDORES LINUX FTP Introducción FTP (sigla en inglés de File Transfer Protocol - Protocolo de Transferencia de Archivos) en informática, es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol), 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. Este es uno de los servicios mas usados e importantes. Lo usamos para publicar la mayoría de los sitios Web y compartir archivos entre otros. Objetivos Al finalizar este nivel Servidor FTP el estudiante: 1. 2. 3. 4. 5. Instalara y configurara un servidor FTP. Conocerá una de las formas mas seguras de crear un Servidor FTP. Manipulara los archivos de configuración de este Servidor. Creara usuarios para usar el FTP. Usara varios métodos de conexión. Temario Índice de contenido SERVIDORES LINUX FTP...................................2 Servidor FTP...........................................................3 Instalación de vsftpd......................................3 Creación del grupo.............................................3 Creación del home.........................................3 Creación de shell FTP........................................3 Creando usuarios FTP........................................4 Ficheros de configuración..................................4 Configuración de vsftpd.....................................4 Parámetro anonymous_enable.......................4 Parámetro local_enable..................................5 RedTauros ltda Parámetro write_enable.................................5 Parámetro local_umask..................................5 Avanzado - Enjaulando a los usuarios FTP.. .5 Control del ancho de banda...........................5 Reinicio del servidor FTP..............................6 Editar el Archivo Hosts......................................6 Comandos FTP...................................................6 Conexión ftp por consola...............................7 Conexión por navegador................................7 Conexión mediante un cliente FTP...............7 Recordar ......................................................10 Versión 1.2 02/2014 http://www.redtauros.com 3 Servidor FTP El Protocolo de Transferencia de Archivos (FTP) es un protocolo TCP, que nos permite subir y descargar archivos, funciona según el modelo cliente/servidor. Esta continuamente escuchando por el puerto 21 tcp para las peticiones de conexión de clientes remotos, cuando recibe una petición la gestiona, establece la conexión y ejecuta las ordenes enviadas por el cliente. El acceso a un servidor FTP puede hacerse de dos maneras: • • anónimo. Autenticado. Instalación de vsftpd Existen una gran variedad de servidores FTP para GNU/Linux, pero se le elige vsftpd ya que muy fácil de configurar y es uno de servidores FTP mas seguros. Para poder hacer la instalación del servidor vsftpd tendremos que hacer lo siguiente. sudo apt-get update sudo apt-get install vsftpd Ya que termine de descargar y instalar los paquetes tenemos que hacer varios pasos para que funcione nuestro servidor ftp. Creación del grupo Ahora revisamos de que el grupo ftp este creado, el cual controle al servicio de vsftpd. revisamos el fichero group, que esta en /etc, asi: sudo vim /etc/group Y revisamos las ultimas lineas, si no aparece el grupo ftp, tenemos que crear un grupo de la siguiente manera: sudo groupadd ftp Creación del home Tenemos que crear el deposito o el home donde el cuando el servidor vsftpd termina de instalarse de la siguiente manera /srv/ftp, pero tu puedes como /var/ftp. Por ejemplo si la queremos en usuario rodmen: usuario va alojar su información, crea una carpeta en /srv quedando tener tus usuarios en otras rutas /home, nos quedaría así para un sudo mkdir /home/ftp/rodmen Creación de shell FTP Lo que haremos es crear un shell virtual o fantasma, para que los usuarios no puedan conectarse a una sesión del sistema operativo. sudo mkdir /bin/ftp Ya que lo creamos,ahora tenemos que editar el siguiente archivo. vim /etc/shells Agregar al final del archivo /etc/ftp. /bin/bash RedTauros ltda Versión 1.2 02/2014 http://www.redtauros.com 4 /bin/rbash /bin/ftp Por defecto en Ubuntu, se direcciona al siguiente shell, que tambien es fantasma: /bin/false Creando usuarios FTP Para poder crear usuarios para nuestro servicio ftp se ocupa el siguiente comando. useradd -g ftp -d /srv/ftp/rodmen -s /bin/false redtauros ó adduser redtauros Tenemos que agregarle una contraseña a nuestro usuario creado. sudo passwd rodmen Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Ahora hay que crear la carpeta del usuario y darle permiso al usuario pueda ser el dueño de su deposito. cd /home/ftp sudo mkdir ropmen sudo chown rodmen.ftp rodmen/ Ficheros de configuración El servidor vsfptd tiene dos archivos muy importantes de configuración: /etc/vsftpd.conf Este servidor ftp. /etct/vsftpd.chroot_list es el archivo de configuración de nuestro Lista de los usuarios que van estar enjaulados. Configuración de vsftpd En este momento comenzaremos a configurar nuestro servidor vsftpd. Antes de se recomienda ampliamente crear una copia de respaldo de archivo de configuración: cd /etc/ cp vsftpd.conf vsftpd.conf-ori Comenzaremos a editar el archivo de configuración del servicio vsftpd.conf. vim vsftpd.conf En el archivo tendremos que cambiar varios parámetros: Parámetro anonymous_enable Desactivar acceso a usuarios anónimos, para mayor seguridad. RedTauros ltda Versión 1.2 02/2014 http://www.redtauros.com 5 anonymous_enable=NO Para la practica : anonymous_enable=YES Parámetro local_enable Permitir a los usuarios autenticados quitamos la # para que se active. tener sus propias carpetas locales, le permisos en #local_enable=YES local_enable=YES Parámetro write_enable Permitir el modo de escritura en su carpeta, le quitamos el #. #write_enable=YES write_enable=YES Parámetro local_umask Permitimos la a través de este parámetro especial al momento de subir la información. enmascararlo con algún #local_umask=000 local_umask=037 En este caso estamos indicándole al parámetro, va tener permisos de rwx para el usuario, r-- para el grupo y --- otro ningún permiso. Avanzado - Enjaulando a los usuarios FTP. Habilitamos el enjaulamiento de los usuarios dentro de su directorio personal y también para acceder a sus carpetas por FTP. #chroot_local_user=YES #chroot_list_enable=YES chroot_local_user=YES chroot_list_enable=YES Habilitamos la siguiente linea que manda a llamar aun archivo, este archivo lo tiene que crear y dentro de este agregar los cuentas de los usuario enjaulados. #chroot_list_file=/etc/vsftpd.chroot_list chroot_list_file=/etc/vsftpd.chroot_list Al terminar de configurar el archivo de vsftpd.conf touch vsftpd.chroot_list /etc#echo “rodmen”>> vsftpd.chroot_list Control del ancho de banda Se le pueden agregar mas opciones al final del archivo. RedTauros ltda Versión 1.2 02/2014 http://www.redtauros.com 6 anon_max_rate=5100 local_max_rate=5100 max_clients=3 max_per_ip=2 #Ancho de banda para usuario anónimo 5kb. #Ancho de banda por usuario local 5kb. #Numero máximo clientes conectados. #Numero máximo de conexiones por ip. Reinicio del servidor FTP Solo tenemos que reiniciar el servicio de vsftpd para poder cargar los cambios que hemos realizado al servidor. /etc/init.d/vsftpd restart Stopping FTP server: vsftpd Starting FTP server: vsftpd [OK] [OK] Editar el Archivo Hosts Entramos a /etc/hosts y adicionamos un dominio para nuestra ip Comandos FTP Para poder utilizar ahora nuestro servidor FTP seria por medio de comandos, por esto se muestra la lista de comando de ftp y su descripción. COMANDOS DESCRIPCION cd [rutaRemota] Cambia de directorio dentro del servidor remoto lcd [rutaLocal] Cambia de directorio en el equipo local chgrp [grp] [rutaRemota] Cambia el grupo de trabajo de un fichero remoto. El [grp] tiene que ser un Group ID chmod [rutaRemota] [opciones] Cambia los permisos de Lectura, Ejecución a un fichero remoto chown [own] [rutaRemota] get [rutaLocal] Escritura o Cambia el grupo de trabajo de un fichero remoto. El [own] tiene que ser un User ID [rutaRemota] Copia un recurso remoto en un equipo local lmkdir [rutaLocal] Crea una carpeta en el equipo local mkdir [rutaRemota] Crea una carpeta en el equipo remoto put [rutaRemota] [rutaLocal] Sube un fichero o archivo desde una ruta local hasta una ruta remota pwd Imprime la ruta remota en la cual estamos trabajando exit Salimos de SFTP rename [rutaRemota] [rutaLocal] Renombra un un fichero remoto rmdir [rutaRemota] Borra una carpeta remota rm [rutaRemota] Borra un fichero remoto RedTauros ltda de Versión 1.2 02/2014 http://www.redtauros.com 7 Conexión ftp por consola Sintaxis: ftp [ruta] Donde, la ruta puede ser localhost, un dominio o una ip. Por ejemplo: ftp ftp ftp ftp localhost : Conexión al mismo equipo. 127.0.0.1 : Conexión al mismo equipo redtauros.com : Conexión al dominio redtauros.com 192.168.0.35 : Conexión a una ip invalida Ejemplo : $ ftp yourserver.com Connected to yourserver.com. 220 Welcome to YourServer FTP service. Name (yourserver.com:someuser): [enter the ftp username] 331 Please specify the password. Password: [enter your password] 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. Conexión por navegador Usando un navegador, como Firefox, Google Chrome, Internet Explorer u otro similar, podemos conectarnos a nuestro servidor FTP, solo escribiendo en el campo del URL o URI el protocolo y la ruta. Sintaxis: ftp://[ruta] Donde, la ruta puede ser localhost, un dominio o una ip. Por ejemplo: ftp://localhost ftp://127.0.0.1 ftp://redtauros.com ftp://192.168.0.35 : : : : Conexión Conexión Conexión Conexión al mismo equipo. al mismo equipo al dominio redtauros.com a una ip invalida Conexión mediante un cliente FTP Para facilidad del tutorial asumiremos que el dominio asociado a su cuenta de hosting es midominio.com y que el usuario FTP asignado es miusuario. Siga estos pasos: 1. Puede instalar el cliente FTP Filezilla, mediante el Synaptic y también puedes obtener una copia gratuita para Windows del software FileZilla en http://filezilla.sourceforge.net. 2. después de que lo instale, ábralo. Al abrirlo se mostrará la pantalla principal del programa. La pantalla luce como la siguiente: RedTauros ltda Versión 1.2 02/2014 http://www.redtauros.com 8 Haga click en el menú 'File' ubicado en la parte superior izquierda y luego haga click en 'Site Manager'. La ventana de SiteManager aparece. Haga click en el botón 'New Site'. Es en este sitio en donde debe ingresar la información suministrada en el mail de activación de su cuenta de hosting con Caminoweb. Para este ejemplo del tutorial ingresaremos en 'Host' el nombre del dominio anteponiéndole 'ftp.' sin las comillas así ftp.midominio.com . En 'User' miusuario y en 'Password' ingresamos la contraseña suministrada en el mail de activación. Esos son los únicos datos que necesita suministrar. El formulario debe verse similar al que se muestra a continuación: Haga click en el botón 'Connect' para conectarse al servidor de internet. Si no se conecta chequee lo siguiente: • Si su cuenta esta recién habilitada, es posible que el dominio o los DNSs aun • no se hayan replicado. En ese caso debe utilizar la IP suministrada a cambio de ftp.midominio.com temporalmente . Si sale a internet detrás de un firewall y/o un router es posible que deba utilizar el modo de conexión pasivo. El uso de modo pasivo se explica mas adelante. Si la conexión ha sido exitosa , la pantalla deberá lucir similar a la siguiente: RedTauros ltda Versión 1.2 02/2014 http://www.redtauros.com 9 3. La lista de archivos/carpetas que se muestra al lado derecho es la de su cuenta de hosting en el servidor de internet. La lista del lado izquierdo corresponde a la de su PC o maquina local. 4. Si su conexión está detrás de un firewall y/o un router, es posible que deba configurar el modo pasivo para obtener una conexión más estable. Abra el diálogo de configuración del firewall haciendo click en el menú 'Edit' y seleccionando 'Settings' . Con el dialogo de settings abierto haga click en 'Firewall Settings' del diálogo. Usted aquí puede checar o deschecar 'Passive Mode' si es necesario. 5. En las cuentas de hosting en servidores Linux, es posible establecer los derechos de lectura, escritura y ejecución de un archivo/carpeta. Para realizar esta labor, simplemente haga click-derecho sobre el objeto al que desea establecer los atributos y seleccione 'File Attributes' del menú emergente y obtendrá el dialogo que le permite cambiarlos. Para mayor información sobre FileZilla Documentation. como usar FileZilla RedTauros ltda Versión 1.2 02/2014 , visite el sitio oficial http://www.redtauros.com 10 Recordar ... Habilitar estos puertos, en la configuracion del IPTABLES de nuestro servidor. $ iptables -A INPUT -p tcp —dport 21 -j ACCEPT $ iptables -A OUTPUT -p tcp —sport 20 -j ACCEPT Fuentes: http://www.caminoweb.com/docs/filezilla.html http://es.wikipedia.org/wiki/FTP RedTauros ltda Versión 1.2 02/2014 http://www.redtauros.com