Outils pour utilisateurs

Outils du site


linux:installation:vsftpd_avec_users_mariadb

Ceci est une ancienne révision du document !


Note > Voici l’emplacement des fichiers de configuration :

  • vsftpd/vsftpd.conf = /etc/vsftpd.conf
  • vsftpd/vsftpd_user_conf = /etc/vsftpd/user_conf/PSEUDO_USER
  • vsftpd/pam_vsftpd = /etc/pam.d/vsftpd

On installe vsftpd et on le stoppe le temps de le configurer

agi vsftpd
/etc/init.d/vsftpd stop

On prépare la BDD à accueillir les users et les logs

Sur MySQL ou MariaDB, on cree un utilisateur BDDUSER avec une bdd qui lui est associee (via phpmyadmin par exemple)Ensuite on crée deux nouvelles tables dans cette bdd

  1. -- # Creation d''une table ftpcomptes avec 3 champs (id, pseudo, mdp)
  2. CREATE TABLE IF NOT EXISTS `ftpcomptes` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `pseudo` VARCHAR( 250 ) NOT NULL , `mdp` VARCHAR( 250 ) NOT NULL , UNIQUE (`pseudo`) );
  3. -- # Creation d''une table ftplogging avec 7 champs (id, pseudo, pid, host, rhost, time, msg)
  4. CREATE TABLE IF NOT EXISTS `ftplogging` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `pseudo` VARCHAR( 250 ) NOT NULL , `pid` VARCHAR( 250 ) NOT NULL , `host` VARCHAR( 250 ) NOT NULL , `rhost` VARCHAR( 250 ) NOT NULL , `time` VARCHAR( 250 ) NOT NULL , `msg` VARCHAR( 250 ) NOT NULL, INDEX (`pseudo`) );
  5. -- # Creation d''un premier utilisateur virtuel sur MySQL. Son pseudo est "exemple" avec comme mot de passe "mypass" (crypt=1 donc ENCRYPT)
  6. INSERT INTO ftpcomptes (pseudo, mdp) VALUES('exemple', ENCRYPT('mypass'));

Configurer Pam pour utiliser des users en BDD

On l’installe, et surtout on n’oublie pas le module libpam-mysql :

agi libpam libpam-mysql

Il faut maintenant configurer pam, qui va permettre a vsftpd d’aller chercher les utilisateurs dans la base mysql plutôt que dans les utilisateurs systeme, stockés dans /etc/passwd et /etc/shadow.On sauvegarde l’ancien fichier (au cas où, mais pas dans le même répertoire, sinon il serait lu aussi) et on en crée un tout neuf :

mkdir -p /var/backups/config
cp /etc/pam.d/vsftpd /var/backups/config/vsftpd.bak
nano /etc/pam.d/vsftpd

Et on remplace l’integralite du contenu par les lignes 2 suivantes,Où BDDUSER est l’utilisateur crée sur MySQLBDDPASS son mot de passeBDDNAME le nom de la base de donnees qui lui est associée

auth required pam_mysql.so verbose=1 user=BDDUSER passwd=BDDPASS host=localhost db=BDDNAME table=ftpcomptes usercolumn=pseudo passwdcolumn=mdp crypt=1 sqllog=true logtable=ftplogging logmsgcolumn=msg logusercolumn=pseudo logpidcolumn=pid loghostcolumn=host logrhostcolumn=rhost logtimecolumn=time
account required pam_mysql.so verbose=1 user=BDDUSER passwd=BDDPASS host=localhost db=BDDNAME table=ftpcomptes usercolumn=pseudo passwdcolumn=mdp crypt=1 sqllog=true logtable=ftplogging logmsgcolumn=msg logusercolumn=pseudo logpidcolumn=pid loghostcolumn=host logrhostcolumn=rhost logtimecolumn=time
 
### INFOS
# verbose : Mode verbeux, necessaire pour logger les acces ( 0=desactive, 1 = active )
# user : Utilisateur employe par VsftpD pour se conncter a MySQL
# password : Mot de passe de l'utilsateur employe par VsftpD pour se connecter a MySQL
# host : Hote hebergeant le serveur MySQL (localhost ou adresse IP)
# db : nom de la base de donnees a utiliser
# table : nom de la table contenant les utilisateurs
# usercolumn : nom de la colonne contenant les noms des utilisateurs
# passwdcolumn : nom de la colone contenant les mot de passe des utilisateurs
# crypt : type de cryptage utilise pour les mots de passe ( 0 = clair , 1 = fonction ENCRYPT(), 2 = fonction PASSWORD(), 3 = fonction MD5(), 4 = fonction SHA1() )
# sqllog : activation du logging d'acces en base SQL ( 0 = desactive, 1 = active )
# logtable : nom de la table de log des acces utilisateurs
# logmsgcolumn : nom de la colonne ou seront stockes les messages de pam_mysql
# logusercolumn : nom de la colonne ou seront stockes les nom des utilisateurs
# logpidcolumn : nom de la colonne ou seront stockes les numeros de process (pid)
# loghostcolumn : nom de la colonne ou seront stockes les adresses ou se connectent les utilisateurs (en general le serveur lui même)
# logrhostcolumn : nom de la colonne ou seront stockes les adresses distantes des utilisateurs
# logtimecolumn : nom de la colonne ou seront stockes les heures de connexion
linux/installation/vsftpd_avec_users_mariadb.1662217930.txt.gz · Dernière modification : 2022/09/03 15:12 de tutospisto