Ahora, ¿por que hablo de Dropbox si el título dice como instalar un FTP? Bueno, en realidad la idea nace a raiz de Dropbox. Si bien es extremadamente útil convengamos que 2GB no es demasiado espacio disponible, aunque con algunos "trucos" que andan dando vuelta por internet uno puede subir su capacidad de almacenamiento (yo tengo actualmente 3.3GB). Así y todo nunca alcanza. Ahí fue cuando se me ocurrió instalarme un FTP en una máquina vieja que tengo con, el cada vez mas querido, Debian Squeeze 6 como para aliviar un poco a Dropbox y no cargarlo tanto con cosas que quizas no son vitales.
Este pequeño tutorial nos va a servir para instalar y configurar un FTP en Debian Squeeze aunque debería funcionar también en nuestro querido y popular Ubuntu.
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 da asco y no lo usaremos. Vamos a crear uno un poco menos obvio. Para ello escribimos:
sudo adduser usuarioftp
Está bien, está bien... también es obvio, pero no tanto =)
De mas esta decir que pueden elegir el nombre que quieran. 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 usuarioftp. Para hacerlo escribimos en una terminal:
sudo passwd usuarioftp
A continuación editamos el archivo /etc/passwd y vemos que /home tiene asignado nuestro usuario. Aparecerá algo así:
usuarfioftp:x:1002:1002:Usuario FTP,,,:/home/usuarioftp:/bin/false
Si fue necesario cambiarlo debemos 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 usuarioftp /home/usuarioftp/
El parámetro -R es para hacer recursivo el comando, con lo cual si vamos a crear carpetas dentro de /home/usuarioftp 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 del usuarioftp.
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. ftpwho nos 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
Hola como estás?... Excelente blog :)... Creo que tenemos un estilo de escritura parecido. Un saludo desde Colombia :).
ResponderEliminarPuede ser, vi tu entrada de como instalar un FTP =)
ResponderEliminarPor ahí por eso te parece un excelente blog, porque se parece al tuyo xD
Saludos desde Argentina!
Este comentario ha sido eliminado por el autor.
EliminarHola Nasty y demás participantes.
EliminarHe leído el tutorial y esta muy bien, pero tengo un problema con mi ftpd con Ubuntu y me gustaría recibir ayuda con ello.
La cosa es que si estoy cierto tiempo sin entrar al ftp "algo más de un dia" se queda inaccesible hasta que lo reinicio, de hecho no llega a verse ni el formulario de login.
Saben qué puede pasar?
GRACIAS DE ANTEMANO.
Tu post me ha sido muy útil.
ResponderEliminarMuchas gracias!
Gracias a vos por comentar!
EliminarEres un máquina tio!!!
ResponderEliminarGracias!
EliminarGracias por el post, me haz ayudado en gran manera, saludos desde Guatemala...
ResponderEliminarVoy a probar mañana y te cuento como me fue, espero que resulte ya que llevo una semana tratando de configurar mi servidor ftp.
ResponderEliminarSi tienes algo de como configurarlo con webmin sería bueno que lo subieras.
Hola soy nuevo en administración de redes en linux me gusta mucho el sistema por la fiabilidad y seguridad que ofrece, monté el proftpd lo veo bien de mi red local pero cuando intento acceder desde otra red no es posible abrí el puerto 21 pero nada aun.
ResponderEliminarPD: Uso debian lenny
Alguien me ayuda por favor???
Muy bueno el post y útil a la vez, pero aún no se como configurar el proftpd para visualizarlo desde una red externa, alguien me dice como, gracias de antemano.
ResponderEliminarMuy útil. Gracias y sigue así
ResponderEliminarMuchaaaaa gracias! Me encanta la comunidad que tenemos en informática.
ResponderEliminarAbrazo
Hola. Gracias por el Post. De esta forma quedará configurado el ProFTPD para que arranque con el sistema? Sino... como lo dejo con autoarranque?
ResponderEliminarMuchas gracias ha resultado muy útil tu información.
ResponderEliminarMuchas gracias, a dia de hoy me a servido tu post , para un proyecto que estaba montando!! Sos groso amigo!
ResponderEliminarExcelente artículo, gracias.
ResponderEliminarhola he seguido todo el proceso, pero resulta que cuando intentas acceder desde fillezila da un error de conexion
ResponderEliminarResponse: 331 Password required for usuarioftp
Command: PASS **********
Response: 530 Login incorrect.
Error: Critical error
Error: Could not connect to server
eso sucede cuando tienes en /etc/passwd lo que tu comentastes que pusieramos /bin/false si se cambia a /bin/bash funciona bien.... hay algun problema con colocar bash en vez de false?
Y... lo aconsejable es usar false porque con bash el usuario puede loguearse, entonces si vos le pasas tu usuario ftp y pass a alguien ésta persona ademas del acceso al ftp tiene acceso a tu pc, en cambio con false solamente puede entrar en el ftp... Eso lo manejas vos...
EliminarExcelente
ResponderEliminarGracias Virrrrrrrtuales
ResponderEliminar