« Installation de Proftpd avec base de données Mysql + TLS et gestion des users virtuel à l'aide de proftpdadmin » : différence entre les versions

Aller à la navigation Aller à la recherche
m
 
Ligne 2 : Ligne 2 :


je ne réinvente pas la roue. Ce tuto est dérivé de plusieurs tutos
je ne réinvente pas la roue. Ce tuto est dérivé de plusieurs tutos
existants. J'ai grandement modifier le proftpd.conf pour avoir
existants. J'ai grandement modifié le proftpd.conf pour avoir
la meilleur protection possible.
la meilleure protection possible.


on commence par installer les paquets utiles
on commence par installer les paquets utiles
Ligne 76 : Ligne 76 :
</code>
</code>


Création un nouvel utilisateur possédant seulement les droits de lire les données de la base proftpd.
Création d'un nouvel utilisateur possédant seulement les droits de lire les données de la base proftpd.
Remplacer "password" par votre mot de passe perso
Remplacer "password" par votre mot de passe perso


Ligne 104 : Ligne 104 :
La table ftpquotatotal contient les statistiques d'utilisation correspondant aux règles des quotas défini dans la table ftpquotalimits.  
La table ftpquotatotal contient les statistiques d'utilisation correspondant aux règles des quotas défini dans la table ftpquotalimits.  


Pour définir un quota,  exécute la requête suivante en renseignant les champs selon votre bon vouloir
Pour définir un quota,  exécuter la requête suivante en renseignant les champs selon votre bon vouloir


<code>
<code>
Ligne 119 : Ligne 119 :
'''LIMIT_TYPE :''' soft pour une mesure logicielle de la taille, hard pour une mesure hardware.
'''LIMIT_TYPE :''' soft pour une mesure logicielle de la taille, hard pour une mesure hardware.


'''B_UP :''' Taille (en Mbytes) autorisé à être transféré sur le serveur.
'''B_UP :''' Taille (en Mbytes) autorisé à être transférée sur le serveur.


'''B_DOWN :''' Taille (en Mbytes) autorisé à être téléchargé à partir du serveur.
'''B_DOWN :''' Taille (en Mbytes) autorisé à être téléchargée à partir du serveur.


'''B_TRANS :''' Taille (en Mbytes) autorisé à transféré sur et à partir du serveur (upload+download).
'''B_TRANS :''' Taille (en Mbytes) autorisé à transférée sur et à partir du serveur (upload+download).


'''F_UP :''' Nombre de fichiers autorisé à être transféré sur le serveur.
'''F_UP :''' Nombre de fichiers autorisés à être transférés sur le serveur.


'''F_DOWN :''' Nombre de fichiers autorisé à être téléchargé à partir du serveur.
'''F_DOWN :''' Nombre de fichiers autorisés à être téléchargés à partir du serveur.


'''F_TRANS :''' Nombre de fichiers autorisé à transféré sur et à partir du serveur (upload+download).
'''F_TRANS :''' Nombre de fichiers autorisés à transférés sur et à partir du serveur (upload+download).


Pour définir un quota illimité à un des champs, mettez une valeur négative ou nulle.
Pour définir un quota illimité à un des champs, mettez une valeur négative ou nulle.


'''ATTENTION :''' Les quotas de type '''all''', '''class''' ou '''group''' ne définissent pas un quota pour chaque utilisateur mais un quota partagé  
'''ATTENTION :''' Les quotas de type '''all''', '''class''' ou '''group''' ne définissent pas un quota pour chaque utilisateur mais un quota partagé  
par tous les utilisateurs concernés par cette règle.
pour tous les utilisateurs concernés par cette règle.


Pour réinitialiser les quotas, il suffit de supprimer l'entrée correspondante à la règle devant être réinitialisée.  
Pour réinitialiser les quotas, il suffit de supprimer l'entrée correspondante à la règle devant être réinitialisée.  
Ligne 209 : Ligne 209 :
DenyFilter                      \*.*/
DenyFilter                      \*.*/


