Manual de PROFTPD Para Debian

9
Introducción. El servicio de ftp es uno de los más antiguos y utilizados para la transferencia de archivos, los servidores webs lo utilizan para actualizar sus páginas estáticas, subir imágenes o para permitir la descarga de archivos a los visitantes. Los servidores FTP generalmente brindan 3 tipos de accesos: -El acceso al directorio personal del usuario. -El acceso dentro de una jerarquia de directorios y/o archivos destinada al FTP. -El acceso por FTP anónimo. Existen varios servidores de FTP que pueden realizar esta tarea, entre los más conocidos y seguros tenemos a: ProFTP y vsFTPD. El servicio de ftp utiliza los siguientes puertos: -Puerto 20, para enviar/recibir datos. -Puerto 21, para controlar la sesión. FTP Anónimo El FTP anónimo permite el acceso al servidor sin contraseña. Esta clase de FTP permite colocar archivos al alcance de los usuarios en general, no es necesaria la autenticación y solo ofrece acceso a una zona bien especifica del sistema. Para el caso de un FTP anónimo el servidor utiliza una funcionalidad llamada “entorno protegido” ó chroot, que se encarga de encerrar al usuario en directorios específicos. Por ejemplo, si da acceso al usuario anónimo dentro de /home/ftpd, este directorio será tomado como directorio raíz, el usuario no podrá recorrer la jerarquía de directorios superiores, no podrá subir más arriba de la raíz, por tanto no tendrá acceso a /home ni a cualquier otro directorio por encima de ese en la jerarquía del sistema. Servidor ProFTPD ProFTPD es un servidor ftp para Linux: es seguro, sumamente flexible, modular y fácil de configurar. Entre sus principales características tenemos: -Permite autenticar usuarios de diferentes formas.

Transcript of Manual de PROFTPD Para Debian

Page 1: Manual de PROFTPD Para Debian

Introducción.

El servicio de ftp es uno de los más antiguos y utilizados para la transferencia de archivos, los servidores webs lo utilizan para actualizar sus páginas estáticas, subir imágenes o para permitir la descarga de archivos a los visitantes.

Los servidores FTP generalmente brindan 3 tipos de accesos:

-El acceso al directorio personal del usuario.-El acceso dentro de una jerarquia de directorios y/o archivos destinada al FTP.-El acceso por FTP anónimo.

Existen varios servidores de FTP que pueden realizar esta tarea, entre los más conocidos y seguros tenemos a: ProFTP y vsFTPD.

El servicio de ftp utiliza los siguientes puertos:

-Puerto 20, para enviar/recibir datos.-Puerto 21, para controlar la sesión.

FTP Anónimo

El FTP anónimo permite el acceso al servidor sin contraseña. Esta clase de FTP permite colocar archivos al alcance de los usuarios en general, no es necesaria la autenticación y solo ofrece acceso a una zona bien especifica del sistema.

Para el caso de un FTP anónimo el servidor utiliza una funcionalidad llamada “entorno protegido” ó chroot, que se encarga de encerrar al usuario en directorios específicos.

Por ejemplo, si da acceso al usuario anónimo dentro de /home/ftpd, este directorio será tomado como directorio raíz, el usuario no podrá recorrer la jerarquía de directorios superiores, no podrá subir más arriba de la raíz, por tanto no tendrá acceso a /home ni a cualquier otro directorio por encima de ese en la jerarquía del sistema.

Servidor ProFTPD

ProFTPD es un servidor ftp para Linux: es seguro, sumamente flexible, modular y fácil de configurar. Entre sus principales características tenemos:

-Permite autenticar usuarios de diferentes formas.

Page 2: Manual de PROFTPD Para Debian

-Permite utilizar servidores virtuales de ftp.-Se puede tener múltiples servidores brindando servicio de ftp anónimo.-Es modular, lo que permite extender su funcionalidad ampliamente.-Un usuario con acceso por ftp no requiere de una configuración especial.-Su código es libre, esta licenciado bajo GPL.-Es portable a muchas plataformas (AIX, BSD/OS, Cygwin, DG/UX, Digital Unix, FreeBSD, HP/UX, IRIX, Linux for IBM S/390, zSeries, Linux, Mac OS X, NetBSD, OpenBSD, SCO, Solaris, SunOS).

1) Instalación.

# apt-get install proftpd

2) Configuración.

# su# mkdir /home/ftp# mkdir/home/ftp/up# chmod 755 /home/ftp# chmod 777 /home/ftp/up

4:lectura2:escritura1:ejecución

# nano /etc/proftpd.conf

Page 3: Manual de PROFTPD Para Debian

3) Parámetros del archivo de configuración.

ServerName: Sirve para indicar el nombre de nuestro servidor FTP.

