5
LINUX SERVICIO FTP CLIENTE GFTP: Comencemos el apartado de Linux con la instalación de un cliente FTP. Con ello recordaremos los pasos esenciales para la instalación de cualquier paquete bajo este sistema operativo. El cliente que instalaremos es gftp, uno de los más utilizados. La instalación, desde el entorno gráfico, se realiza con el Gestor de paquetes Synaptic, ubicado en Sistema Administración. El proceso se realiza conectando con repositorios externos que permiten la descarga actualizada de los programas. Es necesario activar el repositorio Universe (Binary y Source) a través de la opción Configuración Repositorios y ejecutar el comando Recargar. Ya podemos buscar el cliente gftp y efectuar su instalación. En modo consola podemos activar el acceso a los repositorios Universe editando el fichero /etc/apt/sources.list y descomentar las dos líneas que hacen referencia a este repositorio. La instalación del cliente se efectúa ejecutando el comando apt-get install gftp. Podemos utilizar este cliente con los servidores FTP que hemos configurado bajo el sistema operativo Windows. En Linux también podemos encontrar el comando ftp en consola que funciona igual al visto bajo Windows. SERVIDOR PROFTPD: El servidor que utilizaremos es el ProFTPd. Durante el proceso de instalación debemos seleccionar el modo de ejecución: inetd crea un nuevo proceso para cada conexión que recibe el servidor, standalone (independiente) duplica el proceso principal en cada conexión, por lo que no lo tiene que crear ni tampoco iniciar. Es recomendable seleccionar standalone. El servidor se instala como servicio del sistema, por lo que arrancará automáticamente al iniciar el equipo, pudiéndose modificar mediante el comando Sistema Administración Servicios. Los comandos asociados son: /etc/init.d/proftpd start /etc/init.d/proftpd stop /etc/init.d/proftpd restart La configuración se realiza a través del fichero de texto /etc/proftpd.conf. Recordemos que, para cualquier modificación realizada, será necesario reiniciar el servidor. Enumeremos algunas opciones generales: ServerName "nombre" El nombre que aparece cuando nos conectamos ServerType standalone Modo de ejecución DeferWelcome off Eliminar mensajes de entrada MultilineRFC2228 on Aumenta la compatibilidad con los clientes DefaultServer on Toma las opciones por defecto ShowSymlinks on Muestra los enlaces TimeoutNoTransfer 600 Máximos sg que un cliente puede estar sin transferir TimeoutStalled 600 Máximos sg de espera en una transferencia

Tutorial FTP Linux

Embed Size (px)

DESCRIPTION

ojajwdghidsfgdñgdsfhdfhdshs

Citation preview

LINUX – SERVICIO FTP CLIENTE GFTP: Comencemos el apartado de Linux con la instalación de un cliente FTP. Con ello recordaremos los pasos esenciales para la instalación de cualquier paquete bajo este sistema operativo. El cliente que instalaremos es gftp, uno de los más utilizados. La instalación, desde el entorno gráfico, se realiza con el Gestor de paquetes Synaptic, ubicado en Sistema – Administración. El proceso se realiza conectando con repositorios externos que permiten la descarga actualizada de los programas. Es necesario activar el repositorio Universe (Binary y Source) a través de la opción Configuración – Repositorios y ejecutar el comando Recargar. Ya podemos buscar el cliente gftp y efectuar su instalación. En modo consola podemos activar el acceso a los repositorios Universe editando el fichero /etc/apt/sources.list y descomentar las dos líneas que hacen referencia a este repositorio. La instalación del cliente se efectúa ejecutando el comando apt-get install gftp. Podemos utilizar este cliente con los servidores FTP que hemos configurado bajo el sistema operativo Windows. En Linux también podemos encontrar el comando ftp en consola que funciona igual al visto bajo Windows.

SERVIDOR PROFTPD: El servidor que utilizaremos es el ProFTPd. Durante el proceso de instalación debemos seleccionar el modo de ejecución: inetd crea un nuevo proceso para cada conexión que recibe el servidor, standalone (independiente) duplica el proceso principal en cada conexión, por lo que no lo tiene que crear ni tampoco iniciar. Es recomendable seleccionar standalone. El servidor se instala como servicio del sistema, por lo que arrancará automáticamente al iniciar el equipo, pudiéndose modificar mediante el comando Sistema – Administración – Servicios. Los comandos asociados son:

/etc/init.d/proftpd start /etc/init.d/proftpd stop /etc/init.d/proftpd restart

