Instalación:
Sencilla, a traves de nuestro amado apt-get:
sudo apt-get install proftpd
Creación de usuario para FTP:
El ProFTPd nos crea un usuario por defecto llamado, justamente, ftp lo cual a nosotros nos nos gusta y no lo usaremos. Vamos a crear uno un poco menos obvio. Para ello escribimos:
sudo adduser nuestrouserftp
Está claro que hay que sustituir "nuestrouserftp" por el usuario que queramos utilizar.
Después de ingresar esa línea nos pedirá que le asignemos una pass y una serie de datos como Nombre Completo, etc que no hace falta ni que sean reales ni completar, podemos darle todo ENTER.
Cambiar password de usuario:
Si algun día, por alguna razón, necesitamos darle los datos de acceso a alguien tenemos después la posibilidad de modificar la contraseña de nuestro usuario ftp. Para hacerlo escribimos en una terminal:
sudo passwd nuestrouserftp
A continuación editamos el archivo /etc/passwd y vemos que /home tiene asignado nuestro usuario. Aparecerá algo así:
nuestrouserftp:x:1002:1002:Usuario FTP,,,:/home/nuestrouserftp:/bin/false
Si fuese necesario cambiarlo deberiamos verificar en /etc/shells que aparezca la shell falsa /bin/false. Escribimos en una terminal:
sudo nano /etc/shells
Y si en ningún lado aparece /bin/false lo agregamos al final.
Ahora procedemos a darle los permisos a nuestra carpeta. Escribimos en terminal:
chown -R nuestrouserftp /home/nuestrouserftp/
El parámetro -R es para hacer recursivo el comando, con lo cual si vamos a crear carpetas dentro de /home/nuestrouserftp nos conviene primero crear las carpetas y después ejecutar la línea.
Para evitar que los usuario se logueen por FTP editamos /etc/ftpusers:
sudo nano /etc/ftpusers
Seguramente ya figuran algunos usuarios, podemos añadir clásicos como root,anonymous y ftp. Todos los usuarios que figuren en este archivo NO podrán loguearse. Mas adelante explico una forma de denegar el acceso de todos excepto a "nuestrouserftp".
Para ver el log de Proftpd:
sudo nano /var/log/proftpd/proftpd.log
Aquí nos aparecerán todos los intentos de login.
Ahora procedemos a la configuración del FTP para ello editamos el archivo proftpd.conf:
sudo nano /etc/proftpd/proftpd.conf
Vamos a configurar algunas cosas esenciales. A continuación vemos las lineas de ese archivo:
ServerName "Nombre_del_servidor_ftp" #De mas está decir que acá va el nombre del servidor =)
ServerType standalone/inetd #Nosotros usaremos standalone.
DeferWelcome off/on #Elegimos off para no mostrar mensaje de entrada.
MultilineRFC2228 on/off #Elegimos on, esto hará a nuestro ftp compatible con casi todos los clientes ftp.
DefaultServer on/off #Elegimos on, toma las opciones default de un servidor ftp.
ShowSymlinks on/off #Elegimos on, podremos ver los links, si el link esta fuera de nuestro home no tendremos acceso a él.
TimeoutNoTransfer <numero> #Número máximo de segundos que puede estar un cliente en el ftp sin transferir nada. Por defecto 600 seg.
TimeoutStalled <numero> #Número máximo de segundos que puede estar el cliente-servidor sin recibir información de una transferencia. Por defecto 600 seg.
TimeoutIdle <numero> #Número máximo de segundos que puede estar un usuario sin hacer nada. Por defecto 1200 seg.
DenyFilter \*.*/ #Es un filtro de protección para el ProFTPd.
DefaultRoot /home/usuarioftp #Para mi, vital. Acá le decimos a que carpeta va a acceder. Si no lo configuramos accede a todas, si configuramos por ejemplo /home accede a todos los /home. En este caso tendrá acceso solo a su /home.
Port <numero> #Acá va el puerto al que conecta nuestro servidor, por defecto el 21.
MaxInstances <numero> #Cantidad máxima de conexiones al FTP que se pueden hacer a la vez.
AllowOverwrite on #Elegimos on para sobreescribir ficheros existentes.
TransferLog /var/log/proftpd/xferlog #Loguea las transferencias que se realicen en el FTP.
SystemLog /var/log/proftpd/proftpd.log #Se guardan los intentos de login.
Por último, y como indique anteriormente, si queremos denegar el acceso de todos, excepto del usuario usuarioftp añadimos esto al final del archivo de configuración:
<Limit LOGIN> #Limitamos a quienes intentan loguearse en el FTP.
AllowUser usuarioftp #Allow es para indicar a quienes vamos a aceptar.
AllowUser usuarioftp #Allow es para indicar a quienes vamos a aceptar.
DenyAll #Deny es para indicar a quienes denegamos el ingreso. Podemos poner los usuarios y separarlos por comas o, como en este caso, podemos elegir DenyAll e impedir el acceso de todos excepto del que figura en Allow.
</Limit>
RequireValidShell off
Administrar el FTP:
Tenemos 2 comandos que nos serán de gran utilidad:
ftptop
ftpwho
ftptop nos indica en tiempo real quienes están conectados a nuestro FTP. ftpwhonos sirve para ver en un momento determinado quien está conectado.
Para cerrar el servidor y mostrar un mensaje con el motivo por el cual se encuentra inaccesible podemos usar la herramienta ftpshut:
sudo ftpshut now "En este momento se están realizando tareas de mantenimiento, disculpe las molestias"
Después deberán ejecutar ftpshut -R para hacerlo accesible nuevamente.
Por último, para reiniciar el servicio ProFTPd:
sudo /etc/init.d/proftpd restart
Si queremos detenerlo debemos escribir stop en lugar de restart.
Eso fue todo por hoy, espero que les haya sido útil =)
Referencias: WikiLearning y The bit Developer
Después deberán ejecutar ftpshut -R para hacerlo accesible nuevamente.
Por último, para reiniciar el servicio ProFTPd:
sudo /etc/init.d/proftpd restart
Si queremos detenerlo debemos escribir stop en lugar de restart.
Eso fue todo por hoy, espero que les haya sido útil =)
Referencias: WikiLearning y The bit Developer
Extraido de : hayardillasenlared.blogspot.com.es