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 | ||
linux:pureftp [29-01-2012 11:17] edmc73 |
linux:pureftp [15-05-2024 16:28] (Version actuelle) edmc73 [Ajouter un utilisateur] |
||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
Pure-ftpd est un serveur FTP que j'aime bien et qui est simple à configurer.\\ | Pure-ftpd est un serveur FTP que j'aime bien et qui est simple à configurer.\\ | ||
Pour s' | Pour s' | ||
+ | |||
+ | Dans notre cas, nous allons utiliser le ftp pour ce connecter en tant que www-data qui est le compte d' | ||
===== Installation ===== | ===== Installation ===== | ||
Classique | Classique | ||
aptitude install pure-ftpd-common | aptitude install pure-ftpd-common | ||
+ | | ||
+ | Le message suivant peut apparaître | ||
+ | update-rc.d: | ||
+ | Starting ftp server: Running: / | ||
+ | |||
+ | Ne pas en tenir compte... | ||
| | ||
===== Configuration ===== | ===== Configuration ===== | ||
+ | |||
+ | ==== Avec l' | ||
On peut utiliser | On peut utiliser | ||
dpkg-reconfigure pure-ftpd-common | dpkg-reconfigure pure-ftpd-common | ||
+ | | ||
+ | Lancement de pure-ftpd | ||
+ | Serveur autonome | ||
- | Il y a aussi des fichiers de configuration à modifier dans certain cas | + | Pure-ftpwho doit-il s' |
+ | Non si vous en avant pas besoin sinon Oui | ||
- | Créer un fichier PassivePortRange dans etc/ | + | Faut-il activer les environnement fermés (« chroots ») virtuels ? |
+ | Non sauf si vous n'avez pas de lien symbolique dans vos dossiers utilisateurs, | ||
+ | |||
+ | Voila les seules choses configurable via cet outils... | ||
+ | |||
+ | ==== Avec les fichiers de config ==== | ||
+ | |||
+ | < | ||
+ | |||
+ | Passons aux fichiers de configuration à modifier dans notre cas | ||
+ | |||
+ | Créer un fichier PassivePortRange dans /etc/ | ||
~$ vi / | ~$ vi / | ||
Lui entrer deux valeur numériques entre 1024 et 65535. | Lui entrer deux valeur numériques entre 1024 et 65535. | ||
Exemple : | Exemple : | ||
- | | + | |
- | Pure-ftp utilisera alors un port entre 3000 et 3100 pour le transport de données. | + | Pure-ftp utilisera alors un port entre 40000 et 40100 pour le transport de données. |
Dans le mode FTP passif , le client demande au serveur de choisir un port aléatoire sur lequel ce dernier se mettra à l' | Dans le mode FTP passif , le client demande au serveur de choisir un port aléatoire sur lequel ce dernier se mettra à l' | ||
Ligne 36: | Ligne 61: | ||
Redémarrer pure-ftp : | Redémarrer pure-ftp : | ||
~$ / | ~$ / | ||
+ | Restarting ftp server: Running: / | ||
+ | |||
+ | On constate que nos ports ont été ajouté à la ligne de commande ci-dessus. | ||
Règle du firewall mais je suis sur de rien, c'est pour le mode passif | Règle du firewall mais je suis sur de rien, c'est pour le mode passif | ||
Ligne 41: | Ligne 69: | ||
iptables -A OUTPUT -p tcp -o eth0 --sport 40000:40100 -j ACCEPT | iptables -A OUTPUT -p tcp -o eth0 --sport 40000:40100 -j ACCEPT | ||
- | ===== Administration | + | ==== Configuration du système d' |
- | ==== Ajouter un utilisateur ==== | + | |
- | Dans cet exemple, je vais créer une liste d' | + | |
- | Nous allons donc utiliser une database de pure-ftpd appelé puredb\\ | + | |
- | Créons maintenant un utilisateur : | + | |
- | pure-pw useradd toto -u totounix -d / | + | |
- | + | ||
- | L' | + | |
- | L' | + | |
- | Si on oublie -m on peut toujours recompiler la puredb par cette commande : | + | |
- | pure-pw mkdb | + | |
- | | + | |
Pour s' | Pour s' | ||
Ligne 60: | Ligne 77: | ||
| | ||
Vérifiez donc l' | Vérifiez donc l' | ||
+ | # ls | ||
+ | auth conf db pureftpd-dir-aliases | ||
- | Maintenant vérifions que cette base est pris en compte lors du lancement du serveur FTP | + | Et bien non, par défaut il n' |
- | < | + | Nous allons faire en sorte que cette base soit pris en compte lors du lancement du serveur FTP |
- | # cd / | + | |
- | # ls -l | + | # cd / |
- | # total 0 | + | # ls -l |
- | lrwxrwxrwx 1 root root 26 2005-11-08 10:24 65unix -> ../ | + | # total 0 |
- | lrwxrwxrwx 1 root root 25 2005-11-08 10:24 70pam -> ../ | + | lrwxrwxrwx 1 root root 26 2005-11-08 10:24 65unix -> ../ |
+ | lrwxrwxrwx 1 root root 25 2005-11-08 10:24 70pam -> ../ | ||
Par défaut il n'y a que les 2 autorisations des utilisateurs systèmes. | Par défaut il n'y a que les 2 autorisations des utilisateurs systèmes. | ||
Il n'y a pas notre base d' | Il n'y a pas notre base d' | ||
- | # rm * Supprimons ces autorisations. | + | |
- | # ln -s / | + | # ln -s / |
On crée un lien symbolique vers notre fichier de config. | On crée un lien symbolique vers notre fichier de config. | ||
Cela permet au programme de prendre en compte notre base de données. | Cela permet au programme de prendre en compte notre base de données. | ||
- | </ | ||
- | Par défaut, pureftpd autorise seulement les utilisateurs qui ont pour UID une valeur de 1000.\\ | + | Par défaut, pureftpd autorise seulement les utilisateurs qui ont pour UID une valeur |
- | Pour régler | + | Notre utilisateur www-data a pour UID 33 ce qui va nous poser problème.\\ |
- | + | Pour résoudre ce problème,mettez | |
- | Dans le cas d'un serveur web, on peut mettre | + | |
Redémarrons maintenant le serveur | Redémarrons maintenant le serveur | ||
# / | # / | ||
+ | Restarting ftp server: / | ||
+ | Et la c'est la CATA, le fichier / | ||
+ | Pour créer ce fichier, il va falloir ajouter au moins un utilisateur en suivant le chapitre qui suit. | ||
+ | ===== Administration ===== | ||
+ | ==== Ajouter un utilisateur ==== | ||
+ | Dans cet exemple, je vais créer une liste d' | ||
+ | Nous allons donc utiliser une database de pure-ftpd appelé puredb\\ | ||
+ | Créons maintenant un utilisateur toto qui aura les droits de l' | ||
+ | pure-pw useradd toto -u totounix -d / | ||
+ | | ||
+ | | ||
+ | L' | ||
+ | L' | ||
+ | <note tip>-d ne permet pas à l' | ||
+ | contrairement à\\ | ||
+ | -D qui permet cette possibilité.</ | ||
+ | L' | ||
+ | Si on oublie -m on peut toujours mettre à jour la puredb par cette commande : | ||
+ | pure-pw mkdb | ||
+ | Restreindre par ip un user existant (bien penser à remettre les ip existante) | ||
+ | pure-pw usermod toto -r 192.168.0.0/ | ||
+ | ===== Vérification ===== | ||
+ | Maintenant que vous avez créé vos utilisateurs, | ||
+ | # / | ||
+ | Restarting ftp server: Running: / | ||
+ | |||
+ | On voit que la ligne de commande a complètement changé, notre fichier de base de données utilisateur est bien le fichier / | ||
+ | |||
+ | ===== Exécuter un script à la réception d'un fichier ===== | ||
+ | |||
+ | vi / | ||
+ | |||
+ | Renseigner la variable **UPLOADSCRIPT** | ||
+ | <code bash> | ||
+ | # UPLOADSCRIPT: | ||
+ | # pure-uploadscript will also be run to spawn the program given below | ||
+ | # for handling uploads. see / | ||
+ | # pure-uploadscript(8) | ||
+ | |||
+ | # example: UPLOADSCRIPT=/ | ||
+ | UPLOADSCRIPT=/ | ||
+ | </ | ||
+ | |||
+ | Les variables suivantes sont accessible dans votre script bash | ||
+ | * $1 est le chemin et le nom du fichier. | ||
+ | * UPLOAD_SIZE The size of the file, in bytes. | ||
+ | * UPLOAD_PERMS The permissions, | ||
+ | * UPLOAD_UID The numerical UID of the owner. | ||
+ | * UPLOAD_GID The numerical GID of the owner. | ||
+ | * UPLOAD_USER The login of the owner. | ||
+ | * UPLOAD_GROUP The group name the files belongs to. | ||
+ | * UPLOAD_VUSER The full user name, or the virtual user name (127 chars max) . | ||
+ | |||
+ | Du coup vous pouvez exécuter une commande en fonction de l' | ||
+ | <code bash> | ||
+ | if [ " | ||
+ | echo -e `date " | ||
+ | echo -e " | ||
+ | fi | ||
+ | </ | ||
+ | |||
+ | ou en fonction du fichier | ||
+ | |||
+ | <code bash> | ||
+ | if [ " | ||
+ | echo -e `date " | ||
+ | echo -e " | ||
+ | fi | ||
+ | </ |