La configuración se realiza a través del fichero de texto /etc/proftpd.conf. Recordemos que, para cualquier modificación realizada, será necesario reiniciar el servidor. Enumeremos algunas opciones generales:

ServerName "nombre" El nombre que aparece cuando nos conectamos ServerType standalone Modo de ejecución DeferWelcome off Eliminar mensajes de entrada MultilineRFC2228 on Aumenta la compatibilidad con los clientes DefaultServer on Toma las opciones por defecto ShowSymlinks on Muestra los enlaces TimeoutNoTransfer 600 Máximos sg que un cliente puede estar sin

transferir TimeoutStalled 600 Máximos sg de espera en una transferencia

interrumpida TimeoutIdle 1200 Máximos sg sin hacer nada DisplayLogin welcome.msg Fichero con mensaje de entrada ListOptions “-l” Formato largo al listar DenyFilter \*.*/ Filtro de protección Port 21 Puerto de conexión User nobody Ningún usuario puede ejecutar el servidor, sólo

root Group nogroup Lo mismo para el grupo Umask 022 022 Permisos para ficheros y directorios subidos al

servidor AllowOverwrite off Los clientes no pueden sobrescribir

Acceso anónimo: Al efectuar la instalación del servidor se ha creado el usuario ftp en el sistema, que es utilizado para el acceso anónimo. Este usuario pertenece al grupo nogroup y su directorio de trabajo es /home/ftp, que será el directorio de acceso de los usuarios. El intérprete de comandos es /bin/false, que se asocia a aquellos usuarios que no deseamos puedan iniciar sesión local en el equipo. El fichero de configuración proftpd debe incluir las siguientes líneas:

<Anonymous /home/ftp> Directorio de acceso anónimo User ftp Usuario asociado a la cuenta anónima Group nogroup Grupo al que pertenece UserAlias anonymous ftp Para poder acceder mediante anonymous RequireValidShell off No se requiere intérprete de comandos valido </Anonymous> Fin de la sección

Operaciones adicionales:

Es necesario eliminar la contraseña del usuario ftp editando el fichero /etc/passwd.

El acceso permite tanto la descarga como la subida de ficheros. Es debido a que los permisos que utiliza el servidor son los que tiene definido el usuario en el sistema, por lo que deberíamos cambiar los permisos de la carpeta /home/ftp, aunque es más recomendable lo incluido en el siguiente punto.

Cuando accedemos encontramos el fichero welcome.msg, que incluye el mensaje de entrada, por lo que es mejor crear un directorio /home/ftp/bajar al que realmente accederán los usuarios (<Anonymous /home/ftp/bajar>). Es importante respetar siempre los permisos de los ficheros y directorios incluidos, para que los usuarios puedan leer pero no puedan escribir.

Acceso personal: Hemos observado que en el servidor FTP no se efectúa la administración de usuarios, ya que utiliza directamente las cuentas definidas en el sistema, es decir, en el fichero /etc/passwd. Es por ello que si accedemos a través de FTP utilizando cualquiera de estas cuentas, podremos comprobar que nos encontraremos en el directorio del usuario (/home/usuario), siendo sus permisos los mismos que posee en el sistema. Un inconveniente bastante importante es que el usuario no se encuentra anclado en su directorio, por lo que puede moverse por todo el árbol de directorios con los mismos permisos que tuviera en local. Para solucionarlo incluir la siguiente instrucción en el fichero proftpd.conf:

DefaultRoot ~

El acceso personal no requiere prácticamente ninguna configuración adicional en el servidor FTP. Pero es posible que hayamos montado el servidor para utilizar únicamente la cuenta anónima, no deseando que los usuarios definidos en el equipo puedan acceder a sus directorios personales. Para ello, encima de la sección Anonymous, debemos incluir:

<Limit login> Deny All </Limit>

Esta sección también afecta a la sección Anonymous. Para que funcione el acceso anónimo, dentro de la propia sección Anonymous debemos incluir:

<Limit login> Allow All </Limit>

Otros usuarios: Si deseamos que otros usuarios puedan acceder al servidor FTP mediante autenticación, el proceso más simple es seguir utilizando la administración de usuarios del sistema. Supongamos que deseamos crear varias cuentas que puedan acceder a un directorio concreto, por ejemplo, /home/programas. 1. Es recomendable la creación de un grupo para dichos usuarios (ftpusuarios). 2. Crear el directorio /home/programas, asignando los permisos apropiados para que

los usuarios del grupo ftpusuarios tengan los privilegios deseados. 3. Crear un usuario (usuarioejemplo) con las siguientes propiedades:

Perfil = default: No se le asigna ningún tipo de privilegio al usuario.