# On chroot tous les users dans leur homes
# On chroot tous les users dans leur home
DefaultRoot                    ~
DefaultRoot                    ~


Ligne 279 : Ligne 279 :
DenyFilter "%"
DenyFilter "%"


# Recupere l'ip de la machine de l'utilisateur
# Récupère l'ip de la machine de l'utilisateur
  IdentLookups on
  IdentLookups on


Ligne 348 : Ligne 348 :
# Mod MySQL
# Mod MySQL
# =========
# =========
# Les mots de passe sont cryptes dans la base avec la fonction ENCRYPT (MySQL)
# Les mots de passe sont cryptés dans la base avec la fonction ENCRYPT (MySQL)
SQLAuthTypes Crypt
SQLAuthTypes Crypt
SQLAuthenticate users* groups*
SQLAuthenticate users* groups*


# Modifiez cette ligne selon l'utilisateur et le mot de passe definit plutot
# Modifiez cette ligne selon l'utilisateur et le mot de passe defini plus tôt
SQLConnectInfo proftpd@localhost proftpd mon-mot-de-passe
SQLConnectInfo proftpd@localhost proftpd mon-mot-de-passe


# On donne a ProFTPd le nom des colonnes de la table usertable
# On donne à ProFTPd le nom des colonnes de la table usertable
SQLUserInfo ftpuser userid passwd uid gid homedir shell
SQLUserInfo ftpuser userid passwd uid gid homedir shell
SQLUserWhereClause "LoginAllowed = 'true'"
SQLUserWhereClause "LoginAllowed = 'true'"


# On donne a ProFTPd le nom des colonnes de la table "grouptable"
# On donne à ProFTPd le nom des colonnes de la table "grouptable"
SQLGroupInfo ftpgroup groupname gid members
SQLGroupInfo ftpgroup groupname gid members


# Création automatique du repertoire de l'utilisateur si il n'existe pas
# Création automatique du répertoire de l'utilisateur si il n'existe pas
CreateHome on
CreateHome on


# Met a jour les compteurs à chaque connection d'un utilisateur
# Met à jour les compteurs à chaque connection d'un utilisateur
SQLLog PASS updatecount
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser


# Met a jour les compteurs a chaque upload ou download d'un utilisateur
# Met à jour les compteurs à chaque upload ou download d'un utilisateur
SQLLog STOR,RETR modified
SQLLog STOR,RETR modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser
Ligne 380 : Ligne 380 :
QuotaShowQuotas on
QuotaShowQuotas on


# Definit les requetes SQL pour que ProFTPd recupere les infos sur les quotas
# Définit les requetes SQL pour que ProFTPd récupère les infos sur les quotas
SQLNamedQuery get-quota-limit SELECT "name, quota_type, par_session, limit_type, bytes_up_limit, bytes_down_limit, bytes_transfer_limit, files_up_limit, files_down_limit, files_transfer_limit FROM ftpquotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"
SQLNamedQuery get-quota-limit SELECT "name, quota_type, par_session, limit_type, bytes_up_limit, bytes_down_limit, bytes_transfer_limit, files_up_limit, files_down_limit, files_transfer_limit FROM ftpquotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"


Ligne 394 : Ligne 394 :
# Gestion des logs
# Gestion des logs
# ================
# ================
# Enregistre les requetes SQL dans /var/log/proftpd/mysql.log
# Enregistre les requêtes SQL dans /var/log/proftpd/mysql.log
SQLLogFile /var/log/proftpd/mysql.log
SQLLogFile /var/log/proftpd/mysql.log


Ligne 401 : Ligne 401 :
ExtendedLog /var/log/proftpd/auth.log AUTH auth
ExtendedLog /var/log/proftpd/auth.log AUTH auth


# Enregistre les acces aux fichiers
# Enregistre les accès aux fichiers
LogFormat write "%h %l %u %t \"%r\" %s %b"
LogFormat write "%h %l %u %t \"%r\" %s %b"
ExtendedLog /var/log/proftpd/access.log WRITE,READ write
ExtendedLog /var/log/proftpd/access.log WRITE,READ write
Ligne 412 : Ligne 412 :
positionnez-vous dans /var/www
positionnez-vous dans /var/www


et prennez le paquet modifier de proftpadmin. Car celui d'origine
et prenez le paquet modifié de proftpadmin. Car celui d'origine
à quelque petits problèmes avec le TLS
a quelques petits problèmes avec le TLS


on trouvera le paquet modifier à l'adresse ci-dessous
on trouvera le paquet modifié à l'adresse ci-dessous


http://www.rt74.eu/public/dl/proftpdadmin.tar.gz
http://www.rt74.eu/public/dl/proftpdadmin.tar.gz
Ligne 434 : Ligne 434 :
</code>
</code>


inserez les lignes suivantes dedans
insérez les lignes suivantes dedans


<code>
<code>
Ligne 464 : Ligne 464 :
relancer apache : '''root@bougnat:# apachectl restart'''
relancer apache : '''root@bougnat:# apachectl restart'''


vérifiez l'accéssibilité à votre site
vérifiez l'accessibilité à votre site


'''http://mondomaine.fr/ftpadmin/''' ou '''http://mon-IP/ftpadmin/'''
'''http://mondomaine.fr/ftpadmin/''' ou '''http://mon-IP/ftpadmin/'''




=== Sécurisons, un peux tout ça ===
=== Sécurisons, un peu tout ça ===


dans un premier temps, occupons nous de l'accés. Comme on peut le voir
dans un premier temps, occupons nous de l'accés. Comme on peut le voir
l'accés se fait en direct et en http:// .Pour éviter que des petits malins
l'accés se fait en direct et en http:// .Pour éviter que des petits malins
impose leur compte, nous allons restriendre l'accés, en forcant l'admin
impose leur compte, nous allons restreindre l'accès, en forcant l'admin
à rentrer un couple login/password.
à entrer un couple login/password.


mettez-vous à la racine du compte proftpdadmin et créée le fichier .htaccess
mettez-vous à la racine du compte proftpdadmin et créez le fichier .htaccess


<code>
<code>
Ligne 503 : Ligne 503 :
</IfModule>
</IfModule>


La 1ér partie, concerne l'accés privé
La 1ér partie, concerne l'accès privé
La 2ème partie, concerne la rediction en https
La 2ème partie, concerne la redirection en https
</code>
</code>


Une fois terminé, il va falloir autorise un user à acceder à la gestion du ftp
Une fois terminé, il va falloir autoriser un user à accéder à la gestion du ftp
pour cela on va créer le fichier .htpasswd qui contiendra le couple login/password
pour cela on va créer le fichier .htpasswd qui contiendra le couple login/password


pour les feigniants nous avons : http://www.websiteout.fr/htpasswd.php ou pire http://www.clockwatchers.com/htaccess_tool.html
pour les fainéants nous avons : http://www.websiteout.fr/htpasswd.php ou pire http://www.clockwatchers.com/htaccess_tool.html


et pour les puristes tapez la commande ci-dessous et répondez aux questions  
et pour les puristes tapez la commande ci-dessous et répondez aux questions  
Ligne 520 : Ligne 520 :
relancer apache : '''root@bougnat:# apachectl restart'''
relancer apache : '''root@bougnat:# apachectl restart'''


revérifiez l'accéssibilité à votre site
revérifiez l'accessibilité à votre site


un login/password vous sera demandé et vous êtes en https:// et non plus en http://
un login/password vous sera demandé et vous êtes en https:// et non plus en http://
editor, reviewer
523

modifications

Menu de navigation