ServerType: Especifica el tipo de arranque del servicio, standalone o inetd. Con “inetd” el equipo iniciará un nuevo proceso por cada pedido ftp y con “standalone” el servidor correrá como un proceso independiente, el proceso que ya se ha iniciado será clonado para atender el requerimiento de servicio.

DeferWelcome: Mensaje de entrada a mostrar por nuestro servidor antes de la autentificación, si elige off no poner el texto a mostrar ("mensaje").

ServerIdent: Nombre para identificar al servidor cuando se acceda por ftp.

DefaultServer: Utiliza las opciones por defecto de un servidor ftp.

ShowSymlinks: Si deseamos que muestre la dirección física de los enlaces dinámicos, si el enlace esta fuera del directorio destinado al ftp, su acceso no será posible.

AllowRetrieveRestart: Permite continuar la descarga de un archivo donde la transferencia no se completó, esta opción se conoce como “resume”.

AllowStoreRestart: Permite continuar con la escritura de un archivo que no se terminó completamente, va junto a la opción anterior.

DirFakeGroup: Permite cambiar el grupo de nuestros archivos cuando son descargados.

DirFakeUser: Misma función que la opción anterior pero para falsificar el usuario.

DirFakeMode: Cambia los permisos de los archivos descargados, sigue la nomenclatura del chmod: 1 es ejecucion, 2 es escritura y 4 lectura para el usuario, grupo y otros usuarios respectivamente.

MultilineRFC2228: Hace que el servidor ftp sea compatible con casi todos los clientes ftp.

TimeoutNoTransfer: Número máximo de segundos que puede estar un cliente sin realizar subida ni bajada de información en el ftp. Una vez sobrepasado el límite se cierra la conexión con el cliente.

TimeoutStalled: Número máximo de segundos que puede estar cliente-

Page 4: Manual de PROFTPD Para Debian

servidor sin recibir información de una transferencia ya sea subida o bajada.

TimeoutIdle: Número máximo de segundos que puede estar un cliente en el ftp sin realizar movimientos, ya sea desplazarse por el ftp, subir o bajar información. Una vez sobrepasado el límite cierra la conexión con el cliente.

DenyFilter: Filtro del propio proftpd.

Port: Indicamos el puerto donde queremos que escuche nuestro servidor, el 21 es el predeterminado.

MaxInstances: Número de conexiones que se pueden hacer simultáneamente al ftp.

AccessGrantMsg: Mensaje cuando el usuario se ha logueado correctamente.

AccessDenyMsg: Mensaje cuando el logueo del usuario ha sido incorrecto.

LogForma: Especificamos la manera que queremos que se logueen, un tipo de conexión.

ExtendedLog: Especifica donde se guardan físicamente los logs, además del TIPO que seleccionemos: WRITE(escritura), READ(lectura), AUTH(accesos) y ALL(todos los anteriores).

TransferLog: Existe un tipo de logueo que esta ya descrito con un LogFormat y TIPO predeterminado. Este tipo guarda todas las transferencias realizadas.

DefaultRoot: Hacemos chroot en el directorio de nuestro ftp, es decir, no permitiremos que pueda subir a un directorio jerárquicamente superior a él.

AuthUserFile: Indicamos donde esta el archivo con los usuarios que tienen acceso a nuestro ftp.

AuthGroupFile: Indicamos donde esta el archivo con los grupos que tienen acceso a nuestro ftp.

MaxClients: Máximo número de clientes que pueden estar simultáneamente en el servidor, se adjunta un mensaje cuando sobrepasa máximo permitido.

MaxClientsPerHost: Máximo número de clientes con el mismo ip, adjuntamos un mensaje cuando se sobrepasa el máximo permitido.

MaxClientsPerUser: Máximo número de clientes con la misma cuenta de usuario.

Page 5: Manual de PROFTPD Para Debian

RequireValidShell: Especificamos si los usuarios necesitan tener un shell válido o no, recomendable en off.

Servidor FTP anónimo:

Se utiliza la etiqueta <Anonymous> con propiedades muy específicas, esto es, de permitir el acceso al ftp sin password con el user predeterminado: anonymous.

Formato de la etiqueta anonymous:

User ftp Group nogroup UserAlias anonymous ftp Opciones específicas La mayoría de las opciones están explicadas en la primera parte, sólo listamos las opciones más usadas:

AccessGrantMsg "mensaje"RequireValidShell off/onMaxClients XMaxClientsPerHost XMaxClientsPerUser X

Cuando deseamos trabajar sólo con usuarios anónimos y no usuarios autenticados, sólo debemos utilizar la etiqueta <Limit> indicando LOGIN a DenyALL:

AllowAll

CONFIGURACIÓN PARA EL ACCESO PRIVADO Y ANÓNIMO.-

Esta es la configuración básica por defecto para ProFTPD, se establece un servidor FTP y un acceso anónimo al directorio /home/ftp:

ServerName "DebianFTP"ServerType standaloneDeferWelcome off ServerIdent on "JorgeJota"ShowSymlinks onAllowRetrieveRestart yesAllowStoreRestart yesDirFakeGroup off

