ProFTPD-1.2.8p

Introducción a ProFTPD

El paquete ProFTPD contiene un demonio FTP seguro y altamente configurable. Sirve para proporcionar acceso a grandes cantidades de ficheros en una red.

Información sobre el paquete

Instalación de ProFTPD

Por razones de seguridad, se recomienda ejecutar ProFTPD con usuario y grupo sin privilegios.

groupadd proftpd &&
useradd -c proftpd -d /home/ftp -g proftpd -s /bin/false proftpd

Instala ProFTPD ejecutando los siguientes comandos:

install_user=proftpd install_group=proftpd \
   ./configure --prefix=/usr --sysconfdir=/etc \
   --localstatedir=/var &&
make &&
make install 

Explicación de los comandos

install_user=proftpd install_group=proftpd : Especifica el usuario y el grupo para ProFTPD.

--prefix=/usr : Esto instala ProFTPD en /usr en vez de en /usr/local.

--sysconfigdir=/etc : Esta opción evita que los ficheros de configuración se copien en /usr/etc.

--localstatedir=/var : Esto hace que se utilice /var en vez de /usr/var para los ficheros de bloqueo (lock) y registro.

Configuración de ProFTPD

Ficheros de configuración

/etc/proftpd.conf

Esta es un ejemplo de configuración simple que sólo permite descargas. Revisa la documentación de ProFTPD en /usr/share/doc/proftpd y consulta su página en Internet http://www.proftpd.net/ para ver más ejemplos de configuración.

cat > /etc/proftpd.conf << "EOF"
# Este es un fichero de configuración básico para ProFTPD
# Establece un servidor y un acceso para un usuario anónimo.

ServerName			"Instalación básica de ProFTPD"
ServerType			standalone
DefaultServer			on

# 21 es el puerto estándar para FTP.
Port				21
# Umask 022 es un buen estándar para evitar que los nuevos directorios y ficheros
# se creen con permisos de escritura para el grupo y otros.
Umask				022

# Para prevenir ataques DoS (Denegación de Servicios), establecemos un límite
# de 30 procesos hijo. Si necesitas más de 30 conexiones concurrentes a la vez,
# simplemente aumenta este valor. Ten en cuenta que esto SÓLO funciona si se
# ejecuta ProFTPD desde un guión de inicio, si usas algún servidor inetd deberías
# usar uno que te permita limitar el número de procesos por servicio
# (por ejemplo, xinetd).
MaxInstances			30

# El usuario y grupo bajo los cuales se ejecuta normalmante el servidor.
User				proftpd
Group				proftpd

# En general, queremos que se puedan sobreescribir los ficheros.
<Directory /*>
  AllowOverwrite		on
</Directory>

# Una configuración básica con acceso anónimo, sin directorios para subir ficheros.
<Anonymous ~proftpd>
  User				proftpd
  Group				proftpd
  # Queremos que los clientes puedan acceder como usuario "anonymous" o "proftpd"
  UserAlias			anonymous proftpd

  # Máximo número de conexiones anónimas.
  MaxClients			10

  # Queremos mostrar el contenido de 'welcome.msg' en el ingreso, y el de '.message'
  # cada vez que se cambie de directorio.
  DisplayLogin			welcome.msg
  DisplayFirstChdir		.message

  # Limitar la escritura en cualquier lugar del chroot anónimo.
  <Limit WRITE>
    DenyAll
  </Limit>
</Anonymous>
EOF

Guión proftpd para init.d

cat > /etc/rc.d/init.d/proftpd << "EOF"
#!/bin/sh
# Inicio de $rc_base/init.d/proftpd

# Basado en el guión sysklogd de LFS-3.1 y anteriores.
# Reescrito por Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
	        echo "Iniciando el servidor FTP..."
	        loadproc /usr/sbin/proftpd
	        ;;

	stop)
	        echo "Deteniendo el servidor FTP..."
	        killproc /usr/sbin/proftpd
	        ;;

	reload)
	        echo "Recargando el servidor FTP..."
	        reloadproc /usr/sbin/proftpd
	        ;;

	restart)
	        $0 stop
	        sleep 1
	        $0 start
	        ;;

	status)
	        statusproc /usr/sbin/proftpd
	        ;;

	*)
	        echo "Uso: $0 {start|stop|reload|restart|status}"
	        exit 1
	        ;;
esac

# Fin de $rc_base/init.d/proftpd
EOF
chmod 755 /etc/rc.d/init.d/proftpd

Crea los enlaces simbólicos a este fichero en los directorios rc.d adecuados con los siguientes comandos:

cd /etc/rc.d/init.d &&
ln -sf ../init.d/proftpd ../rc0.d/K50proftpd &&
ln -sf ../init.d/proftpd ../rc1.d/K50proftpd &&
ln -sf ../init.d/proftpd ../rc2.d/K50proftpd &&
ln -sf ../init.d/proftpd ../rc3.d/S50proftpd &&
ln -sf ../init.d/proftpd ../rc4.d/S50proftpd &&
ln -sf ../init.d/proftpd ../rc5.d/S50proftpd &&
ln -sf ../init.d/proftpd ../rc6.d/K50proftpd

Contenidos

El paquete ProFTPD contiene ftpcount, ftpshut, ftptop, ftpwho y proftpd.

Descripciones

ftpcount

ftpcount muestra la cantidad de conexiones actuales.

ftpshut

ftpshut detiene todos los servidores proftpd en un momento determinado.

ftptop

ftptop muestra el estado de ejecución de las conexiones.

ftpwho

ftpwho muestra información sobre los procesos actuales para cada sesión.

proftpd

proftpd es el propio servidor.