Loading




Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Enjaular usuarios de vsFTP...
 
31-05-2009, 01:47 PM
Mensaje: #1
Enjaular usuarios de vsFTP...
Hola amigos,
Resulta que instale vsftp en mi Debian 4, y me propuse crear uno ó varios usuarios para que estuvieran enjaulados en un determinado directorio, asi que busque informacion en google y encontre muchas soluciones posibles, pero solo una paresia la correcta y me guie de esa, les dejo el link asi lo miran:
http://diariodeunlinux3ro.es/?tag=enjaular (tarda en cargar)
Todos esos pasos lo realize correctamente y segui las mismas configuraciones que propone el manual, el problema es que cuando intento acceder con un cliente FTP el servidor me devuelve con exito el mensaje de bienvenida, pero me tira un "Login incorrect" codigo 530.
Los puertos estan abiertos y no e configurado ninguna regla de firewall.
Y los mas extraño de todo es que en la carpeta /etc hay dos archivos passwd
Uno es passwd (es en este donde esta todo mas el ultimo usuario y grupo agregado)
el otro es passws- (en otras ocasiones no habia visto eso)
Ah! Lo olvidaba, tengo un usuario normal, con este si logro entrar y este no esta enjaulado.
Espero que puedan ayudarme y como siempre muchas gracias.
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
 
31-05-2009, 08:32 PM
Mensaje: #2
RE: Enjaular usuarios de vsFTP...
Nery: recuerda que si alguien descubre la contraseña de ftp de un usuario con login shell, tu sistema puede verse comprometido.
Personalmente nunca habilito ftp para usuarios con login shell, pero en este caso te daré el ejemplo de cómo sería lo que necesitas:

Archivo configuración /etc/vsftpd.conf
Código:
#configuracion general
write_enable=YES
dirmessage_enable=YES
# lo siguiente se puede dejar el mensaje en blanco para que no se sepa bien a que servidor se está entrando
ftpd_banner="Bienvenido a mi FTP"
#settings varios
xferlog_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
log_ftp_protocol=YES
#conexiones
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 a usuarios locales
local_enable=YES
# estas líneas deben ir para permitir acceso a ftp
chroot_local_user=YES
chroot_list_enable=YES
# en este archivo pondremos los usuarios que queremos darle acceso ftp.
chroot_list_file=/etc/vsftpd.chroot_list

#acceso anonimo
anonymous_enable=NO

# Listas de bloqueo
userlist_enable=YES
# en este archivo pondremos los usuarios que se van a bloquear para ftp
userlist_file=/etc/vsftpd.deny_list

El archivo /etc/vsftpd.chroot_list tendrá los usuarios con acceso:
Código:
#recuerda que si no quieres usar usuarios con shell, debes quitarlos de esta lista
# sobra decir que root NUNCA debe pertenecer a esta lista
usuario_con_login1
usuario_con_login2
usuariovirtual1
usuariovirtual2

El archivo /etc/vsftpd.deny_list tendrá los usuarios que bloquearemos.
Lo mas sencillo sería copiar todos los usuarios del archivo /etc/passwd, corre este comando para crear la lista y luego edita para borrar los que acabas de colocar en el archivo anterior:
Código:
# cat /etc/passwd | cut -d":" -f1 >>/etc/vsftp.deny_list

Para que todo esté completo, debes crear los usuarios virtuales (sin login)
Código:
# groupadd ftp-users
# chmod 755 /home/ftp
# chown root:ftp-users /home/ftp
# useradd -g ftp-users -d /home/ftp -s /bin/false usuariovirtual1
# useradd -g ftp-users -d /home/ftp -s /bin/false usuariovirtual2
# passwd usuariovirtual1
# passwd usuariovirtual2

Por último, reinicia el servicio de VSFTP y haz las pruebas necesarias.
Revisa bien todas las líneas que paso, cualquier duda, preguntas nuevamente.
Como verás, he puesto ambos usuarios virtuales para que estén enjaulados en la carpeta /home/ftp, esto puedes cambiarlo a tu gusto y necesidad, al momento de crear los usuarios

Suerte!

Reglas del Foro | : ? : | Doragonraidā
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
 
01-06-2009, 02:11 AM
Mensaje: #3
RE: Enjaular usuarios de vsFTP...
Hola dragonauta, gracias por tu tiempo, no me quedo del todo claro eso de habilitar usuarios con login:
Cuando decis usuarios con login, a que te referis ?
Por ejempo, cuando tenes un servicio de alojamiento web, el provedor del servicio te da acceso por ftp con un usuario y contraseña.


La idea mia es similar, crear usarios y agregarlos dentro del grupo ftp el cual es creado inicialmente cuando se instala el servicio.
Entoces lo que quiero es crear usuarios que esten dentro de ese grupo pero que cada uno tenga su ID y Password para poder conectarse, enjaulandolos en su propio directorio dentro.
Mencione el usario normal por que me paresio un dato curioso, este usario puede conectarse sin problemas, pero el del ejemplo no puede.

Ahora mismo estoy siguiendo los pasos para configurar las opciones que me indicas, cuando termine te comento como quedo.

Gracias.
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
 
01-06-2009, 04:28 AM
Mensaje: #4
RE: Enjaular usuarios de vsFTP...
Dragonauta estube realizando los cambios que me indicaste pero el problema persiste, al conectarme recivo el mensaje de bienvenida pero me da error de login (login incorrect)
Voy a mostrate la configuracion de vsftpd.conf e imagenes para que mires, a lo mejor le pifie en algo:

<<<VSFTPD.CONF>>>

# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
#
# Run standalone? vsftpd can run either from an inetd or as a standalone
# daemon started from an initscript.
listen=YES
#
# Run standalone with IPv6?
# Like the listen parameter, except vsftpd will listen on an IPv6 socket
# instead of an IPv4 one. This parameter and the listen parameter are mutually
# exclusive.
#listen_ipv6=YES
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
# anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
# anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format
xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
# ascii_upload_enable=YES
# ascii_download_enable=YES
#
# You may fully customise the login banner string:
ftpd_banner=Bienvenido a Senda System
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may restrict local users to their home directories. See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
chroot_local_user=YES
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
#
# Debian customization
#
# Some of vsftpd's settings don't fit the Debian filesystem layout by
# default. These settings are more Debian-friendly.
#
# This option should be the name of a directory which is empty. Also, the
# directory should not be writable by the ftp user. This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem
# access.
secure_chroot_dir=/var/run/vsftpd
#
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd
#
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
#
# Parametros de Conexiones
pasv_enable=YES
max_clients=10
max_per_ip=3
pasv_min_port=40000
pasv_max_port=40020
# Lista de Bloqueos
userlist_enable=YES
# Usuarios a bloquear para el ftp
userlist_file=/etc/vsftp.deny_list

Imagen del archivo vsftp.deny_list:
[Imagen: sinttulo2hko.jpg]
he eliminado a usuariovirtual1 y a ftp como me indicaste

Imagen del archivo vsftpd.chroot_list:
[Imagen: sinttulo3ujj.jpg]

Imagen del directorio /etc:
[Imagen: sinttulo6h.jpg]

Imagen del cliente FTP (FireFTP):
[Imagen: sinttulo67.jpg]

En mi ruter tengo habierto los puertos correctos 21 el 20 y 40000 a 40020
sin olvidar que esta todo en una DMZ.

Es decir conexion hay, se llega a destino pero el login da incorrecto.
y en el log no hay nada de nada, eso si que es extraño, no figuran errores ni intentos de conexion.
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
 
01-06-2009, 03:32 PM
Mensaje: #5
RE: Enjaular usuarios de vsFTP...
Perdón, quizás me expresé mal.
Un usuario con shell quise decir. Cualquier usuario que tenga shell (bash, sh, csh, etc,etc) va a poder navegar por los directorios del ftp.
Al utilizar usuarios virtuales esto no sucede y quedan enjaulados en sus propios directorios
Por eso se crean con useradd y el parámetro "-s /bin/false"

que raro... Revisaste todos los logs? Podés entrar a la carpeta /var/log y correr: grep ftp *

