web-dev-qa-db-fra.com

Restreindre * .exe ou tout autre exécutable à télécharger sur un compte ftp sur le serveur vsftpd

J'ai réalisé que certains de mes utilisateurs FTP téléchargent un fichier * .exe sur le compte d'utilisateur FTP qui est supposé avoir le format * .MXF et toutes sortes de formats de média.

Je cherche un moyen de refuser tout type de téléchargement de fichier, sauf ***. Mxf, *. Mp4 * .mov, etc. restreindre le compte ftp pour n'accepter que les fichiers multimédias et non les exe

quelqu'un at-il une idée à ce sujet, comment puis-je le gérer avec le serveur VSFTPD.

Merci d'avance.

1
kunal

Vous voudrez peut-être examiner la section de man vsftpd.conf, en particulier la section de fichier de refus des options de chaîne qui indique.

deny_file

Cette option peut être utilisée pour définir un modèle pour les noms de fichiers (et les noms de répertoire, etc.) qui ne doivent en aucun cas être accessibles. Les éléments affectés ne sont pas cachés, mais toute tentative de leur faire quoi que ce soit (téléchargement, modification dans un répertoire, modification de quelque chose dans le répertoire, etc.) sera refusée. Cette option est très simple et ne doit pas être utilisée pour le contrôle d'accès sérieux. Les autorisations du système de fichiers doivent être utilisées de préférence. Toutefois, cette option peut être utile dans certaines configurations d’utilisateur virtuel. En particulier, sachez que si un nom de fichier est accessible par plusieurs noms (peut-être en raison de liens symboliques ou de liens physiques), vous devez alors prendre soin de refuser l'accès à tous les noms. L'accès sera refusé aux éléments si leur nom contient la chaîne indiquée par hide_file ou s'ils correspondent à l'expression régulière spécifiée par hide_file. Notez que le code de correspondance d'expression régulière de vsftpd est une implémentation simple, qui est un sous-ensemble de la fonctionnalité d'expression régulière complète. Pour cette raison, vous devrez tester soigneusement et de manière exhaustive toute application de cette option. De plus, il est recommandé d'utiliser des autorisations de système de fichiers pour toutes les stratégies de sécurité importantes en raison de leur fiabilité accrue. La syntaxe regex prise en charge est un nombre quelconque de *,? et des opérateurs {,} non liés. La correspondance de regex n’est prise en charge que sur le dernier composant d’un chemin, par exemple. un B/? est pris en charge mais /?/c ne l’est pas.

    Example: deny_file={*.exe,*.sh,.private} 

Je n'ai pas testé le fait que cela interdirait explicitement le téléchargement de fichiers .exe. Cependant, on part du principe que les utilisateurs les téléchargent afin que d'autres puissent les télécharger. Quand cela cessera de fonctionner, peut-être que l’activité de les télécharger cessera également. Comme suggéré dans ce commentaire , vous pouvez également écrire un script pour récupérer l'espace du répertoire de téléchargement par rm /youruploaddir/*.exe où/youruploaddir/est le répertoire de vos utilisateurs. uploader vers et tilisez cron pour le planifier pour s’exécuter à une heure ou une fréquence spécifique.

Comme une extension de fichier ne garantit aucunement le contenu mentionné par @CharlesGreen dans ce commentaire , vous pouvez envisager une variante de ce script ​​que j'ai conçu pour trouver pratiquement tous les fichiers vidéo sur mon disque dur. système. Vous pouvez facilement le modifier pour inclure les conteneurs .mxf (Material Exchange Format). Ou bien, comme alternative, identifiez simplement les fichiers .exe réels en utilisant grep pour faire correspondre "exécutable" dans la sortie de file

Détermination du fichier exécutable Exemple:

file *.* | grep "executable"| cut -d':' -f1

Imprimera les noms de fichiers des fichiers du répertoire actuel réellement exécutables (tels que les fichiers Windows .exe)

Remarque: Les fichiers ne sont exécutables sur votre système que si les autorisations vous le permettent. Voir this pour plus de détails.

1
Elder Geek