Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Apuntes VSFTPD y Usuarios Virtuales
Apuntes VSFTPD y Usuarios Virtuales
Este artículo muestra como configurar vsftpd / PAM con "usuarios virtuales". Un usuario virtual es
una cuenta de usuario que no existe como cuenta de usuario real en el sistema, esto significa que
solo pueden usar el servicio de FTP y no otros servicios como SSH. Los usuarios virtuales pueden
ser más seguros que las cuentas reales, debido a que una cuenta comprometida solo puede usar el
servidor FTP.
Los usuarios virtuales son frecuentemente usados para proveer contenido que es accesible a
usuarios no confiables, y generalmente accesible al público.
Procedimientos
Usaremos pam_userdb para autenticar a los usuarios virtuales. Esto requiere un archivo de usuario /
contraseña en formato "db" - un formato común de base de datos. Para crear un archivo en formato
"db", primero debes crear una archivo de texto plano con los nombres de usuarios y sus respectivas
contraseñas alternando lineas. Crea un archivo llamado logins.txt y agrega a los usuarios y sus
contraseñas de la siguiente forma:
ulfix
alex
fraknot
oscar
userPepe
passPepe
userJuan
passJuan
El ejemplo anterior define al usuario "ulfix" con la contraseña "alex" y el usuario "fraknot" con la
contraseña "oscar" ...
Crea el archivo de base de datos de la siguiente manera, necesitas iniciar sesión como root:
db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
Requiere que el programa "Berkeley DB" este instalado. Si instalamos db4.8_utils el comando a
usar será:
db4.8_load ...
NOTA:Muchos sistemas tienen varias versiones de "db" instalado, así que es posible que necesites
db3_load para la operación correcta de este procedimiento. Se sabe que este afecta algunos sistemas
Debian. El problema radica en que pam_db espera que su base datos de autenticacion sea una
versión especifica de "db". (Normalmente db3, mientras que db4 puede estar instalado en tu
sistema)
Esto creará el archivo /etc/vsftpd_login.db. Obviamente querrás asegurarte que los permisos de este
sean limitados.
chmod 600 /etc/vsftpd_login.db
6) Prueba.
Abre otra ventana de terminal. Aquí está un ejemplo de una sesión FTP:
ftp localhost
Connected to localhost (127.0.0.1).
220 Bienvenidos al servidor FTP de ulfiX.com
Name (localhost:alopez): ulfix
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"
ftp> ls
227 Entering Passive Mode (127,0,0,1,117,135)
150 Here comes the directory listing.
226 Transfer done (but failed to open directory).
ftp> size hosts
213 147
ftp>
Observaciones:
El password que dimos es "alex". No te preocupes por la linea "failed to open directory". Esto
ocurre por que el directorio /home/ftpsite no tiene permisos de lectura. (Podemos cambiar este
comportamiento si así lo queremos usando la directiva anon_world_readable_only=NO. Podemos
ver que tenemos acceso al archivo "hosts" que copiamos dentro del area FTP virtual, via el
comando size.