jueves, 24 de julio de 2008

INSTALACIÓN Y CONFIGURACIÓN DEL SERVICIO FTP EN LINUX DEBIAN CON EL PAQUETE VSFTPD

En éste artículo les explicaré cóm realizar una instalación y configuración del servicio FTP en el Sistema Operativo Linux Debian (También aplica para Linux Ubuntu) y con el paquete VSFTPD.

Se deben realizar los siguientes pasos.

Como superusuario digitar:

# apt-get install vsftpd.conf

Editar el archivo de configuración vsftpd.conf de la siguiente manera:

# pico /etc/vsftpd.conf

Listen=YES

#Avilitar el acceso a Usuarios Anónimos.
anonymous_enable=YES

#Permitir el acceso a usuarios locales a sus respectivas carpetas o directorios.
local_enable=YES

#Permitir el modo escritura.
write_enable=YES

#Máscara del directorio.
local_umask=022

#Mensaje cuando se conecta alguien por medio de la consola.
ftpd_banner=Bienvenido al Servidor FTP de prueba.

#Enjaular usuarios en las carpetas del FTP (En ésta opción se debe decir que no).
chroot_local_user=NO

#Los usuarios solo puedan acceder a su carpeta del FTP
chroot_list_enable=YES

#(default follows)
choroot_list_file=/etc/vsftpd.chroot_list

Guardar los cambios y salir.

Crear un directorio en /home/ con el nombre usuarios_fpt y dentro de éste crear los directorios de los usuarios.

#mkdir /home/usuarios_ftp
#mkdir /home/usuarios_ftp/rafa
#mkdir /home/usuarios_ftp/prueba

Cambiamos los propietarios a los directorios.

#chown sena:sena /home/usuarios_ftp/rafa
#chown sena:sena /home/usuarios_ftp/prueba

Luego crearemos los usuarios dándoles como casa a cada uno los directorios que anteriormente habíamos creado.

#useradd -g ftp -d /home/usuarios_ftp/rafa/ -c "rafa" rafa
#useradd -g ftp -d /home/usuarios_ftp/prueba/ -c "prueba" prueba

Agregamos archivos en los directorios de los usuarios y en el directorio ftp para luego realizar pruebas.

#touch /home/usuarios_ftp/rafa/practica1
#touch /home/usuariso_ftp/prueba/practica2
#touch /home/ftp/practica3

Por seguridad, a los usuarios se le deben quitar la Shell.

#pico /etc/shells

Y digitar en la última linea.

/bin/ftp

Guardar y cerrar.

Editar el archivo passwd para cambiarles la Shell a los usuarios. Por defeto lo muestra de la siguiente manera.

rafa:x:1001:1001:rafa:/home/usuarios_ftp/rafa/:/bin/sh
prueba:x:1002:1001:prueba:/home/usuarios_ftp/prueba/:/bin/sh

Cambiarlas de la siguiente forma.

rafa:x:1001:1001:rafa:/home/usuarios_ftp/rafa/:/bin/ftp
prueba:x:1002:1001:prueba:/home/usuarios_ftp/prueba/:/bin/ftp

Guardar y cerrar.

Crear el archivo vsftpd.chroot_list para definir los usuarios enjaulados. Ojo, los usuarios que nos son anónimos y que no están enjaulados, pueden tener acceso a todas las carpeta del FTP e incluso a todo el disco del sistema.

#pico /etc/vsftpd.chroot_list

Digitar los nombres.

rafa
prueba

Guardar y cerrar.

Reiniciamos el servicio.

#/etc/init.d/vsftpd restart

Ya se puede provar, el servico le pedirá un login; en caso que ingrese como anonymous sólo le mostrará los archivos que se encuentran en el directorio FTP; en el caso que ingrese como un usuario sólo podrá ver el contenido de su directorio.

Otros lineas que se pueden digitar en el vsftpd.conf

#Opciones de Transferencia.
#Ancho de Banda por usuario anónimo en Kb
anon_max_rat=5100

#Ancho de Banda para usuarios locales en Kb
local_max_rate=5100

#Número máximo de clientes.
max_clients=5

#Máximo de conexiones por IP
max_per_ip=19

#Accesos y Denegaciones del servicio.
tcp_wrappers=YES

Para que los TCP WRAPPERS funcionen, se deben editar, dependiendo lo que se necesite, los archivos hosts.allow y hosts.deny

El hosts.allow es para permitir acceso al servicio y el hosts.deny es para denegar accesos al servico.

Un ejemplo para una mayor explicación.

Quiero que toda la red no vea el servicio ftp que acabé de montar, pero quiero que solo un usuarios pueda verlos.

Lo anterios se debe realiazar de la siguiente forma.

#pico /etc/hosts.deny

Digitar en la última linea.

vsftpd:ALL

Guardar y Cerrar.

#pico /etc/hosts.allow

Digitar en la última linea las direcciones IP´s que quiero que tengan acceso al FTP separadadas por comas.

vsftpd:10.0.0.9

La nomenclatura para los hosts.allow y los hosts.deny se tiene en cuenta.

[Servicio]:[IP, Red, Nombre, Dominio]

Reiniciar el servicio.

#/etc/init.d/vsftpd restart

Al momento de realizar la pruba, sólo podrán visitar el FTP desde las IP´s mencionadas, claro está, que las IP´s mencionadas deben logearse como anonymous o autencticado para poder ingresar.

Listo. Ya se ha realizado una configuración del servicio FTP con el paquete VSFTPD en Linux Debian.

No hay comentarios: