GUIA PARA CONFIGURAR VSFTP Linux-debain(usarios fantasmas)



En esta guía veremos como instalar y configurar un servidor ftp; como función adicional y medida de seguridad crearemos usuarios con acceso al servidor que no pertenezcan al sistema, enjaulandolos y permitiéndoles solo el acceso a determinados directorios.

Comenzamos descargando e instalando la última versión de vsftpd.


Observamos que el puerto por el que corre por omisión ftp se encuentre “escuchando”
#netstat -an|grep LISTEN|grep 21

De encontrarse activo muestra la línea del puerto:

tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN


Creación y configuración de las bases de datos

Lo primero será la instalación, si no lo tenemos ya, del soporte para las bases de datos que usemos como almacenamiento de los usuarios, las mas utilizadas han sido Berkeley Database o MySQL. En este caso se usara Berkeley DB instalaremos el soporte que nos ofrece el paquete db4.4-util.

#apt-get install db4.4-util.


Para crear una base de datos contra la que se autenticaran los usuarios “fantasmas del ftp” crearemos un archivo de texto plano donde quedara para cada usuario, una línea con su nombre y otra con su contraseña, en este orden, para 2 usuarios veriamos algo así:

usuario1 pasword1 usuario2 pasword2

El archivo los guardamos con el siguiente nombre:
users_db

Transformamos el archivo al formato de Berkeley DB y negamos cualquier acceso al fichero que no sea el del usuario root
# db4.4_load -T -t hash -f users_db /etc/vsftpd/users.db # chmod 600 users.db

Configuración de PAM

PAM (modulos de autenticación) servirá a VSFTP para dirigirse hacia la base de datos con la que se autenticaran los “usuarios fantasmas” creados.
El archivo de configuración de PAM para vsftpd se encuentra en /etc/pam.d/vsftpd y para nuestro caso deberá quedar de esta manera:
#%PAM-1.0 auth required /lib/security/pam_userdb.so db=/etc/vsftpd/users account required /lib/security/pam_userdb.so db=/etc/vsftpd/users

Configuración de vsftpd

Para proceder a editar el fichero de configuración de vsftpd según nuestras necesidades ingresaremos con la siguiente línea

#pico /etc/vsftpd.conf

Para una mejor comprensión de lo que se hace a continuación puede leerse las distintas opciones de configuración ofrecidas mediante la orden

#man vsftpd.conf.

En este momento ya están creadas las bases de datos y los “usuarios fantasmas” del servidor ftp, ahora dejaremos vsftpd habilitado para bloquear a los usuarios del sistema y permitir el logueo de los usuarios virtuales (agregados en las bases de datos).

Dentro de /etc/vsftpd/vsftpd.conf en síntesis quedaran una serie de parámetros de la siguiente forma (las líneas documentadas (#) son una breve explicación que se podrá ampliar en los diferentes manuales “man vsftpd”):


anonymous_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO
#Estas opciones impiden el acceso a cualquier usuario anónimos y del
#sistema al servidor.

listen=YES listen_port=21

#indicamos a vsftpd que arranque en modo directo (standalone) y "escuche"
#en el puerto indicado.

local_enable=YES
#permitiremos que los usuarios locales puedan hacer login en el servidor.
#Esto nos servirá para tener un usuario virtual que pueda autenticarse.

max_clients=60 max_per_ip=20
#Establecemos el número máximo de clientes, totales y por dirección IP.
pam_service_name=vsftpd
#este parámetro igualado al nombre con el que hemos guardado nuestro
#archivo de configuración de PAM dentro de /etc/pam.d .

guest_enable=YES
#permitimos el logueo de varios usuarios virtuales igualando a YES este
#parametro.

guest_username=somnus
#Si se incluye, este parámetro ha de igualarse a un nombre de usuario real
#hacia el cual se mapearán todos los usuarios virtuales creados.
#Este usuario tendrá como (home) el directorio por defecto que queramos
#usar como raíz (/). creamos un usuario llamado somnus con un directorio en
#/home/ftp/pub, teclearíamos en la consola lo siguiente
# useradd -d /home/ftp/pub somnus
#El directorio /home/ftp/pub ya está creado en algunas distribuciones, así
#que tendremos que cambiarlo de propietario con el comando chown, sino
#creamos el directorio pub):
# mkdir /home/ftp/pub # chown ftp:nougrup
virtual_use_local_privs=YES
#para que los usuarios virtuales tengan los mismos privilegios que los
#usuarios locales igualamos este parámetro a YES.

user_config_dir=/etc/vsftpd/users**
chroot_local_user=YES
#Igualamos a YES para "enjaular" a los usuarios locales en sus respectivos
#directorios.

local_umask=022
#Establecemos el valor de umask de los ficheros que se creen mediante el
#servidor de ftp.
xferlog_enable=YES xferlog_file=/var/log/vsftpd.log
#Activan el log del servidor y lo establecen a un archivo determinado.

idle_session_timeout=180 data_connection_timeout=120
#Establecemos los tiempos de conexión sin actividad y con ella,
#respectivamente.

ftpd_banner=Welcome to ftp Server
#Establecemos un saludo del servidor cuando se produzca una conexión al
#mismo.



** user_config_dir. Igualaremos este parámetro al directorio que contendrá los permisos de cada usuario en un fichero por separado.
Creamos un fichero de texto plano que contendrá los parámetros de vsftpd a disposición de los “usuarios fantasmas”. Por ejemplo para el usuario “usuario1”, creamos el directorio que contendrá otros ficheros del vsftpd
# mkdir /etc/vsftpd
Creamos el directorio que contendrá los archivos de los permisos
# mkdir /etc/vsftpd/users
Y creamos los archivos correspondientes a la configuración de los permisos de “usuario1”
#touch /etc/vsftpd/users/usuario1
con estas lienas, permitimos la escritura y la subida de archivos y establecemos la raíz a partir de la cuál tendrá acceso dicho usuario:

dirlist_enable=YES
download_enable=YES
local_root=/home/ftp/pub/usuario1 (esta es la casa del usuario1)
write_enable=YES
anon_upload_enable=YES
virtual_use_local_privs=YES




CREAR VARIO SITIOS FTP EN LINUX


Podemos tener varios sitios ftp en linux con vsftpd, cada sitio debe tener su propio archivo de configuración vsftpd.conf que podremos encontrar en:

#/etc/vsftpd/vsftpd.conf

Copiamos el archivo de configuracion para nuestros nuevo sitio:

# cp /etc/vsftpd/vsftpd.conf vsftpd.sitio2.conf

Modificamos el archivo según nuestras necesidades

#pico /etc/vsftpd/vsftpd.sitio2.conf (archivo nuevo de configuración)

Indicamos la dirección IP por la que escuchara el nuevo sitio, esto lo hacemos agragando el el vsftpd.conf la sigueinte linea:

Listen-address=(Direccion IP)

Para iniciar el otro sitio FTP

#/usr/sbin/vsftpd /etc/vsftpd/vsftpd.sitio2.conf
Ahora tenemos dos sitios FTP en servidor.

0 comentarios: