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.
No hay comentarios:
Publicar un comentario