lunes, 15 de septiembre de 2008

Servidor FTP PROFTPD en Ubuntu 8.04

Primero debemos loguearnos como root, lo hacemos con el commando sudo bash, una vez hecho esto, procedemos a instalar los paquetes necesarios:

# apt-get install proftpd


Aparece una pantalla para elegir entre dos opciones, inetd o standalone, elegimos standalone.

Luego por razones de seguridad vamos a crear un shell false para el acceso de ftp para esto vamos a agregar una linea en el archivo /etc/shell:

#gedit sudo /etc/shells

Agregamos la siguiente línea al final del archivo:

/bin/false

Esto va a evitar que cualquier usuario que utilice el ftp puede acceder a nuestra consola de comandos.

Ahora creamos un directorio donde se guardarán los archivos a compartir en el ftp:

#cd /home

#mkdir FTP-public


Ahora vamos a crear un usuario para acceder al ftp:

#useradd nombreusuarioftp -p tu_password -d /home/FTP-public -s /bin/false


Nota:

-p para definir el password,
-d para definir cuál va a ser el directorio principal o home del usuario
-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:

#mkdir /home/FTP-public/download

#mkdir /home/FTP-public/upload

Ahora tenemos que especificar los permisos de lectura y escritura para estos directorios:

#chmod 755 /home/FTP-public
#chmod 755 /home/FTP-public/download
#chmod 777 /home/FTP-public/upload


Ahora veamos el archivo de configuración del proftp que se encuentra en la ruta:

/etc/proftpd/proftpd.conf para esto ejecutamos:
sudo gedit /etc/proftpd/proftpd.conf


# 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 "kate 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 útil 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 elegi el 1980 puedes escoger el que quieras

Port 1980

# 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 kate !!!"

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

ServerIdent on "estas en kate"

# 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



AllowUser userftp

DenyALL



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



Umask 022 022

AllowOverwrite off



DenyAll







Umask 022 022

AllowOverwrite off



DenyAll





/home/FTP-public/upload/>

Umask 022 022

AllowOverwrite on



DenyAll





AllowAll





Con este archivo de configuración tendrás un servidor FTP funcionando con el usuario kate (como alias de userftp) y con el password que colocaste, cuando creaste el usuario, además definimos como puerto de conexión 1980.

Reiniciamos el servidor:

# /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.

0 comentarios: