[howto]VSFTPD en Ubuntu
Por favor Ingrese or Regístrese para poder usar la funcionalidad completa de este sitio.




Enviar Respuesta 
 
Calificación:
  • 1 Votos - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
[howto]VSFTPD en Ubuntu
29-08-2008, 06:55 PM
Mensaje: #1
[howto]VSFTPD en Ubuntu
Very Secure FTP Daemon es un servidor FTP. Está disponible en practicamente todas las distribuciones de linux y puede ser instalado muy fácilmente.
En este howto, vamos a instalarlo y configurarlo utilizando dos equipos virtuales con Ubuntu 8.04.
Probaremos algunas configuraciones básicas y realizaremos algunas pruebas para cotejar y aprender el mecanismo del ftp y poder brindar posibles soluciones sin comprometer la seguridad de nuestro servidor


Notas preliminares

Dado que voy a utilizar dos pc virtuales, las he instalado y configurado para que estén en la misma red privada. Nuestro servidor se llamará awqalli y tendrá la IP 192.168.1.1.
El cliente se llamará tankar y tendrá IP 192.168.1.2.

Para diferenciar comandos de textos y entradas de teclado y salidas de sistema, usaré el color verde para aquel texto que deba escribirse en el editor de textos vi; y usaré el color azul para toda la "charla" ftp.

Bien, hechas las aclaraciones iniciales, comencemos...



Instalación del Servicio

En el host awqalli vamos a instalar el servidor.
Cita:dragonauta@awqalli:~$ sudo apt-get install vsftpd


Configuración para usuarios locales

Vamos a parar el servicio y a preservar la configuración por defecto, luego configuramos lo indispensable para tener servicio
Cita:dragonauta@awqalli:~$ sudo /etc/init.d/vsftpd stop
dragonauta@awqalli:~$ sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.ori
dragonauta@awqalli:~$ sudo vi /etc/vsftpd.conf
#Configuración General
write_enable=YES
dirmessage_enable=YES
ftpd_banner=Bienvenido a FTP, por favor no rompa nada!
connect_from_port_20=YES
idle_session_timeout=600
data_connection_timeout=120
pasv_enable=YES
pam_service_name=vsftp
listen=YES
max_clients=5
max_per_ip=3
pasv_min_port=40000
pasv_max_port=40020

#Acceso para usuarios locales
local_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

#Log Settings
xferlog_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
log_ftp_protocol=YES

Notemos que hemos indicado el parámetro chroot_list_file con valor /etc/vsftpd.chroot_list con lo cual deberemos crear este archivo para agregar aquellos usuarios que tendrán acceso FTP.
Cita:dragonauta@awqalli:~$ sudo vi /etc/vsftpd.chroot_list
dragonauta


Prueba de conexión con usuario local

Arrancamos el servicio en awqalli
Cita:dragonauta@awqalli:~$ sudo /etc/init.d/vsftpd start
Luego nos logueamos en el host tankar y creamos algunos archivos para probar nuestra conexión
Cita:dragonauta@tankar~$ touch hola.txt
dragonauta@tankar~$ ftp awqalli
Connected to awqalli.quechua.
220 Bienvenido al FTP - Awqalli Server
Name (awqalli : dragonauta): dragonauta
331 Please specify the password.
Password: *********
230 Login successful
Remote system type is UNIX
Using binary mode to transfer files.
ftp> put hola.txt
local: hola.txt remote: hola.txt
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 File receive OK.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw------- 1 1000 1000 0 Aug 26 23:54 hola.txt
drwxr-xr-x 2 1000 1000 4096 Aug 21 02:08 pub
226 Directory send OK.
ftp> 221 Goodbye.


Acceso anónimo sólo descarga

Ahora realizaremos la configuración para poder acceder únicamente de forma anónima. Paramos el servicio y realizamos las siguientes modificaciones
Cita:dragonauta@awqalli:~$ sudo /etc/init.d/vsftpd stop
dragonauta@awqalli:~$ cd /var/run/vsftpd
dragonauta@awqalli:/var/run/vsftpd$ sudo mkdir anonimo
dragonauta@awqalli:/var/run/vsftpd$ sudo chmod 755 anonimo
dragonauta@awqalli:/var/run/vsftpd$ sudo chown root:root anonimo
dragonauta@awqalli:/var/run/vsftpd$ sudo touch anonimo/prueba.txt
dragonauta@awqalli:~$ vi /etc/vsftpd.conf
# Habilitamos el acceso anonimo agregando esta sección
anonymous_enable=YES
anon_root=/var/run/vsftpd/anonimo
anon_world_readable_only=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_max_rate=2048
# impedimos el acceso de usuarios locales modificando
local_enable=NO


dragonauta@awqalli:~$ sudo /etc/init.d/vsftpd start

