Servicios Vensign
25
Ago
2007

Servidor FTP con proftp en Ubuntu / Debian

  • Sigue a Vensign en Twitter
  • Digg Esto!
  • Compartelo en Facebook
  • Compartelo en Buzz
Visto 8.736 veces | 102 Comentarios | Imprimir Imprimir
En este tutorial vamos a hablar de cómo instalar y configurar un servidor FTP con restricción de usuarios en Debian / Ubuntu, proftp es un servidor de ftp robusto y fácil de configurar vamos a ver como lo instalamos: Este tutorial está basado en la sigueinte guía http://ubuntuforums.org/showthread.php?t=79588 Primero para instalarlo ejecutamos el siguiente comando: Ubuntu
sudo apt-get install proftpd
Debian (como root)
apt-get install proftpd
Aparece una pantalla para que elijas entre dos opciones inetd o standalone, ahorita no voy a explicar cuales son las ventajas y desventajas de cada una te acosejo que elijas standalone a menos que ya hayas utilizado inetd. Luego por razones de seguridad vamos a crear un shell falso para el acceso de ftp para esto vamos a agregar una linea en el archivo /etc/shell:

Ubuntu

gedit sudo /etc/shells

Debian

nano /etc/shells

Nota: Si estamos en la consola también podemos editar los archivos con vim

Y agregamos la siguiente línea al final del archivo:
/bin/false
Esto va a evitar que cualquier usuario que utilice el ftp puede accesar a nuestra consola de comandos Ahora creamos un directorio donde se guardarán los archivos que compartiremos en el ftp:
cd /home
 sudo mkdir FTP-public
Ahora vamos a crear un usuario para accesar al ftp con los siguientes comandos:
sudo useradd userftp -p tu_password -d /home/FTP-public -s /bin/false
Claro puedes cambiar userftp por el nombre que quieras y coloca el password en donde dice tu_password. Analicemos un momento este comando, useradd permite añadir un usuario le estamos dando las siguientes opciones: -p para definir el password, -d para definir cual va a ser el directorio principal o home del usuario y -s para indicarle cual es el shell por defecto del usuario, para más información de este comando puedes colocar man useradd en la consola. Ahora vamos a crear dos directorios más para separar los archivos de subida y bajada:
sudo mkdir /home/FTP-public/download
sudo mkdir /home/FTP-public/upload
Ahora tenemos que especificar los permisos de lectura y escritura para estos directorios:
sudo chmod 755 /home/FTP-public
sudo chmod 755 /home/FTP-public/download
sudo chmod 777 /home/FTP-public/upload
Es importante recalcar que si tienes instalado un servidor Web como el que se explica aquí puedes crear las carpetas dentro de /var/www/tu_sitio para que tengas un FTP dentro del sitio web que estes usando y crear varios usuarios de FTP con distintos privilegios. Ahora veamos el archivo de configuración del proftp que se encuentra en /etc/proftpd/proftpd.conf para esto ejecutamos:
sudo gedit /etc/proftpd/proftpd.conf
o si lo queremos editar en la consola con vim
sudo vim /etc/proftpd/proftpd.conf
A continuación presento el archivo de configuración proftpd.conf los comentarios de que hace cada directiva están dentro del archivo:
   # Para aplicar los cambios tienes que reiniciar el servidor FTP
AllowOverwrite on
AuthAliasOnly on

# Escoge aqui un alias para tu usuario de FTP

UserAlias vensign userftp

ServerName			"Vensign FTP"

ServerType 			standalone

DeferWelcome			on

MultilineRFC2228 on

DefaultServer			on

ShowSymlinks			off

TimeoutNoTransfer 600

TimeoutStalled 100

TimeoutIdle 2200

DisplayFirstChdir               .message

ListOptions                	"-l"

RequireValidShell 		off

TimeoutLogin 20

RootLogin 			off

# Aqui creamos los archivos de logs que son de mucha utilidad en caso de fallos

ExtendedLog 			/var/log/ftp.log

TransferLog 			/var/log/xferlog

SystemLog			/var/log/syslog.log

#DenyFilter			*.*/

# No vamos a utilizar el archivo /etc/ftpusers file
#
(sirve para colocar adentro los usuarios que no queremos que se conecten)

UseFtpUsers off

# Permitir reiniciar una descarga (muy util en caso de que se caiga la conexion)

AllowStoreRestart		on

#El puerto 21 es el estandar para FTP,
#es bueno cambiarlo por razones de seguridad
#aqui escogi el 1980 puedes escoger el que quieras

