Apartamento En Familia

Apartamento En Familia
Apartamento de playa para vacaciones. http://www.apartamentoenfamilia.es. Número registro HUTT-005768

miércoles, 26 de febrero de 2014

vsftpd con usuarios virtuales enjaulados validados en MySQL

En un artículo anterior explique como instalar un vsftpd y crear usuarios enjaulados. Para validar a los usuarios, usábamos una base de datos Berkeley pero ya avisaba de lo engorroso a la hora de añadir o borrar usuarios. Para ello podemos validar a nuestros usuarios en una base de datos mysql. En este artículo no enseñaré a instalar una base de datos MySQL (esta bien documentado en la red):

Instalamos el plugin mysql para pam:


apt-get install libpam-mysql


Luego creamos la base de datos, un usuario de consulta y la tabla que contendrá los usuarios y las contraseñas:

$ mysql -u root -p

CREATE DATABASE vsftpd;
GRANT SELECT ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'tupasssecreto';
FLUSH PRIVILEGES;

USE vsftpd;

CREATE TABLE `accounts` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `username` VARCHAR( 30 ) NOT NULL , `pass` VARCHAR( 50 ) NOT NULL , UNIQUE (`username`) ) ENGINE = MYISAM ;


Para finalizar modificaremos el /etc/pam.d/vsftpd para que se valide con MySQL:

cat /etc/pam.d/vsftpd
session optional pam_keyinit.so force revoke
auth required pam_mysql.so user=vsftpd passwd=tupasssecreto host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=3
account required pam_mysql.so user=vsftpd passwd=
tupasssecreto host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=3

Para crear nuevos usuarios bastará con entrar en el MySQL y poner:

INSERT INTO accounts (username, pass) VALUES('usuario', md5('passecreto'));


Y no olvidarse de crear la carpeta de usuario y darle los permisos adecuados.


That u don't know what you've got 'til it's gone