En el host cliente realizamos la prueba
Cita:dragonauta@tankar:~$ ftp awqalli
Connected to awqalli.quechua.
220 Bienvenido al FTP - Awqalli Server
Name (awqalli : dragonauta): anonymous
331 Please specify the password.
Password:
230 Login successful
Remote system type is UNIX
Using binary mode to transfer files.
ftp> put hola.txt
local: hola2.txt remote: hola2.txt
200 PORT command successful. Consider using PASV.
550 Permission denied.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 27 Aug 26 22:49 prueba.txt
226 Directory send OK.
ftp> get prueba.txt
local: prueba.txt remote: prueba.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for prueba.txt (27 bytes).
226 File send OK.
27 bytes received in 0.02 secs (1.3 kB/s)
ftp> 221 Goodbye.


Usuarios Virtuales

Un inconveniente que encontramos al utilizar el servicio de FTP es poder brindar un alojamiento de archivos para usuarios externos.
Esto implica habilitar un usuario de sistema para ftp con el peligro que eso conlleva. (logueo, ejecución de scripts, robo de información, etc)
O bien, podemos optar por utilizar un usuario virtual.

Vamos a crear un usuario uploader y vamos a impedir que otros usuarios de sistema utilicen el servicio de ftp.
Cita:dragonauta@awqalli:~$ sudo vi /etc/vsftpd.conf
#cambio esta linea de YES a NO para impedir acceso de usuario anonimo
anonymous_enable=NO
#modificamos nuevamente para permitir acceso local
local_enable=YES
# agrego estas líneas para impedir acceso de usuarios de sistema
userlist_enable=yes
userlist_file=/etc/vsftpd.deny_list


dragonauta@awqalli:~$ sudo vi /etc/vsftpd.deny_list
# Usuarios bloqueados para acceso ftp
dragonauta
root


dragonauta@awqalli:~$ sudo groupadd ftpuser
dragonauta@awqalli:~$ sudo chmod 755 /home/ftp
dragonauta@awqalli:~$ sudo chown root:ftpuser /home/ftp
dragonauta@awqalli:~$ sudo useradd -g ftpuser -d /home/ftp -s /bin/false uploader
dragonauta@awqalli:~$ sudo passwd uploader
dragonauta@awqalli:~$ sudo vi /etc/vsftpd.user_list
#usuarios que podrán acceder ftp
uploader

dragonauta@awqalli:~$ sudo /etc/init.d/vsftpd restart

dragonauta@tankar:~$ ftp awqalli
Connected to awqalli.quechua.
220 Bienvenido al FTP - Awqalli Server
Name (awqalli : dragonauta): uploader
331 Please specify the password.
Password:
230 Login successful
Remote system type is UNIX
Using binary mode to transfer files.
ftp> put hola.txt
local: hola2.txt remote: hola2.txt
200 PORT command successful. Consider using PASV.
226 File receive OK.
ftp> get test.txt
local: test.txt remote: test.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for test.txt (27 bytes).
226 File send OK.
27 bytes received in 0.02 secs (1.3 kB/s)
ftp> 221 Goodbye.

Probamos que no funcione el usuario anónimo y algún usuario de sistema.
Cita:dragonauta@tankar:~$ ftp awqalli
Connected to awqalli.quechua.
220 Bienvenido al FTP - Awqalli Server
Name (awqalli : dragonauta): anonymous
331 Please specify the password.
530 Login incorrect.
Login failed
dragonauta@tankar:~$ ftp awqalli
Connected to awqalli.quechua.
220 Bienvenido al FTP - Awqalli Server
Name (awqalli : dragonauta): dragonauta
331 Please specify the password.
530 Login incorrect.
Login failed


Finalizando

Después de ver las distintas maneras de configurar un servidor FTP, vemos a las claras que es un servicio muy útil en ciertas circunstancias.

Compartir información con amigos, tener siempre a mano ese documento tan importante, o poder habilitar un espacio de almacenamiento para que tus amigos suban esas fotos de las últimas vacaciones.

En lo personal, prefiero mantener el servicio apagado y arrancarlo cuando lo necesite, pero ustedes pueden usarlo a discreción... (eso si, nunca pero nunca habiliten el usuario de sistema para acceder desde internet... usen usuarios virtuales)

Ojalá les sea de utilidad... 023

[Imagen: barra.gif]
Reglas del Foro | JineteDelDragon | GPG-Key: 2FFBC43B
Visita el website del usuario Encuentra todos los mensajes de este usuario
Cita este mensaje en tu respuesta
 
Enviar Respuesta 


Posibles Temas Similares...
Tema: Autor Respuestas: Vistas: Último Mensaje
  [howto] Jaulas con vsftpd sobre debian 4.0 r3 Nery 4 783 02-08-2010 02:34 PM
Último Mensaje: p_eter
  [howto] GAG. Como instalar un gestor de arranque, sencillo y util. p_eter 2 20.985 06-05-2010 10:24 PM
Último Mensaje: p_eter
  [howto]Instalar Qmail p_eter 1 195 04-05-2010 01:09 AM
Último Mensaje: p_eter
  [howto]Instalacion de MRTG (monitoreo) Debian Whiskola 11 13.114 18-03-2010 01:47 PM
Último Mensaje: p_eter

Salto de Foro:

Contáctanos | Portal de Noticias | Volver Arriba | Volver al Contenido | Modo (Archivo) Simple | Sindicación RSS