En un post anterior instalamos un servidor TFTP, en esta ocasión será FTP (File Transfer Protocol), el cual tiene prácticamente la misma funcionalidad, transferencia de archivos, aunque éste utiliza un conexión TCP por el puerto 20 o 21.
Aunque podemos encontrar más servidores de FTP para linux, desde hace un tiempo yo elegí Vsftpd, es sencillo de configurar y según dicen muy seguro, yo esto último no lo puedo confirmar ya que no he probado otro.
Servidor
En primer lugar instalaremos el servidor vsftpd; desde nuestra consola en Ubuntu, sistema GNU/Linux que yo utilizo, ejecutaremos el siguiente comando:
# aptitude install vsftpd
Una vez realizada la instalación configuraremos dicho servidor. El servidor vsftpd utiliza dos ficheros de configuración, al menos con la configuración que yo voy a realizar.
- /etc/vsftpd.conf –> fichero de configuración del servidor vsftpd
- /etc/vsftpd.chroot_list –> En este fichero se ubicarán los usuarios que se enjaulan en su directorio raíz.
1. El fichero /etc/vsftpd.conf
Cuando instalas el servidor vsftpd en Ubuntu, te genera este fichero de configuración con parámetros por defecto. Una posible configuración de este fichero sería la siguiente:
#Example config file /etc/vsftpd.conf
# Para que se ejecute vsftpd en modo independiente. No se puede utilizar en conjunto con listen_ipv6
listen=YES
# No permitimos que se conecten usuarios anónimos.
anonymous_enable=NO
# Permitimos que los usuario locales se puedan conectar.
local_enable=YES
# Permitimos poder hacer modificaciones.
write_enable=YES
# Muestra un mensaje cada vez que un usuario entra en un directorio.
dirmessage_enable=YES
# Vsftpd registra las conexiones y la información de transferencia, por defecto en /var/log/vsftpd.log
xferlog_enable=YES
# Se permite que el servidor vsftpd abra el puerto 20, para ponerse a la escucha de peticiones.
connect_from_port_20=YES
# Mensaje de bienvenida al conectarse mediante un cliente ftp
ftpd_banner=Bienvenidos al ftp de Redes de Area Local.
# Permitimos a los usuarios locales que puedan salir de su directorio.
chroot_local_user=NO
# Con esta opción los usuarios locales que se encuentren en el fichero indicado por chroot_list_file estarán enjaulados en su directorio.
chroot_list_enable=YES
# Especifica el fichero que contiene los usuarios a enjaular.
chroot_list_file=/etc/vsftpd.chroot_list
# Esta opcion especifica el nombre de un directorio vacio. También el directorio no tiene que tener privilegios para el usuario de ftp. Este es un directorio usado como una jaula segura chroot y aveces no requiere de aceso al sistema de ficheros.
secure_chroot_dir=/var/run/vsftpd
# Especifica el nombre de PAM (Pluggable Authentication Modules) para vsftpd
pam_service_name=vsftpd
# Esta opción especifica la localización del certificado RSA para usar conexiones SSL. Esta opción viene por defecto.
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
# Esta opción especifica la localización de la clave privada para las conexiones SSL.
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
Una vez configurado nuestro fichero, ya tendriamos listo nuestro servidor vsftpd. Reiniciamos el servicio y listo, para ello:
# invoke-rc.d vsftpd restart
Ya podría conectarse cualquiera como los usuarios locales, pero vamos a hacer una restricción a uno que vamos a crear.
2. El fichero /etc/vsftpd.chroot_list
El fichero vsftpd.chroot_list va a contener el nombre del usuario que vamos a crear a continuación, para que cualquiera pueda conectarse a ese servidor, pero sólo teniendo acceso a el directorio de ftp.
Creamos el usuario mediante el siguiente comando:
# useradd amigo
Y ahora vamos a añadir este nombre al fichero; lo podemos hacer habriendo el fichero mediante cualquier editor o mediante el siguiente comando:
# echo amigo >> /etc/vsftpd.chroot_list
Y ahora ya podríamos decir que nuestro servidor ftp esta totalmente configurado. Para mas opciones se recomienda ver el man.
Cliente
Para conectarnos a nuestro ftp mediante una consola, únicamente devemos introducir el siguiente comando:
$ ftp <dir_ip_servidor_ftp>
Posteriormente te pedirá usuario y password; y ya tendrás acceso a el servidor que anteriormente hemos configurado.
Referencias:
http://www.esdebian.org/article.php/20060407102022453
http://www.linuxparatodos.net/portal/staticpages/index.php?page=09-como-vsftpd
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/es/ref-guide/s1-ftp-vsftpd-conf.html
http://www.esdebian.org/staticpages/index.php?page=20050424180613347
Publicado en Ficheros de configuración, Servidores