Introducción.
FTP (File Transfer Protocol) o Protocolo de Transferencia de Archivos (o ficheros informáticos) es uno de los protocolos estándar más utilizados en Internet siendo el más idóneo para la transferencia de grandes bloques de datos a través de redes que soporten TCP/IP. El servicio utiliza los puertos 20 y 21, exclusivamente sobre TCP. El puerto 20 es utilizado para el flujo de datos entre cliente y servidor. El puerto 21 es utilizando para el envío de órdenes del cliente hacia el servidor. Prácticamente todos los sistemas operativos y plataformas incluyen soporte para FTP, lo que permite que cualquier computadora conectada a una red basada sobre TCP/IP pueda hacer uso de este servicio a través de un cliente FTP.VSFTPD (Very Secure FTP Daemon) es un sustento lógico utilizado para implementar servidores de archivos a través del protocolo FTP. Se distingue principalmente porque sus valores por defecto son muy seguros y por su sencillez en la configuración, comparado con otras alternativas como Wu-ftpd. Actualmente se presume que VSFTPD es quizá el servidor FTP más seguro del mundo.
Instalacion vsftpd con YUM.
[root@localhost ~]# yum -y install vsftpd
Ficheros de configuración.
/etc/vsftpd.user_list ó /etc/vsftp/chroot_list
Lista que definirá usuarios a enjaular o no a enjaular, dependiendo de la configuración. /etc/vsftpd/vsftpd.conf
Fichero de configuración.
Procedimientos.
Es recomendable antes de iniciar modificaciones a algun archivo de configuración, realizar una copia de seguridad.[root@localhost ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backupAhora seria bueno listar alguno de los parametros del archivo vsftpd.conf
[root@localhost ~]# egrep -v "^#|^$" /etc/vsftpd/vsftpd.conf anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YESUtilice un editor de texto y modifique el fichero /etc/vsftpd/vsftpd.conf. A continuación analizaremos los parámetros a modificar o añadir, según se requiera para necesidades particulares.
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
Parámetro anonymous_enable.
Se utiliza para definir si se permitirán los accesos anónimos al servidor. Establezca como valor YES o NO de acuerdo a lo que se requiera.anonymous_enable=NO
Habilitar o negar autenticarse a los usuarios locales del sistema
Para habilitar o negar los accesos autenticados de los usuarios locales en el servidor FTP deberá buscar la siguiente linea:local_enable=YES
Habilitar o negar la escritura en el servidor FTP
Para habilitar o negar la escritura en el servidor FTP deberá buscar la siguiente lineawrite_enable=YESUna vez ubicada esta linea recuerde borrar ( si es que esta ) el signo de numero (#) para habilitar esta función. Establezca el valor YES o NO de acuerdo a lo que se requiera.
Estableciendo permisos de escritura, lectura y ejecución al contenido albergado en el servidor FTP
La siguiente linea indica que los archivos subidos al servidor quedarán con los permisos 022, es decir, sóloescritura para el grupo y los demás.
local_umask=022Si tu deseas agregar otro tipo de permisos sobre el contenido que sera albergado en tu servidor FTP solo
deberás modificar el valor 022 por el que tu creas mas conveniente.
Nosotros recomendamos usar el permiso “664”
local_umask=664es decir, lectura y escritura para el propietario del fichero, y sólo lectura para el grupo y los demás
Estableciendo un mensaje de bienvenida en el servidor FTP
Este parámetro sirve para establecer un mensaje de bienvenida el cual será mostrado cada vez que unusuario acceda al servidor de archivos.
Una vez ubicada esta linea recuerde borrar ( si es que esta ) el signo de numero (#) para habilitar esta función.
Para agregar este mensaje al servidor FTP deberá buscar la siguiente linea y editarla.
ftpd_banner=Bienvenido al Servidor FTP Linux
Estableciendo enjaulamiento a los usuarios de FTP
Estas opciones vienen incluidas en la configuración predeterminada.De modo predeterminado los usuarios del sistema que se autentiquen tendrán acceso a otros directorios del sistema fuera de su directorio personal.
Si se desea limitar a los usuarios a sólo poder utilizar su propio directorio personal, puede hacerse fácilmente con la opción chroot_local_user que habilitará la función de chroot() y las opciones chroot_list_enable y chroot_list_file, para establecer el archivo con la lista de usuarios que quedarán excluidos de la función chroot().
chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_listCon lo anterior cada vez que un usuario local se autentique en el servidor FTP, sólo tendrá acceso a su propio directorio personal y lo que éste contenga. Por favor recuerde crear el archivo /etc/vsftpd/chroot_list debido a que de otro modo será imposible que funcione correctamente el servicio vsftpd.
NOTA: La función chroot() puede ser peligrosa si el usuario regular utilizado tiene acceso al intérprete de mandatos del sistema (/bin/bash o /bin/sh) y además privilegios de escritura sobre el directorio raíz de su propia jaula (es decir su directorio de inicio).
Los directorios de inicio de los usuarios involucrados deben tener permiso 755, sean propiedad de root y se asigne al usuario /bin/false o /sbin/nologin como intérprete de mandatos.
Configuración del fichero chroot_list
La configuración de este fichero es relativamente fácil, solo deberá añadir dentro de el los nombres de losusuarios que serán excluidos a trabajar dentro de su carpeta personal de trabajo.
Ejemplo:
[root@ localhost ~]# vi /etc/vsftpd/chroot_list paty angelica erika viridiana iliana regina "chroot_list"Al terminar solo deberá guardar los cambios hechos al fichero.
Habilitar al usuario anónimo la función de subir contenido al servidor FTP
Para habilitar o negar al usuario anónimo el subir datos al servidor FTP deberá buscar la siguiente linea:anon_upload_enable=YES|NOUna vez ubicada esta linea recuerde borrar ( si es que esta ) el signo de numero (#) para habilitar esta función.
Establezca el valor YES o NO de acuerdo a lo que se requiera
Habilitar al usuario anónimo la función de crear carpetas en servidor FTP
Para habilitar o negar al usuario crear carpetas en servidor FTP deberá buscar la siguiente linea:anon_mkdir_write_enable=NO
Limitando la tasa de transferencia a los usuarios anónimos
Usted puede limitar la tasa de transferencia ( en bytes ) para los usuarios anónimos, solamente deberá agregar la siguiente linea al final del archivoanon_max_rate=10240
Limitando la tasa de transferencia a los usuarios autenticados
Usted puede limitar la tasa de transferencia ( en bytes ) para los usuarios anónimos, solamente deberá agregar la siguiente linea al final del archivolocal_max_rate=10240Como podemos observar hemos limitado la tasa de transferencia a solo 10 MB para los usuarios autenticados,
usted podrá definir ese parámetro de acuerdo a sus necesidades.
Limitando el numero de conexiones hacia el servidor FTP
Usted podrá establecer un numero máximo de conexiones que podrán acceder simultáneamente al servidor FTP, para ello solo habrá que añadir la siguiente linea al final de archivo.max_clients=3Como podemos observar hemos limitado el acceso a solamente 3 clientes FTP
Limitando el numero de conexiones por IP hacia el servidor FTP
Usted podrá establecer un numero máximo de conexiones desde una misma dirección IP que podrán acceder simultáneamente al servidor FTP, para ello solo habrá que añadir la siguiente linea al final de archivo.max_per_ip=3Como podemos observar hemos limitado el acceso a simultaneo a solamente 3 IP´s .
Aplicando los cambios.
A diferencia de otros servicios FTP, VSFTPD no requiere configurarse como servicio sobre demanda. Por lo tanto no depende de servicio xinetd. La versión incluida en distribuciones como Red Hat™ Enterprise Linux 5.0 y White Box Enterprise Linux 5.0 puede inicializarse, detenerse o reinicializarse a través de un guión similar a los del resto del sistema. De modo tal, podrá inicializarse, detenerse o reinicializarse a través del mandato service y añadirse al arranque del sistema en un nivel o niveles de corrida en particular con el mandato chkconfig.Iniciar , detener o reiniciar el servidor FTP
Para iniciar el servidor FTP por primera vez solo deberá teclear en terminal el siguiente comando:[root@ localhost ~]# /etc/init.d/vsftpd startIgualmente existen opciones ya sea para reiniciar, detener, recargar o conocer el status en el que se encuentra
el servidor FTP. Estas opciones pueden ser consultadas en la siguiente tabla:
start --Inicia el servicio stop --Detiene el servicio restart --Reinicia el servicio.-La diferencia con reload radica en que al ejecutar un restart este mata todos los procesos relacionado con el servicio y los vuelve a generar de nueva cuenta reload --Recarga el servicio.-La diferencia con restart radica en que al ejecutar un reload este solamente carga las actualizaciones hechas al fichero de configuración del servicio sin necesidad de matar los procesos relacionados con el mismo, por lo que podría entenderse que hace el cambio en caliente. condrestart--Reinicio Condicional.- Solamente se inicia si el servicio se encuentra ejecutándose. status --Da a conocer el estado en el que se encuentra el servicioComo alternativa también podemos ocupar el siguiente comando para iniciar el servidor FTP
service vsftpd startPara hacer que los cambios hechos a la configuración surtan efecto, utilice:
service vsftpd restartPara detener el servicio, utilice:
service vsftpd stopPara añadir VSFTPD al arranque del sistema en todos los niveles de corrida, utilice:
chkconfig vsftpd on
Creación de cuentas de usuario en el servidor FTP
Crear cuentas de usuario en el servidor FTP es un proceso muy parecido a dar de alta usuarios en Linux.La sintaxis general para dar de alta usuarios es la siguiente:
useradd -d /carpeta/del/usuario -s /sbin/nologin/ sistemasLas opciones utilizadas son explicadas en la siguiente tabla:
-d | --home -d /carpeta/demo → Carpeta de trabajo que sera asignado al usuario
-s | --shell -s /sbin/nologin → El usuario no podrá logearse en el sistema.
Ideal para usuarios con acceso a Samba o FTP pero sin acceso al interprete de comandos.
Adicionalmente se tiene que asignar una contraseña al usuario FTP.
[root@ localhost ~]# passwd sistemas Cambiando la contraseña del usuario . Nueva UNIX contraseña: xxxxxxxxxx Vuelva a escribir la nueva UNIX contraseña:xxxxxxxxxx passwd: todos los tokens de autenticación se actualizaron exitosamente.Ejemplo:
[root@ localhost ~]# useradd -d /home/ftp/sistemas -s /sbin/nologin \ > sistemas
Modificaciones necesarias en el muro cortafuegos.
Si se utiliza un cortafuegos con políticas estrictas, como por ejemplo Shorewall, es necesario abrir los puerto 20 y 21 por TCP (FTP-DATA y FTP, respectivamente).Las reglas para el fichero /etc/shorewall/rules de Shorewall correspondería a algo similar a lo siguiente:
#ACTION SOURCE DEST PROTO DEST SOURCE # PORT PORT(S)1 ACCEPT net fw tcp 20,21 #LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVEOtra opción adicional es realizar modificaciones gráficas con el comando.
system-config-firewall-tui
Accediendo al servidor FTP
La forma en que accederemos a los recursos del servidor FTP sera a través de la siguiente sintaxis Ejemplo:[root@ localhost ~]# ftp 216.244.191.36Luego de que el cliente haya establecido un comunicación con con el servidor FTP este le pedirá que se
autentique . En este punto el usuario deberá teclear su nombre de usuario así como también su contraseña:
[root@ localhost ~]# ftp 216.44.191.36 Connected to 216.244.191.36 (216.244.191.36). 220 Bienvenido al Servidor FTP Linux 331 Please specify the password. Password: xxxxxxxxxx 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files.En caso de que se acceda al servidor de forma anónima solo bastara con teclear como nombre de usuario la
palabra “anonymous”, por consiguiente no nos pedirá ninguna contraseña, solo deberá teclear la palabra “enter”.
Ejemplo:
Connected to 216.244.191.36 (216.244.191.36). 220 Bienvenido al Servidor FTP Linux Name (216.244.191.36:): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files.NOTA: La carpeta de trabajo del usuario “anonymous” no existe así que debe crearla usted mismo, Normalmente el acceso por medio del usuario ““anonymous” solo podrá leer y copiar los archivos existentes, pero no modificarlos ni crear otros nuevos. La ubicación de esta carpeta estará ubicada en la siguiente ruta:
/etc/vsftpd/El nombre que llevara esta carpeta sera
vacióPor consiguiente esta carpeta estará ubicada en:
/etc/vsftpd/vacioEn caso de no tener creada la carpeta de trabajo para el usuario “anonymous”, el servidor FTP nos arrojara el siguiente error.
[root@ localhost ~]# ftp 216.244.191.36 Connected to 216.244.191.36 (216.244.191.36). 220 Bienvenido al Servidor FTP de Linux Name (207.249.24.67:): anonymous 331 Please specify the password. Password: 500 OOPS: cannot change directory:/etc/vsftpd/vacio Login failed. ftp>
Comentarios
Publicar un comentario