Grupo principal = ftpusuarios.

Intérprete de comandos = /bin/false.

Directorio personal = /home/programas. En principio, con la configuración tal y como la tenemos, este usuario no podrá acceder. Es debido a que posee un intérprete de comando no válido. Anteriormente hemos utilizado la directiva RequireValidShell off, pero dentro de la sección Anonymous. Para que dicha directiva afecte a todos los usuarios deberemos incluirla también en la sección principal. El resto de usuarios se crearían de forma similar. Si deseamos crear otros usuarios y/o grupos con acceso a otros directorios, el método de trabajo sería el mismo. Ficheros de usuarios: El servido ProFTPd permite trabajar con otros ficheros de usuarios además del /etc/passwd. La ventaja es disponer de uno o de varios ficheros independientes donde gestionar a los usuarios. La estructura de estos ficheros es similar al fichero /etc/passwd. Los usuarios definidos en estos ficheros no tendrán intérprete de comandos válido, ya que se han definido exclusivamente para el acceso a través de FTP. Realicemos las siguientes operaciones: 1. Creamos el fichero vacío /etc/passwdftp. 2. Mover la línea de usuarioejemplo creado en el punto anterior de /etc/passwd a

/etc/passwdftp (si intentamos acceder utilizando la cuenta de este usuario, no podremos, ya que ya no está definido como cuenta del sistema en /etc/passwd).

3. Editamos el fichero /etc/proftpd.conf e incluimos la línea: AuthUserFile “/etc/passwdftp”.

4. Si ahora reiniciamos el servidor también tendrá en cuenta los usuarios de este nuevo fichero.

También podemos crear un fichero para gestionar grupos específicos asociados al servidor FTP, cuya estructura será semejante al fichero /etc/group, pero no vamos a profundizar en este punto. Es más recomendable seguir utilizando el fichero del sistema para asignar permisos con mayor facilidad a los grupos de usuarios, ya sea el genérico nogroup o, en nuestro caso, ftpusuarios. Es posible que deseemos que al servidor FTP no tengan acceso los usuarios del sistema, sino únicamente aquellos usuarios definidos en el fichero específico para el servidor FTP. Para ello, la configuración del fichero /etc/proftpd.conf quedaría:

AuthUserFile “/etc/passwdftp” AuthOrder mod_auth_file.c

Recordemos que estos usuarios deben tener asignado el grupo nogroup o un grupo específico para los usuarios del servidor. No deben tener un intérprete de comandos válido ya que no deseamos que puedan iniciar sesión en nuestro sistema, sino utilizar exclusivamente el servicio FTP. Existe un script que permite dar de alta a usuarios en el nuevo fichero de forma automática. Su formato es el siguiente:

ftpasswd --passwd --name usuario --file ficherousuarios --uid idusuario --gid idgrupo --home directorioacceso --shell intérprete

--passwd Solicita la contraseña asociada al usuario. --name Nombre de la cuenta del usuario. --file Fichero donde se encuentran definidos los usuarios del servidor FTP. --uid Número de identificación del usuario. Podemos iniciar la numeración

de los usuarios del servidor por 5000, ya que el sistema suele utilizar números más pequeños.

--gid Número de identificación de grupo. Deberemos obtenerlo del fichero /etc/group.

--home Directorio de acceso del usuario cuando se conecte al servidor. --shell Intérprete de comandos no válido.

Por ejemplo: ftpasswd --passwd --name user2 --file /etc/passwdftp --uid 5007 --gid 350 --home /home/programas --shell

/bin/false

Administración: Como administradores podemos disponer de información relativa a los usuarios conectados al servidor en un momento dado: ftpcount: Muestra el número de conexiones actuales.

ftpwho: Muestra la lista de usuarios conectados. ftptop: Visualiza una pantalla de monitorización con la información actualizada.

Con los comandos anteriores podemos obtener el número de identificación de proceso (PID) de cada conexión. Por lo tanto, si deseamos expulsar a un usuario del servidor simplemente deberemos matar dicho proceso: kill -9 numproceso También es posible desconectar a los usuarios y prohibir la conexión mediante el comando ftpshut. Por ejemplo: ftpshut now “Cerrado por mantenimiento del servidor” El servidor no se detiene con este comando, sino que impide la conexión de usuarios. Para volver a habilitarlo utilizar: ftpshut -R En el fichero /etc/shutmsg se encuentra la configuración de la orden ftpshut. En realidad, al ejecutar ftpshut -R, se produce la eliminación de este fichero y, por lo tanto, la prohibición de conexión al servidor.