proftpd
no way to compare when less than two revisions
Différences
Ci-dessous, les différences entre deux révisions de la page.
— | proftpd [2018/11/17 12:54] (Version actuelle) – créée - modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Serveur ProFTP ====== | ||
+ | ProFTP est un serveur utilisant le protocole FTP (File Transfert Protocole = Protocole de Transfert de Fichiers) qui est l'un des plus connus sur internet avec HTTP. Il permet à plusieurs personnes de partager des fichiers.\\ | ||
+ | ProFTP est l'un des serveurs les plus connus sous Unix, il permet l' | ||
+ | La version la plus à jour de proftp à ce jour est la 1.3.2rc1, si vous voulez de plus amples informations concernant proftp, je vous invite à visiter le site officiel: http:// | ||
+ | ---- | ||
+ | Nous allons ici mettre en place un serveur de fichiers avec gestion des droits d' | ||
+ | Autrement dit l' | ||
+ | NDLR: Ici nous mettons en place ce serveur de fichier sur un réseau locale, mais il peut aussi bien être adapté pour l' | ||
+ | |||
+ | ===== Situation Initiale ===== | ||
+ | {{: | ||
+ | |||
+ | |||
+ | ===== Situation Finale ===== | ||
+ | {{: | ||
+ | |||
+ | ---- | ||
+ | <note important> | ||
+ | |||
+ | ===== Installation du logiciel ===== | ||
+ | === Sous Gentoo Linux === | ||
+ | |||
+ | <code bash> | ||
+ | === Sous Mandriva Linux === | ||
+ | <code bash> | ||
+ | |||
+ | ==== Vérification de l' | ||
+ | On vérifie si le logiciel c'est installé correctement (si le chemin est correctement retourné il n'y a pas de problème, sinon c'est que le logiciel n'est pas correctement installé): | ||
+ | <code bash> | ||
+ | |||
+ | ===== Configuration de ProFTP ===== | ||
+ | ==== Mise en place du répertoire ftp ==== | ||
+ | => Création du répertoire FTP si il n' | ||
+ | <code bash> | ||
+ | => On copie les fichiers que l'on veut partager vers le répertoire "/ | ||
+ | <code bash> | ||
+ | |||
+ | ==== L' | ||
+ | Par défaut, le logiciel « proftpd » se lance avec les droits de l' | ||
+ | <code bash> | ||
+ | Si il n'y a aucun résultat, cela indique que l' | ||
+ | <code bash> | ||
+ | [root@kazuya ~]# groupadd nogroup | ||
+ | [root@kazuya ~]# useradd nobody -d / -s /bin/false | ||
+ | [root@kazuya ~]# usermod -g nogroup nobody | ||
+ | </ | ||
+ | __Quelques explications: | ||
+ | * **groupadd** crée le groupe " | ||
+ | * **useradd** crée l' | ||
+ | * **usermod** se charge d' | ||
+ | |||
+ | ==== Création des utilisateurs ==== | ||
+ | L' | ||
+ | <code bash> | ||
+ | [root@kazuya ~]# groupadd ftp | ||
+ | [root@kazuya ~]# useradd admftp -s /bin/false | ||
+ | [root@kazuya ~]# usermod -g ftp admftp | ||
+ | [root@kazuya ~]# passwd admftp | ||
+ | |||
+ | >> | ||
+ | </ | ||
+ | L' | ||
+ | <code bash> | ||
+ | [root@kazuya ~]# useradd -g ftp -s / | ||
+ | [root@kazuya ~]# passwd userftp | ||
+ | </ | ||
+ | L' | ||
+ | <code bash> | ||
+ | L' | ||
+ | <note important> | ||
+ | |||
+ | Ensuite on donne des droits sur le répertoire: | ||
+ | <code bash> | ||
+ | [root@kazuya ~]# chgrp ftp /home/ftp -R | ||
+ | [root@kazuya ~]# chmod 775 /home/ftp -R | ||
+ | </ | ||
+ | __Quelques explications: | ||
+ | * **chgrp**: pour " | ||
+ | * **chmod**: Ici on change les droits sur le dossier "/ | ||
+ | * Le premier **7** correspond au propriétaire du dossier: il a donc le droit de " | ||
+ | * Le deuxième **7** correspond au groupe du dossiers (et donc possèdent les même droits que le propriétaire).\\ | ||
+ | * Le **5** correspond à tous les autres utilisateurs du système, ils ont le droit de " | ||
+ | < | ||
+ | * Le droits " | ||
+ | * Le droit " | ||
+ | * Le droit " | ||
+ | Je n'en dirais pas plus, ce n'est pas le but de ce tutoriel que d' | ||
+ | </ | ||
+ | |||
+ | ==== Éditer le fichier "/ | ||
+ | Laissez-moi vous rappeler que nous avons crée des utilisateurs plus haut avec un shell "/ | ||
+ | Ceci est bien jolie, mais en laissant ceci sans rien modifier d' | ||
+ | C'est pour cela que nous allons lui indiquer par cette commande: | ||
+ | <note important> | ||
+ | Veuillez bien faire attention à mettre "''>>''" | ||
+ | <code bash> | ||
+ | À présent, il reconnait bien le shell "/ | ||
+ | <note importante> | ||
+ | ==== Restriction des comptes ==== | ||
+ | Nous allons maintenant restreindre les utilisateurs du service ftp, pour cela nous allons utiliser le fichier "/ | ||
+ | <code bash> | ||
+ | __Quelques explications: | ||
+ | La commande suivante se charge d' | ||
+ | Nous utilisons celui-ci pour éviter, si il existe déjà un fichier " | ||
+ | Ensuite, dans ce fichier que nous avons remplie, nous devons l' | ||
+ | <code bash> | ||
+ | ==== Mise en place du fichier " | ||
+ | < | ||
+ | => Renommer l' | ||
+ | <code bash> | ||
+ | [root@kazuya ~]# mv / | ||
+ | [root@kazuya ~]# cp / | ||
+ | </ | ||
+ | Bien sur, voici le fichier en question: | ||
+ | <code bash> | ||
+ | # | ||
+ | # Kazuya : service PROFTPD Linux | ||
+ | # | ||
+ | # | ||
+ | # => voir "/ | ||
+ | # | ||
+ | |||
+ | |||
+ | # | ||
+ | #DIRECTIVE SYSTEMES | ||
+ | # | ||
+ | ServerType | ||
+ | DefaultServer | ||
+ | AllowStoreRestart | ||
+ | Port 21 | ||
+ | User | ||
+ | Group nogroup | ||
+ | |||
+ | |||
+ | # | ||
+ | #DIRECTIVE ADMINISTRATEUR | ||
+ | # | ||
+ | ServerName | ||
+ | LogFormat | ||
+ | LogFormat | ||
+ | ExtendedLog | ||
+ | ExtendedLog | ||
+ | UseFtpUsers | ||
+ | AllowOverwrite | ||
+ | |||
+ | |||
+ | # | ||
+ | #DIRECTIVES SECURITAIRES/ | ||
+ | # | ||
+ | DefaultRoot | ||
+ | MaxClients | ||
+ | MaxInstances | ||
+ | AccessDenyMsg | ||
+ | AccessGrantMsg | ||
+ | TimeoutIdle | ||
+ | < | ||
+ | < | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | </ | ||
+ | <Limit LOGIN> | ||
+ | Allow 192.168.0. 127.0.0.1 | ||
+ | DenyAll | ||
+ | </ | ||
+ | |||
+ | |||
+ | # | ||
+ | #DIRECTIVES ANONYMES | ||
+ | # | ||
+ | < | ||
+ | User ftp | ||
+ | Group ftp | ||
+ | AnonRequirePassword | ||
+ | RequireValidShell | ||
+ | UserAlias | ||
+ | UserAlias | ||
+ | UserAlias | ||
+ | <Limit WRITE> | ||
+ | DenyAll | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Démarrage du service ProFTP ===== | ||
+ | === Sous Gentoo Linux === | ||
+ | <code bash> | ||
+ | === Sous Mandriva Linux === | ||
+ | <code bash> | ||
+ | => On vérifie que le processus est bien lancé: | ||
+ | <code bash> | ||
+ | =>On vérifie que notre serveur ftp écoute bien le réseau: | ||
+ | <code bash> | ||
+ | Ensuite si on veut suivre les connections "en direct", | ||
+ | <code bash> | ||
+ | => Si on veut également suivre les téléchargements en direct (à faire dans une autre console): | ||
+ | <code bash> | ||
+ | ===== Test du service ===== | ||
+ | D' | ||
+ | <code bash> | ||
+ | -> Vérifier qu' | ||
+ | Ensuite tester plus en profondeurs les droits " | ||
+ | ===== Utilisation des journaux ===== | ||
+ | Pour surveiller le trafic, on peut utiliser un simple script bash permettant de créer une page html en exploitant les journaux du service proftpd. | ||
+ | Voici le petit script en question (assez simple): | ||
+ | <code bash> | ||
+ | # | ||
+ | # by Kazuya | ||
+ | LOG="/ | ||
+ | HTML="/ | ||
+ | |||
+ | echo "< | ||
+ | |||
+ | NB_TOTAL_230=$(cat $LOG | grep 230 -c) | ||
+ | NB_TOTAL_530=$(cat $LOG | grep 530 -c) | ||
+ | let NB_TOTAl_CONNEXION=NB_TOTAL_230+NB_TOTAL_530 | ||
+ | |||
+ | LISTE_UNIQUE_DES_IPs=$(cat $LOG | cut -d " | ||
+ | |||
+ | echo "< | ||
+ | echo "< | ||
+ | echo "< | ||
+ | <td align=' | ||
+ | <td align=' | ||
+ | </ | ||
+ | |||
+ | for IP in $LISTE_UNIQUE_DES_IPs | ||
+ | do | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | if [ -z " | ||
+ | then | ||
+ | NB_230_POUR_CETTE_IP="< | ||
+ | else | ||
+ | NB_230_POUR_CETTE_IP="< | ||
+ | fi | ||
+ | |||
+ | if [ -z " | ||
+ | then | ||
+ | | ||
+ | else | ||
+ | NB_530_POUR_CETTE_IP="< | ||
+ | fi | ||
+ | |||
+ | echo "< | ||
+ | <TD align=' | ||
+ | <TD align=' | ||
+ | </ | ||
+ | done | ||
+ | |||
+ | echo "</ | ||
+ | |||
+ | </ | ||
+ | Il faut d' | ||
+ | <code bash> | ||
+ | [root@kazuya ~]# chmod +x statftpv2 | ||
+ | [root@kazuya ~]# ./statftpv2 | ||
+ | </ | ||
+ | Il suffit ensuite de visualiser la page dans un navigateur web (ne pas oublier de re-exécuter le script de temps en temps, ou par exemple en utilisant " | ||
+ | ===== Conclusion ===== | ||
+ | Relativement simple à installer, une fois que l'on a la bonne démarche. Il peut servir aussi bien en intranet qu'en extranet. | ||
+ | Vous pouvez ainsi facilement mettre en place un tel service pour partager des données. | ||
+ | |||
+ | |||
+ | |||
+ | |||
proftpd.txt · Dernière modification : 2018/11/17 12:54 de 127.0.0.1