Portada del sitio > Internet > Instalar un servidor > Servidor FTP

Instalar un servidor - XI

Servidor FTP

Jueves 11 de mayo de 2006, por Dani

Necesitamos un server-ftp para poder subir files, tanto root como los usuarios del sistema.
Elijo pure-ftpd por ser rápido, efectivo y seguro (el poco código que tiene hace que sea más difícil encontrar un bug).

http://pureftpd.org/

Para instalarlo disponemos de dos opciones (binarios o fuentes)

opción 1) con #apt-get

# apt-get install pure-ftpd

standalone (si va a soportar muchas conexiones)
inetd (si va a soportar pocas)

* algunas opciones sólo están disponibles en modo standalone

Si después nos arrepentimos:

# dpkg-reconfigure pure-ftpd-common

Opciones:

En los ficheros de configuración:
en la ruta "/etc/pure-ftpd/conf"
En lugar de un fichero con varias opciones, hay varios ficheros (cada uno es una opción).
Los más importantes son:
AltLog -> clf:/var/log/pure-ftpd/transfer.log
ChrootEveryone -> yes (encajar cada usuario en su directorio personal)
IPV4Only -> yes
MaxClientsNumber -> 5
MaxClientsPerIP -> 5
MaxDiskUsage -> 95 (indica el porcentaje)
MinUID -> 1000 (no pueden entras usuarios del sistema con menos de este uid en el ftp)
NoAnonymous -> yes (deshabilita la entrada de usuarios anónimos)
PAMAuthentication -> yes
ProhibitDotFilesRead -> yes
PureDB -> /etc/pure-ftpd/pureftpd.pdb
Quota -> 100 500 (primero nº de archivos y después los megabytes)
UserBandwidth -> 1000 1000 (primero la subida y después la bajada)

con # pure-ftpd —help salen todas las opciones
más ayuda con # man pure-ftpd

Los reiniciamos con:

# /etc/init.d/pure-ftpd restart

opción 2) instalando desde las fuentes

Tras analizar y probar ambas opciones me quedo con esta segunda:

Instalacion:

Bajamos las fuentes (de la última versión) desde:

ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/
ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.20.tar.gz

Nos situamos en la carpeta donde lo hemos bajado y descomprimimos:

$ tar -xvzf pure-ftpd-1.0.20.tar.gz

Nos posicionamos en el directorio creado:

$ cd pure-ftpd-1.0.20

Opciones de compilación:

$ ./configure --help

elegiremos las siguientes:

  --without-inetd -> Como el servidor lo tendremos como un proceso aparte, no necesitamos soporte inetd
  --with-puredb -> Soporte para usuarios virtuales
  --with-ratios -> Soporte para ratios de subida/bajada
  --with-quotas -> Soporte para cuotas
  --with-ftpwho -> Soporte para poder ver al momento quien está conectado y qué está haciendo
  --with-throttling -> Soporte para limitar el ancho de banda
  --with-language=spanish -> Soporte para nuestro idioma 

Por tanto:

$ ./configure --without-inetd --with-puredb --with-ratios --with-quotas --with-ftpwho --with-throttling --with-language=spanish

$ make

$ su

# make install

Configuración para usuarios del sistema

Añadimos la línea:
/bin/false [no olvidad ENTER]
al fichero:
/etc/shells

A los users del sistema, les daremos espacio web y acceso ftp, pero no acceso al sistema:

nano /etc/passwd
...
usuario:x:1002:100::/home/usuario:/bin/false
...

(tb se puede configurar la variavle DSHELL en el /etc/adduser.conf)

Apache debe estar configurado para permitir que los usuarios creen sus web’s personales

Iniciar el server:

# /usr/local/sbin/pure-ftpd  -A -B -c 5 -C 2 -d -E -j -n 1000:100


 A para que no pueda salir de su directorio de inicio
 B correr en segundo plano
 c 5 número máximo de usuarios simultáneos
 C 2 número máximo de conexiones desde la misma IP simultáneos
 d Log verboso (loguea con bastante información)
 E No se permiten usuarios anónimos
 j crea el directorio raíz a los usuarios virtuales
 n 1000:10 max.1000 files:max 100 megas

(de todas formas, la cuota de disco para los users se hará con quote)

Pararlo:

# killall pure-ftpd

Deberíamos crear un script para que se inicie al arrancar el sistema

Creamos un script de nombre ’ftpdani’ (por ej.)
con el siguiente contenido:

#!/bin/bash

case "$1" in

iniciar)

echo "Arrancando pure-ftpd..."
/usr/local/sbin/pure-ftpd -A -B -c 5 -C 2 -d -E -j -n 1000:100

;;
parar)

echo "Terminando pure-ftpd..."
killall pure-ftpd

;;
*)

echo "Uso: $0 start|stop"
exit 1

;;

esac
exit 0

tenemos que ponerlo en: /etc/init.d/

No olvidar darle permisos al script

# chmod 755 ftpdani

Además tecleamos:

# update-rc.d ftpdani defaults

con lo cual se iniciará al arrancar el sistema.

Además el script nos permite iniciarlo y pararlo mediante:

# /etc/init.d/./ftpdani iniciar
# /etc/init.d/./ftpdani parar


 

Mensajes

¿Un mensaje, un comentario?

moderación a priori

Este foro es moderado a priori: su contribución sólo aparecerá una vez validada por un/a administrador/a del sitio.

¿Quién es usted?
Su mensaje

Para crear párrafos, deje simplemente líneas vacías.

Añadir un documento