Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
vsftpd_et_pam_mysql [Le 30/04/2011, 10:15] 127.0.0.1 modification externe |
vsftpd_et_pam_mysql [Le 11/09/2022, 11:41] (Version actuelle) moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>BROUILLON Gutsy Hardy Tutoriel}} | + | {{tag>Bionic BROUILLON reseau Tutoriel}} |
---- | ---- | ||
- | ====== VsftpD et authentification via pam_mysql sur base de données SQL ====== | + | ====== VsftpD et authentification via pam_mysql sur base de données SQL ====== |
- | + | <note warning>Cette page aurait besoin d'une mise à jour, à lire avec précaution.</note> | |
- | Ce tutoriel vous servira à authentifier des utilisateurs VsftpD grâce à une base de données MySQL. Le but étant de ne pas utiliser une base de données Berkeley qui doit être re-générée à chaque création, suppression ou mise à jour d'utilisateur. Je précise que j'ai réalisé cette installation sur une Ubuntu 8.04 Server. | + | Ce tutoriel vous servira à authentifier des utilisateurs VsftpD grâce à une base de données MySQL. Le but étant de ne pas utiliser une base de données Berkeley qui doit être re-générée à chaque création, suppression ou mise à jour d'utilisateur. |
===== Installation ===== | ===== Installation ===== | ||
Ligne 57: | Ligne 57: | ||
# Utilisation de log pour les uploads et downloads (par defaut /var/log/vsftpd.log) | # Utilisation de log pour les uploads et downloads (par defaut /var/log/vsftpd.log) | ||
xferlog_enable=YES | xferlog_enable=YES | ||
- | # Emplacement du fichier de log | + | # Emplacement du fichier de log |
xferlog_file=/var/log/vsftpd.log | xferlog_file=/var/log/vsftpd.log | ||
# Formatage de la log au standard wu-ftpd | # Formatage de la log au standard wu-ftpd | ||
Ligne 85: | Ligne 85: | ||
pam_service_name=vsftpd | pam_service_name=vsftpd | ||
# Utilisation des privilèges locaux pour les utilisateurs virtuels | # Utilisation des privilèges locaux pour les utilisateurs virtuels | ||
- | # permet notamment de donner les droits d’écriture car sinon les | + | # permet notamment de donner les droits d’écriture car sinon les |
# utilisateurs virtuels ont des droits d'utilisateurs anonymes | # utilisateurs virtuels ont des droits d'utilisateurs anonymes | ||
virtual_use_local_privs=YES | virtual_use_local_privs=YES | ||
Ligne 105: | Ligne 105: | ||
ssl_enable=YES | ssl_enable=YES | ||
# Oblige les connexions de données a passer par du SSL | # Oblige les connexions de données a passer par du SSL | ||
- | # Si cette option est activée les clients ftp ne gérant pas | + | # Si cette option est activée les clients ftp ne gérant pas |
# SSL ne pourront envoyer ni recevoir de données | # SSL ne pourront envoyer ni recevoir de données | ||
force_local_data_ssl=NO | force_local_data_ssl=NO | ||
# Oblige la connexion d'identification a être encryptée en SSL | # Oblige la connexion d'identification a être encryptée en SSL | ||
- | # Si cette option est activée les clients ftp ne gérant pas | + | # Si cette option est activée les clients ftp ne gérant pas |
# SSL ne pourront plus se connecter | # SSL ne pourront plus se connecter | ||
force_local_logins_ssl=YES | force_local_logins_ssl=YES | ||
Ligne 167: | Ligne 167: | ||
# MOTDEPASSE_VSFTPD ne doit pas contenir de caractère # : interpréte le reste de la ligne comme un commentaire. | # MOTDEPASSE_VSFTPD ne doit pas contenir de caractère # : interpréte le reste de la ligne comme un commentaire. | ||
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'MOTDEPASSE_VSFTPD'; | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'MOTDEPASSE_VSFTPD'; | ||
+ | # Sous Mysql 8.0 ou > : | ||
+ | # CREATE USER 'vsftpd'@'localhost' IDENTIFIED BY 'MOTDEPASSE_VSFTPD'; | ||
+ | # GRANT ALL ON vsftpd.* TO 'vsftpd'@'localhost'; | ||
# Application des privileges | # Application des privileges | ||
FLUSH PRIVILEGES; | FLUSH PRIVILEGES; | ||
Ligne 186: | Ligne 189: | ||
# TIME => texte (nul non autorise) | # TIME => texte (nul non autorise) | ||
# MSG => => texte (nul non autorise) | # MSG => => texte (nul non autorise) | ||
- | CREATE TABLE `logging` ( `ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `USER` TEXT NOT NULL , `HOST` TEXT NOT NULL , `RHOST` TEXT NOT NULL , `TIME` TEXT NOT NULL , `MSG` TEXT NOT NULL ); | + | # PID => texte (nul non autorisé) |
+ | CREATE TABLE `logging` ( `ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `USER` TEXT NOT NULL , `HOST` TEXT NOT NULL , `RHOST` TEXT NOT NULL , `TIME` TEXT NOT NULL , `MSG` TEXT NOT NULL , `PID` TEXT NOT NULL); | ||
</code> | </code> | ||
Ligne 192: | Ligne 196: | ||
que cette commande est aussi utilisable sous [[:lamp|PhpMyAdmin]] ou [[:webmin|Webmin]] pour ceux qui n'ont pas envie de s'embêter. Nous allons créer 3 utilisateurs nommés respectivement | que cette commande est aussi utilisable sous [[:lamp|PhpMyAdmin]] ou [[:webmin|Webmin]] pour ceux qui n'ont pas envie de s'embêter. Nous allons créer 3 utilisateurs nommés respectivement | ||
"toto", "tata" et "titi" avec comme mots de passes respectifs **toto**, **tata** et **titi**. | "toto", "tata" et "titi" avec comme mots de passes respectifs **toto**, **tata** et **titi**. | ||
- | Ceci afin de détailler l'utilisation de la librairie pam_mysql et de MySQL-server. | + | Ceci afin de détailler l'utilisation de la librairie pam_mysql et de MySQL-server. |
<code> | <code> | ||
Ligne 281: | Ligne 285: | ||
# Connexion avec logging en base de donnees des acces | # Connexion avec logging en base de donnees des acces | ||
- | auth required pam_mysql.so verbose=1 user=vsftpd passwd=VsftpD host=localhost db=vsftpd table=utilisateurs usercolumn=NOM passwdcolumn=PASS crypt=1 sqllog=true logtable=logging logmsgcolumn=msg logusercolumn=user loghostcolumn=host logrhostcolumn=rhost logtimecolumn=time | + | auth required pam_mysql.so verbose=1 user=vsftpd passwd=VsftpD host=localhost db=vsftpd table=utilisateurs usercolumn=NOM passwdcolumn=PASS crypt=1 sqllog=true logtable=logging logmsgcolumn=msg logusercolumn=user loghostcolumn=host logrhostcolumn=rhost logtimecolumn=time logpidcolumn=pid |
- | account required pam_mysql.so verbose=1 user=vsftpd passwd=VsftpD host=localhost db=vsftpd table=utilisateurs usercolumn=NOM passwdcolumn=PASS crypt=1 sqllog=true logtable=logging logmsgcolumn=msg logusercolumn=user loghostcolumn=host logrhostcolumn=rhost logtimecolumn=time | + | account required pam_mysql.so verbose=1 user=vsftpd passwd=VsftpD host=localhost db=vsftpd table=utilisateurs usercolumn=NOM passwdcolumn=PASS crypt=1 sqllog=true logtable=logging logmsgcolumn=msg logusercolumn=user loghostcolumn=host logrhostcolumn=rhost logtimecolumn=time logpidcolumn=pid |
</code> | </code> | ||
<note> | <note> | ||
Ligne 338: | Ligne 342: | ||
</code> | </code> | ||
- | ===== Utilisation ===== | + | ===== Utilisation ===== test |
Pour faire mes tests j'ai utilisé différents clients ftp, cependant je conseille **ftp-ssl** pour les tests car les messages d'erreurs sont plus | Pour faire mes tests j'ai utilisé différents clients ftp, cependant je conseille **ftp-ssl** pour les tests car les messages d'erreurs sont plus | ||
Ligne 376: | Ligne 380: | ||
(connexion et plage de ports passifs) sont bien ouverts et redirigés vers l'adresse IP locale de votre machine. | (connexion et plage de ports passifs) sont bien ouverts et redirigés vers l'adresse IP locale de votre machine. | ||
- | Une autre solution est de venir en discuter [[http://forum.ubuntu-fr.org/viewtopic.php?id=198367|ici]] ou [[http://forum.ubuntu-fr.org|ici]]. Bon courage. | + | Une autre solution est de venir en discuter [[https://forum.ubuntu-fr.org/viewtopic.php?id=198367|ici]] ou [[http://forum.ubuntu-fr.org|ici]]. Bon courage. |
===== Liens ===== | ===== Liens ===== | ||
Ligne 383: | Ligne 387: | ||
* [[:Vsftpd|Vsftpd sur ubuntu-fr]] (pour toute la partie installation du serveur et configuration des certificats SSL) | * [[:Vsftpd|Vsftpd sur ubuntu-fr]] (pour toute la partie installation du serveur et configuration des certificats SSL) | ||
* [[http://pam-mysql.sourceforge.net/Documentation/package-readme.php?seemore=y|le README de la librairie pam_mysql]] | * [[http://pam-mysql.sourceforge.net/Documentation/package-readme.php?seemore=y|le README de la librairie pam_mysql]] | ||
+ | * [[https://doc.fedora-fr.org/wiki/Vsftpd_:_Installation_et_configuration|Page similaire sur le wiki de Fedora]] | ||
---- | ---- | ||
//Contributeur : [[:utilisateurs:maclane45]]// | //Contributeur : [[:utilisateurs:maclane45]]// |