viernes, 2 de marzo de 2012

Servidor FTP - svftpd para Linux

vsftpd es un servidor ftp para Linux sencillo de instalar y configurar, tiene una configuración muy sencilla en un solo fichero y es bastante ligero y seguro.

Instalacion.

# sudo apt-get install vsftpd.


Al instalar vsftpd en el sistema se crean los siguientes archivos y directorios en el sistema:

/etc/init.d/vsftpd: fichero que inicia el servidor ftp.
/usr/bin/vsftpd: archivo ejectable.
/etc/vsftpd.conf: es el fichero de configuración del servidor.
/etc/ftpusers: fichero que contiene una lista de usuarios que no se podrán conectar al servidor.

******************************************Configuracion*******************************************

El fichero de configuración del servidor se llama vsftpd.conf y se encuentra en el directorio /etc.

# 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

#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

*************************************************************************************************

Hay que tener en cuenta que cada vez que se haga un cambio en el fichero de configuración de vsftpd se debe reiniciar el servidor con la siguiente orden: # sudo /etc/init.d/vsftpd restart

Otras opciones disponibles son stop (parar), reload (recarga), start (inicio).


*************Crear usuarios/clave y asignarle grupo para el FTP*********************
#CREAR USUARIOS

root@cocodrilo:~# useradd NOMBRE_USUARIO
root@cocodrilo:~# passwd NOMBRE_USUARIO
Introduzca la nueva contraseña de UNIX:
Vuelva a escribir la nueva contraseña de UNIX:
passwd: contraseña actualizada correctamente

#ELIMINAR USUARIOS

userdel fulano

#Si se desea eliminar también todos los archivos y sub-directorios contenidos dentro del directorio de trabajo del usuario a eliminar, se debe agregar la opción -r:

userdel -r nombre_del_usuario

#AGREGAR GRUPO

groupadd NOMBRE_GRUPO

#ELIMINAR GRUPO

groupdel NOMBRE_GRUPO

#ASIGNACION DE USUARIOS A GRUPOS EXISTENTES

gpasswd -a USUARIO GRUPO

#Por ultimo si quereos crear un usuario, agregarlo a un grupo (debe estar creado) y asignarle su directorio raiz:

useradd -g ftp -d /home/nobre_dir -c " Comentario_de_usuario " NOMBRE_USUARIO

Si la carpeta en el /home no esta creada la creamos con "mkdir NOMBRE_CARPERA"

*************************************************************************************************

A continuación si no esta creado, creamos el fichero vsftpd.chroot_list el cual tendrá la lista de usuarios que no tendrán acceso al servidor:

# nano /etc/vsftpd.chroot_list
colocamos los nombres de los usuarios creados anteriormente y guardamos.

**************************************************************************************************

FUENTES:
http://ubuntulife.wordpress.com/2007/05/17/instalar-un-servidor-ftp-en-ubuntu/
http://www.ayuda-internet.net/tutoriales/ftp/vsftpd/index.html