Creación Servidor FTP FTP (siglas 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. 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 y/o apropiarse de los archivos transferidos. Qué es ProFTPd? ProFTPd es un servidor FTP. Se promociona desde su página web como estable y seguro, cuando se configura correctamente. El servidor ProFTPd se promociona a sí mismo como un "Software servidor FTP altamente configurable con licencia GPL" ("Highly configurable GPL-licensed FTP server software"). Los promotores dicen que ProFTPd está bien documentado, y la mayoría de configuraciones serán muy parecidas a aquellas que aparecen en las configuraciones de ejemplo. ProFTPd usa un único fichero de configuración "/etc/proftpd.conf". El fichero de configuración es muy similar al que tieneapache. Puede ser fácilmente configurado como múltiples servidores FTP virtuales, y tiene capacidades para ser enjaulado dependiendo del sistema de archivos que haya por debajo. Puede ejecutarse con un demonio propio o como un servicio más de inetd. Es capaz de trabajar sobre IPv6. En este tutorial aprenderemos como configurar nuestro servidor FTP utilizado ProFTPd: Geancarlos Sosa Ortiz (2010-2941) Instituto Tecnológico Las Américas (ITLA) Page 1
1-Primero abrimos nuestra consola y nos logueamos como root escribiendo el comando su luego introducimos nuestra contraseña para root, una vez estemos logueados como root escribimos el comando urpmi proftpd para descargar los paquetes de proftpd. 2-Esperamos unos segundos y como vemos se descargaran todos los paquetes necesarios automáticamente. Geancarlos Sosa Ortiz (2010-2941) Instituto Tecnológico Las Américas (ITLA) Page 2
3-Ahora crearemos la carpeta que utilizaremos para guardar los archivos de nuestro servidor ftp, en este caso utilizare el comando mkdir FTP esto creara una carpeta en el directorio en el cual me encuentre trabajando actualmente con el nombre FTP, en mi caso la ruta de la carpeta sería /home/gean/ftp 4-Una vez tengamos nuestra carpeta lista procederemos a modificar el archivo proftpd.conf para la configuración de nuestro servidor FTP, lo haremos con el editor de textos vi y el archivo se encuentra en la ruta /etc/proftpd.conf, asi que escribiremos vi /etc/proftpd.conf y presionaremos Enter. 5-Como vemos se nos abrirá el archivo que tiene toda la configuración de ProFTPd, presionando la tecla i podemos editarlo pero debemos ser muy cuidadosos en esto ya que podríamos afectar el correcto funcionamiento de nuestro servidor FTP. Geancarlos Sosa Ortiz (2010-2941) Instituto Tecnológico Las Américas (ITLA) Page 3
6-Ahora nos situaremos en la línea que dice ServerName, en esta podemos modificar el nombre que tendrá nuestro servidor FTP, en este caso mi servidor se llamara Servidor FTP Mandriva, ServerType quiere decir el tipo de servidor que tenemos puede ser inetd ó standalone, inetd lo configura para que sea dependiente de otros servicios mientras que standalone lo hace totalmente independiente. 7-Ahora nos situaremos en la línea DefaultRoot, por defecto esta marcada con un # al inicio, esto indica que es un comentario y por lo tanto no se toma en cuenta como un parámetro de configuración del archivo, lo primero que haremos será descomentar esta línea borrando el sigo #, luego escribiremos el directorio que creamos antes para guardar nuestros archivos FTP. La línea será DefaultRoot /home/gean/ftp 8-Otro parámetro importante para configurar es la línea Umask, por defecto viene en 022 022, este permiso solo permite que los usuarios vean los documentos que se encuentren en el servidor pero no podrán descargarlos, por lo tanto cambiaremos estos permisos a 077 077. Luego de esto saldremos del documento asi que debemos pulsar la tecla Esc y escribir :wq para salir del archivo y guardar los cambios. 9-Ahora debemos de reiniciar el servicio, escribiremos /etc/init.d/proftpd restart y presionaremos Enter. Geancarlos Sosa Ortiz (2010-2941) Instituto Tecnológico Las Américas (ITLA) Page 4
10-Ahora para hacer la prueba nos dirigimos a la carpeta que especificamos para utilizar como la que contenedora de los archivos subidos al servidor FTP, en este caso es la carpeta /home/gean/ftp, escribimos el comando cd /home/gean/ftpd y luego crearemos un archivo como prueba, para esto escribiremos vi prueba.txt. 11-Una vez creado el archivo presionamor i para editarlo y escribimos algo, luego presionamos Esc para salir del modo edición y escribimos :wq para guardar y salir. Subir y bajar archivos por línea de comandos Podemos administrar nuestros archivos que se encuentren en nuestro servidor FTP por medio de linea de comandos, aunque puede que no sea tan comodo como lo es mediante un cliente FTP, pero resulta bastante util ya que nunca sabemos si no contaremos con una interfaz grafica disponible. Nota: Mandriva Enterprise Server 5.2 viene sin los paquetes necesarios para conectarnos a un servidor FTP por linea de comandos, por lo tanto primero que todo debemos descargarlos con el comando urpmi lftp. 1-Primero que todo nos entraremos a la consola y nos loguearemos como root, luego crearemos varios archivos para utilizarlos como prueba, los archivos pueden ser creados con el comando touch y podemos crear mas de un archivo al mismo tiempo, solo tenemos que separarlos por espacios tal y como muestra la imagen. Geancarlos Sosa Ortiz (2010-2941) Instituto Tecnológico Las Américas (ITLA) Page 5
2-Muy bien ahora nos conectaremos a nuestro servidor FTP, para esto escribiremos el comando ftp seguido de la dirección ip del servidor FTP, en este caso será ftp 192.168.246.10 3-Como vemos una vez hayamos escrito el comando anterior se conectara al servidor FTP, nos mostrara el nombre que habíamos elegido anteriormente, luego nos pedirá que introduzcamos nuestro usuario y contraseña, debemos de introducir un usuario con los privilegios suficientes como para acceder al servidor FTP. 4-Ahora subiremos un archivo a nuestro servidor, los archivos se suben con el comando put seguido del nombre del archivo y su extensión, como habíamos creado el archivo manuel.txt, lo subiré al servidor escribiendo put manuel.txt y como vemos se inicia la transferencia, luego nos muestra que el archivo se a transferido correctamente. Geancarlos Sosa Ortiz (2010-2941) Instituto Tecnológico Las Américas (ITLA) Page 6
5-Ahora subiremos mas de un archivo al mismo tiempo, para esto se utiliza el comando mput que se deriva de Multiple put, bien entonces subiremos los otros dos archivos que habíamos creado anteriormente, escribiremos mput itla.html done.doc luego nos preguntara si estamos seguros uno a uno, para confirmar escribimos s cada vez que nos pregunte. 6-Ahora escribiremos el comando ls para que nos muestre los archivos que se encuentran en el servidor FTP, como vemos se encuentran los archivos que habíamos subido anteriormente. 7-Ahora bajaremos el archivo prueba.txt, para esto escribimos le comando get seguido del nombre del archivo y su extensión, get prueba.txt. 8-Para descargar mas de un archivo simultáneamente utilizamos el comando mget seguido del nombre de los archivos con su extensión, los archivos deben estar separados por espacios. Geancarlos Sosa Ortiz (2010-2941) Instituto Tecnológico Las Américas (ITLA) Page 7
Subir y bajar archivos por medio de un cliente FTP Lo mas común es utilizar un cliente FTP para administrar nuestros archivos en un servidor FTP, el cliente FTP provee una interfaz grafica al usuario que hace la tarea mucho mas sencilla y comoda, en este caso utilizaremos el cliente FTP FileZilla y lo haremos desde un equipo cliente con Windows. El equipo debe estar en nuestra misma red. 1-Ahora mostraremos como acceder a nuestro servidor FTP por medio de un cliente FTP, en este caso utilizare FileZila. 2-Una vez abierta la aplicación en la parte superior debemos de introducir la dirección IP del servidor, nuestro nombre de usuario y la contraseña, el puerto por defecto es 21. Luego hacemos click en el botón Conexión Rapida. Geancarlos Sosa Ortiz (2010-2941) Instituto Tecnológico Las Américas (ITLA) Page 8
3-Una vez hayamos hecho esto podemos ver que se inicia sesión en nuestro servidor FTP mediante este cliente FTP, en la parte derecha podemos ver los archivos que se encuentran en nuestro servidor. 4-Podemos descargar archivos haciendo click derecho sobre estos y luego click en Descargar, y para subir hacemos exactamente lo mismo pero desde el lado izquierdo que es donde se encuentran los archivos en nuestro equipo cliente, hacemos click derecho y luego click en la opción subir. Geancarlos Sosa Ortiz (2010-2941) Instituto Tecnológico Las Américas (ITLA) Page 9
Crear Script para subir Backup al servidor FTP automáticamente programado con Cron Podemos crear un script para que automáticamente se ejecute el Backup de nuestros archivos y se guarde en nuestro servidor FTP, para esto utilizaremos la herramienta Cron que ejecuta las tareas de acuerdo al horario/fecha que se le asigne. 1-Abrimos la terminal y nos logueamos como root utilizando el comando su luego crearemos un archivo contenedor del script que crearemos, este archivo en mi caso lo deseo guardar en la carpeta Script que había creado anteriormente en el escritorio pero puede ser guardado donde sea, este archivo lo crearemos con el editor de textos vi, el comando en este caso será vi /home/gean/escritorio/script/backupftp.sh, debemos recordar que el script siempre debe tener la extensión.sh al final del nombre que le demos. 2-Ahora escribiremos los parametros de nuestro script como vemos abajo, nuestro script primero esta dividido por partes, ya que primero debe crear un backup del archivo que deseemos y luego entonces establecer la conexión con el servidor FTP para finalmente subir el archivo. Geancarlos Sosa Ortiz (2010-2941) Instituto Tecnológico Las Américas (ITLA) Page 10
3-Ahora ejecutaremos nuestro script para cerciorarnos de que es funcional, escribiremos source y la ruta donde guardamos el script, en mi caso source /home/gean/escritorio/script/backupftp.sh 4-Como vemos el script esta iniciándose, lo habíamos configurado para que primero nos muestre un mensaje de ejecución y a los 5 segundos empiece a ejecutarse. 5-Como vemos nuestro script se ejecuto perfectamente, primero nos crea un backup sobre la carpeta que habíamos especificado, luego establece la conexión con el servidor FTP y por ultimo sube el archivo, al hacer todo esto se desconecta automáticamente del servidor FTP. Geancarlos Sosa Ortiz (2010-2941) Instituto Tecnológico Las Américas (ITLA) Page 11
6-Ahora programaremos nuestro script para que se ejecute automáticamente con Cron, escribiremos el comando crontab e y este nos abrirá el archivo de cron con vi 7-Agregamos una línea nueva con el directorio del archivo y recordando el orden de los valores El primer valor indica los minutos, el segundo valor indica las horas, el tercer valor indica los días del mes, el cuarto valor indica el mes y el quinto valor indica el día de la semana, lo programaremos para que se ejecute todos los viernes y seguido escribimos el directorio donde se encuentra que en este caso será /home/gean/escritorio/script/backupftp.sh Listo, ya sabemos como montar nuestro servidor FTP con ProFTPd y crear un script que suba un backup al servidor automáticamente programado con Cron. Geancarlos Sosa Ortiz (2010-2941) Instituto Tecnológico Las Américas (ITLA) Page 12