INSTALACIÓN DE PROFTPD Instalamos el paquete: apt-get install proftpd Nos sale un diálogo. Respuesta: Independient Podemos limitar el acceso al ftp de la siguiente forma Accedemos al fichero de configuración. Nano /etc/proftpd/proftpd.conf y añadimos al final lo siguiente. CREACIÓN DE USUARIO PRIVADO 1º Creamos su carpeta personal. Mkdir /home/Zapatero 2º Creamos el usuario: useradd -d /home/Zapatero -s /bin/false Zapatero 3º Hacemos dueño al usuario de su carpeta: chown -R Zapatero /home/Zapatero 4º Creamos la contraseña de cada usuario: passwd Zapatero Probamos el acceso Creación de usuario anónimo privado 1º Creamos su carpeta personal. Mkdir /home/Pablito 2º Creamos el usuario: useradd -d /home/Pablito -s /bin/false Pablito 3º Hacemos dueño al usuario de su carpeta: chown -R Pablito /home/Pablito 4º Creamos la contraseña de cada usuario: passwd Pablito Establecer permisos. Volvemos a acceder al fichero /etc/proftpd/proftpd.conf y escribimos al final del fichero lo siguiente. <Anonymous /home/Pablito> User ftp Group nobody # Desabilitamos que el el shell sea requerido RequireValidShell off # Habilitamos que pida contrañaseña AnonRequirePassword on # Permitir escritura en cualquier directorio del usuario <Directory *> <Limit WRITE> Order allow, deny Allow from Pablito Deny from all </Limit> <Limit LOGIN> AllowAll </Limit> </Directory> </Anonymous> Reiniciamos el servicio: service proftpd restart Verificamos el funcionamiento con filezilla y desde el navegador En el caso de no tenerlo instalamos filezilla: apt-get install filezilla - Desde Filezilla: Primero probamos que nos permite acceder Ahora probamos con un usuario que no tenga permisos - Desde el navegador: Primero probamos que nos permite acceder Ahora probamos con un usuario que no tenga permisos. No nos dará acceso CREACIÓN DE USUARIO ANÓNIMO Creamos un directorio por defecto: mkdir /var/ftp/anonimos. En el fichero de configuración: nano /etc/proftpd/proftpd.conf <Anonymous /home/ftp> User ftp Group nobody UserAlias anonymous ftp # Desabilitamos que el el shell sea requerido RequireValidShell off # Habilitamos que pida contrañaseña AnonRequirePassword off # No permitir escritura <Directory *> <Limit WRITE> DenyAll </Limit> <Limit LOGIN> AllowAll </Limit> </Directory> </Anonymous> Hacemos dueño al usuario ftp del directorio /var/ftp/anonimos: Chown –R ftp /home/ftp/ Reiniciamos el servicio para guardar los cambios: service proftpd restart Probamos la configuración accediendo desde firezilla.. Un usuario anónimo sí puede hacer login en el FTP y tiene acceso a los archivos del servidor. Aunque tiene permisos de escritura ya que no puede subir ningún archivo al FTP. Creación de host virtuales FTP Accedemos al fichero de configuracón: nano /etc/proftpd/proftpd.conf y descomentamos la siguiente línea. Creamos los directorios que necesitamos: Damos a los usuario permisos: chown ftp /var/ftp/ficherodeftp1/ /var/ftp/ficherodeftp2 Configuramos los host virtuales en el fichero etc/proftpd/virtuals.conf 1º VIRTUAL HOST ftp.pepe1.com <VirtualHost ftp.pepe1.com> ServerAdmin ftpmaster@server.com ServerName "FTP de PEPE1" Port 2121 MasqueradeAddress ftp.pepe1.com TransferLog /var/log/proftpd/xfer/ftp.pepe1.com MaxLoginAttempts 3 RequireValidShell no DefaultRoot /var/ftp/ficherodeftp1 AllowOverwrite yes <Limit LOGIN> Allow from 192.168.1.42 DenyAll </Limit> <Directory /var/ftp/ficherodeftp1> <Limit WRITE> Allow from 192.168.1.42 </Limit> </Directory> </VirtualHost> Creamos el segundo Virtual host 2º VIRTUAL HOST ftp.pepe2.com <VirtualHost ftp.pepe2.com> ServerAdmin ftpmaster@server.com ServerName "FTP de PEPE2" Port 2122 MasqueradeAddress ftp.pepe2.com TransferLog /var/log/proftpd/xfer/ftp.pepe2.com MaxLoginAttempts 3 RequireValidShell no DefaultRoot /var/ftp/ficherodeftp2 AllowOverwrite yes <Limit LOGIN> Allow from 192.168.1.42 DenyAll </Limit> <Directory /var/ftp/ficherodeftp2> <Limit WRITE> Allow from 192.168.1.42 </Limit> </Directory> </VirtualHost> Reiniciamos el servicio: service proftpd restart Ahora accedemos a /etc/hosts y debemos especificar el nombre de nuestros hosts virtuales. Comprobamos el funcionamiendo de los dos host virtuales HOST1: Accedemos desde el firezilla HOST1: Accedemos desde un navegador HOST2: Accedemos desde firezilla HOST2: Accedemos desde un navegador