Page 6: Manual de PROFTPD Para Debian

DirFakeUser offMultilineRFC2228 onDefaultServer onAllowOverwrite on TimeoutNoTransfer 600TimeoutStalled 600TimeoutIdle 1200 DisplayLogin /welcome.msgDisplayFirstChdir .messageLsDefaultOptions "-l"

DenyFilter \*.*/

Port 21MaxInstances 30AccessGrantMsg "XXX"AccessDenyMsg "El acceso no está autorizado"

User nobodyGroup nogroup

DefaultRoot ~AuthUserFile "/etc/passwd"AuthGroupFile "/etc/group"MaxClients 10MaxClientsPerHost 6MaxClientsPerUser 3RequireValidShell off

# Configuración para el directorio home:

Umask 022 022AllowOverwrite on

# Configuración básica para el acceso anónimo y sin permiso para guardar archivos:

User ftpGroup nogroupUserAlias anonymous ftpRequireValidShell offMaxClients 10DisplayLogin welcome.msg

Page 7: Manual de PROFTPD Para Debian

DisplayFirstChdir .message

<Directory *><Limit WRITE>DenyAll</Limit></Directory></Anonymous>

CONFIGURACIÓN PARA EL ACCESO SÓLO EN MODO PRIVADO CON AUTENTICACIÓN.-

Esta es la configuración básica por defecto para ProFTPD, se establece un servidor FTP y un acceso anónimo al directorio /home/ftp:

<Directory /*>Umask 022 022AllowOverwrite on</Directory>

No tenemos configuración básica para el acceso sólo en modo privado con autenticación.

CONFIGURACIÓN PARA EL ACCESO SÓLO EN MODO ANÓNIMO.-

# Denegar el acceso de usuarios del sistema en general:

<Limit LOGIN>DenyAll</Limit>

# Una configuración básica para el acceso anónimo y sin permiso para guardar archivos:

<Anonymous ~ftp>User ftpGroup nogroupUserAlias anonymous ftpRequireValidShell offMaxClients 10DisplayLogin welcome.msgDisplayFirstChdir .message

<Limit LOGIN>AllowAll

Page 8: Manual de PROFTPD Para Debian

</Limit>

<Directory *><Limit WRITE>DenyAll</Limit></Directory></Anonymous>

4) Administración del servicio.

Después de haber hecho cambios en el archivo /etc/proftpd.conf se debe iniciar o reiniciar el servicio, según sea el caso, para ello utilizar los siguientes comandos:

# ln -s /etc/init.d/proftpd /etc/rc2.d/S20proftpd (script de carga)

Para iniciar el servicio:# /etc/init.d/proftpd start

Para detener el servicio:# /etc/init.d/proftpd stop

Para reiniciar el servicio:# /etc/init.d/proftpd restart

5) Cliente FTP.

# apt-get install gftp# gftp

6) Cuotas.

Asignar cuotas de disco a usuarios.

Las cuotas permiten especificar límites en dos aspectos del almacenamiento en disco:

-El número de nodos que puede poseer un usuario o un grupo.-El número de bloques de disco que puede ocupar un usuario o un grupo.

La idea que se esconde detrás de las cuotas es que se obliga a los usuarios a mantenerse debajo de su límite de consumo de disco, quitándoles su habilidad de consumir espacio ilimitado en un sistema.

Page 9: Manual de PROFTPD Para Debian

Las cuotas se manejan en base al usuario o grupo y al sistema de archivos. Si el usuario espera crear archivos en más de un sistema de archivos, las cuotas deben activarse en cada sistema de archivos por separado.

En un servidor con distintos usuarios es fundamental limitarles el uso del espacio del disco duro para evitar posibles sorpresas. Es fácil conseguirlo con quota (en Debian).

Primero debemos preparar la partición en la que queremos poner cuotas editando /etc/fstab (añadimos lo que está en color):

# /dev/hda2/ /home ext3 defaults,usrquota 0 2

Con eso cuando reiniciemos tendremos la partición preparada. Para activarlo ahora sin reiniciar (hasta que volvamos a reiniciar):

# mount -o remount,usrquota /home

Creamos 2 archivos en la partición en la que queremos crear las cuotas de usuario:

# touch/home/aquota.user# touch/home/aquota.group# chmod 600 /home/aquota.user /home/aquota.group

Ahora instalamos quota y quotatools:

# apt-get install quota quotatool

Activamos las cuotas:

# quotacheck -vagumf

Por último asignamos una cuota de 300 Mb para el usuario “prueba”:

# quotatool -u prueba -bq 300M -l ‘320 Mb’ /home

Para ver las cuotas asignadas:

# repquota /home

Para eliminar la cuota del usuario “prueba”:

# quotatool -u prueba -bq 0M -l ‘0 Mb’ /home