La otra que nos queda es darle un poco más de debug para ver que está pasando
agregá log_ftp_protocol=YES debajo de xferlog_std_format=YES y reiniciá el servicio. Ahora vas a tener más detalle en el archivo de log de vsftpd.

Reglas del Foro | : ? : | Doragonraidā
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
 
01-06-2009, 05:51 PM
Mensaje: #6
RE: Enjaular usuarios de vsFTP...
Hola Nery, me parece que el problema esta con PAM.

Código:
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd

Aca explican muy bien todo el asunto, espero te sirva.

http://www.esdebian.org/articulos/24066/...s-fantasma

Saludos....!!

No digas que eres usuario de GNU/Linux... just do it...!!
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
 
01-06-2009, 07:59 PM
Mensaje: #7
RE: Enjaular usuarios de vsFTP...
Hola muchachos muchas gracias por su ayuda, dragonauta puse la linea:
log_ftp_protocol=YES reinicie el servicio y no obtuve ningun dato de: vsftpd.log, estaba totalmente basio, eso deja claro que no hay herrores verdad?
Lo que me tiene confundido es, las directivas que se usan para configurar este servicio, como por ejemplo esta: log_ftp_protocol=YES, pueden ir en cualquier orden dentro del archivo de configuracion o es necesario seguir un patron ?

Pregunto esto para no usar el archivo original y crear el mio, con las opciones que yo o ustedes me proponen, libre de comentarios.

Merlin voy a revisar ese link que me mostraste pero aca va la pregunta del millon:
He estado tocando y reconfigurando este servicio, me conviene desinstalarlo y volverlo a instalar?
Si es asi como lo desinstalo?

saludos
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
 
01-06-2009, 08:16 PM
Mensaje: #8
RE: Enjaular usuarios de vsFTP...
(01-06-2009 07:59 PM)Nery escribió:  pueden ir en cualquier orden dentro del archivo de configuracion o es necesario seguir un patron ?
En cualquier orden, aunque es bueno agruparlos para tener mas claro que opcion se está tocando.

(01-06-2009 07:59 PM)Nery escribió:  Merlin voy a revisar ese link que me mostraste pero aca va la pregunta del millon:
He estado tocando y reconfigurando este servicio, me conviene desinstalarlo y volverlo a instalar?
Si es asi como lo desinstalo?

No hace falta desinstalarlo.
Como VSFTP toma la configuración del archivo vsftpd.conf, simplemente crea diferentes archivos.
Podrías tener por ejemplo:
vsftpd.conf.usuarioanonimo (en donde tendrás las opciones solo para dar acceso anonimo)
vsftpd.conf.readonly (en donde tendrás settings para solo lectura)
vsftpd.conf.usuarioenjaulado (obviamente, para usuarios enjaulados)

Simplemente copia el archivo de configuración que desees al nombre real y reinicias el servicio.
# cp /etc/vsftpd.conf.usuarioenjaulado /etc/vsftpd.conf

Reglas del Foro | : ? : | Doragonraidā
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
 
02-06-2009, 01:22 PM
Mensaje: #9
RE: Enjaular usuarios de vsFTP...
Cita:He estado tocando y reconfigurando este servicio, me conviene desinstalarlo y volverlo a instalar?

depende de lo que hayas estado tocando, aunque coincido con dragonauta en
que no es necesario.

como regla general, cuando modifico algun archivo lo que hago es dejar comentada
la linea original y poner alguna anotacion aclaratoria y la fecha... cosa que luego pueda
recordar rapidamente el motivo de la modificacion y volver atras si fuera necesario.

saludos...!!

No digas que eres usuario de GNU/Linux... just do it...!!
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
 
02-06-2009, 02:50 PM
Mensaje: #10
RE: Enjaular usuarios de vsFTP...
Ok muchachos voy a seguir entonces, e intentare hacerlo con el link que me paso merlin, para borrar todos los usuarios y grupos con las opciones que ya configure como hago ? estaria bueno comenzar desde cero para que durante la configuracion no haya problemas.

gracias saluos
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
Enviar respuesta 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)
Contáctanos | Portal de Noticias | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS