editor, reviewer
523
modifications
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 | existants. J'ai grandement modifié le proftpd.conf pour avoir | ||
la | 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, | 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 | '''B_UP :''' Taille (en Mbytes) autorisé à être transférée sur le serveur. | ||
'''B_DOWN :''' Taille (en Mbytes) autorisé à être | '''B_DOWN :''' Taille (en Mbytes) autorisé à être téléchargée à partir du serveur. | ||
'''B_TRANS :''' Taille (en Mbytes) autorisé à | '''B_TRANS :''' Taille (en Mbytes) autorisé à transférée sur et à partir du serveur (upload+download). | ||
'''F_UP :''' Nombre de fichiers | '''F_UP :''' Nombre de fichiers autorisés à être transférés sur le serveur. | ||
'''F_DOWN :''' Nombre de fichiers | '''F_DOWN :''' Nombre de fichiers autorisés à être téléchargés à partir du serveur. | ||
'''F_TRANS :''' Nombre de fichiers | '''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é | ||
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 | # On chroot tous les users dans leur home | ||
DefaultRoot ~ | DefaultRoot ~ | ||
Ligne 279 : | Ligne 279 : | ||
DenyFilter "%" | DenyFilter "%" | ||
# | # 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 | # 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 | # 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 | # 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 | # 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 | # Création automatique du répertoire de l'utilisateur si il n'existe pas | ||
CreateHome on | CreateHome on | ||
# Met | # 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 | # 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 | ||
# | # 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 | # 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 | # 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 | et prenez le paquet modifié de proftpadmin. Car celui d'origine | ||
a quelques petits problèmes avec le TLS | |||
on trouvera le paquet | 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> | ||
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' | 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 | === 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 | impose leur compte, nous allons restreindre l'accès, en forcant l'admin | ||
à | à entrer un couple login/password. | ||
mettez-vous à la racine du compte proftpdadmin et | 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' | La 1ér partie, concerne l'accès privé | ||
La 2ème partie, concerne la | La 2ème partie, concerne la redirection en https | ||
</code> | </code> | ||
Une fois terminé, il va falloir | 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 | 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' | 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:// |