Port				1980

# Para evitar ataques de DoS (negacion de servicio), se recomienda

# colocar un maximo de 30 procesos hijos. Si necesitas mas conexiones

# que esta simplemente aumenta este valor. Esto solo funciona con el

# servidor en modo standalone

MaxInstances 8

# Coloca el usuario y el grupo al que el servidor normalmente funciona

User                  nobody

Group                 nogroup

# Umask 022 es un buen valor por defecto para evitar que nuevos archivos y directorios

# sean escribibles por todo el mundo o por el grupo.

Umask				022	022

PersistentPasswd		off

MaxClients 8

MaxClientsPerHost 8

MaxClientsPerUser 8

MaxHostsPerUser 8

# Despliega un mensaje despues de que ingresa un usuario

AccessGrantMsg "Bienvenidos a Vensign !!!"

# Este mensaje es mostrado por cada intento de ingreso sea bueno o no

ServerIdent                  on       "estas en Vensign"

# Coloca a /home/FTP-public como el directorio principal (home)

DefaultRoot /home/FTP-public

# Bloquea a todos los usuarios al directorio home que definimos

DefaultRoot ~

MaxLoginAttempts    5

#Ingresos validos solo permitimos a userftp

<Limit LOGIN>

AllowUser userftp

DenyALL

</Limit>

#Definimos los permisos de los directorios que creamos para el FTP

<Directory /home/FTP-public>

Umask 022 022

AllowOverwrite off

<Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD>

DenyAll

</Limit>

</Directory>

<Directory /home/FTP-public/download/*>

Umask 022 022

AllowOverwrite off

<Limit MKD STOR DELE XMKD RNEF RNTO RMD XRMD>

DenyAll

</Limit>

</Directory>

<Directory> /home/FTP-public/upload/>

Umask 022 022

AllowOverwrite on

<Limit READ RMD DELE>

DenyAll

</Limit>

<Limit STOR CWD MKD>

AllowAll

</Limit>

</Directory>
Con este archivo de configuración tendrás un servidor FTP funcionando con el usuario vensign (como alias de userftp) y con el password que colocaste más arriba, cuando creaste el usuario, además definimos como puerto de conexión 1980, para que haga efecto la configuración debemos reiniciar el servidor FTP ejecutando:
sudo /etc/init.d/proftpd restart
Para conectarte desde un cliente FTP debes recordar colocar como puerto de conexión 1980 como lo definimos en el archivo de configuración. Bueno eso es todo por ahora, después colocaré un par de tutoriales más acerca de proftp para podernos conectar vía SSL y algunas otras cosas de seguridad. Espero sus comentarios Saludos Olivers

Otros artículos que te pueden interesar

  1. Instalar un Servidor LAMP en Ubuntu/Debian Un servidor LAMP se refiere a la mezcla de Linux+Apache+Mysql+PHP...
  2. Instalando Samba en Ubuntu / Debian para compartir archivos e impresoras en redes Windows Samba es un programa Open Source que nos permite compartir...
  3. Curso de instalación y configuración de Samba en Ubuntu / Debian por IRC Hoy estaré dando un pequeño curso del servidor Samba para...
  4. Instalar Shorewall Firewall para Debian y Ubuntu En esta oportunidad les voy a mostrar como instalar Shorewall...
  5. Como instalar un Servidor DHCP en Ubuntu   Un servidor DHCP asigna dinámicamente direcciones IP a las...

Creative Commons License
Este trabajo está licenciado bajo Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Unported License

Comparte este Artículo!

  • Sigue a Vensign en Twitter
  • Digg Esto!
  • Compartelo en Facebook
  • Compartelo en Buzz

Suscribirse sin comentar

102 Comentarios

  1. hola Olivers leyendo la configuracion de proftpd
    tengo duda en esta parte

    # Coloca el usuario y el grupo al que el servidor normalmente funciona

    User nobody

    Group nogroup

    estoy en CentOS y no se con que usuario y grupo trabaje proftp en esta distribucion

  2. gracias buen aporte, estoy iniciando en el mundo de ubuntu y linux

Deja tu comentario, duda o sugerencia

Agrega tu comentario, o trackback desde tu sitio web. Tambien puedes Registrarte o ingresar en Vensign para obtener mucho más (volveras a esta página luego de registrarte)

Puedes utilizar el siguiente código HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Este blog soporta Gravatares. Para obtener tu avatar, por favor registrate en Gravatar.

50 queries. 0,623 seconds.