web-dev-qa-db-ja.com

vsftpdサーバーのftpアカウントにアップロードされる* .exeまたはその他の実行可能ファイルを制限する

一部のFTPユーザーが* .exeファイルをFTPユーザーアカウントにアップロードしていることに気づきました。

***。mxf、*。mp4 * .movなどを除くすべての種類のファイルのアップロードを拒否する方法を探しています。 exeではなくメディアファイルのみを受け入れるようにftpアカウントを制限する

vSFTPDサーバーでどのように管理できますか?.

よろしくお願いします。

1
kunal

man vsftpd.confのセクション、特に文字列オプションのdeny fileセクションを確認することをお勧めします。

deny_file

このオプションは、ファイル名(およびディレクトリ名など)のパターンを設定するために使用できますが、どのような方法でもアクセスできないようにする必要があります。影響を受けるアイテムは非表示ではありませんが、それらに対して何かを行う試み(ダウンロード、ディレクトリへの変更、ディレクトリ内の何かへの影響など)は拒否されます。このオプションは非常に単純であり、深刻なアクセス制御には使用しないでください。ファイルシステムの許可を優先的に使用する必要があります。ただし、このオプションは、特定の仮想ユーザー設定で役立つ場合があります。特に、シンボリックリンクまたはハードリンクが原因でさまざまな名前でファイル名にアクセスできる場合は、すべての名前へのアクセスを拒否するように注意する必要があります。名前にhide_fileで指定された文字列が含まれる場合、またはhide_fileで指定された正規表現に一致する場合、アイテムへのアクセスは拒否されます。 vsftpdの正規表現一致コードは、完全な正規表現機能のサブセットである単純な実装であることに注意してください。このため、このオプションの適用を慎重かつ徹底的にテストする必要があります。また、信頼性が高いため、重要なセキュリティポリシーにはファイルシステムのアクセス許可を使用することをお勧めします。サポートされている正規表現の構文は、* 、?ネストされていない{、}演算子。正規表現の一致は、パスの最後のコンポーネントでのみサポートされます。 a/b /?サポートされていますが、a /?/ cはサポートされていません。

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

これにより.exeファイルのアップロードが明示的に拒否されることはテストしていませんが、他の人がダウンロードできるように人々がファイルをアップロードしていることを前提としています。それが機能しなくなると、おそらくそれらをアップロードするアクティビティも停止します。 このコメント で示唆されているように、rm /youruploaddir/*.exeでアップロードディレクトリのスペースを再利用するスクリプトを書くこともできます。/youruploaddir/はユーザーがいるディレクトリです特定の時間または頻度で実行するには、および cronを使用してスケジュール にアップロードします。

このコメント の@CharlesGreenで言及されているように、ファイル拡張子は内容を保証しないため、 このスクリプト のバリエーションを検討するかもしれません。システム。 .mxf(Material Exchange Format)コンテナを含めるように簡単に変更できます。または、代わりにgrepを使用して実際の.exeファイルを識別し、fileからの出力の「executable」と一致させます。

実行可能ファイルの決定例:

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

現在のディレクトリにある実際に実行可能なファイル(Windows .exeファイルなど)のファイル名を出力します

注:ファイルは、許可するように設定された権限がある場合にのみ、システムで実行可能です。詳細については、 this を参照してください。

1
Elder Geek