Ограничить *.exe или любой другой исполняемый файл для загрузки на учетную запись ftp на сервере vsftpd
Я понял, что некоторые из моих пользователей FTP загружают файл *.exe в учетную запись пользователя FTP, которая, как предполагается, имеет *.MXF и все виды медиа-формата.
Я ищу способ запретить загрузку файлов всех типов, кроме ***. Mxf, *. Mp4 *.mov и так далее. ограничить учетную запись ftp, чтобы принимать только медиа-файлы, а не exe's
Кто-нибудь есть идеи об этом, как я могу управлять им с сервером VSFTPD.
Огромное спасибо заранее.
1 ответ
Возможно, вы захотите просмотреть раздел man vsftpd.conf
в частности, раздел deny file строковых опций, в котором указано.
deny_file
Эта опция может использоваться для установки шаблона для имен файлов (и имен каталогов и т. Д.), Которые не должны быть доступны в любом случае. Затронутые элементы не являются скрытыми, но любая попытка что-либо с ними сделать (загрузить, перейти в каталог, повлиять на что-либо в каталоге и т. Д.) Будет отклонена. Эта опция очень проста и не должна использоваться для серьезного контроля доступа - права доступа к файловой системе должны использоваться в предпочтении. Однако этот параметр может быть полезен в некоторых настройках виртуального пользователя. В частности, следует помнить, что если имя файла доступно по нескольким именам (возможно, из-за символических ссылок или жестких ссылок), необходимо позаботиться о том, чтобы запретить доступ ко всем именам. Доступ к элементам будет запрещен, если их имя содержит строку, заданную hide_file, или если они соответствуют регулярному выражению, указанному в hide_file. Обратите внимание, что код сопоставления регулярных выражений vsftpd - это простая реализация, которая является подмножеством полной функциональности регулярных выражений. В связи с этим вам необходимо тщательно и исчерпывающе протестировать любое применение этой опции. И вам рекомендуется использовать разрешения файловой системы для любых важных политик безопасности из-за их большей надежности. Поддерживаемый синтаксис регулярных выражений - любое число *,? и неопубликованные {,} операторы. Сопоставление с регулярным выражением поддерживается только в последнем компоненте пути, например, a/b/? поддерживается, но /?/c нет.
Example: deny_file={*.exe,*.sh,.private}
Я не проверял, что это будет явно запрещать загрузку файлов.exe, однако предполагается, что люди загружают их, чтобы другие могли их скачать. Когда это перестанет работать, возможно, перестанет загружаться и их загрузка. Как предлагается в этом комментарии, вы также можете написать сценарий, чтобы освободить место в каталоге загрузки rm /youruploaddir/*.exe
где / youruploaddir / - это каталог, в который пользователи загружают файлы и используют cron, чтобы запланировать его запуск в определенное время или с определенной частотой.
Поскольку расширение файла никоим образом не гарантирует содержание, упомянутое @CharlesGreen в этом комментарии, вы можете рассмотреть вариант этого сценария, который я разработал для поиска практически всех видеофайлов в моей системе. Вы можете легко изменить его, включив контейнеры.mxf (формат обмена материалами). Или, в качестве альтернативы, просто определите действительные файлы.exe, используя grep
сопоставить "исполняемый" в выводе из file
Определение исполняемого файла Пример:
file *.* | grep "executable"| cut -d':' -f1
Напечатает имена файлов в текущем каталоге, которые на самом деле являются исполняемыми (например, файлы.exe Windows)
Примечание. Файлы исполняются только в вашей системе, если у вас есть разрешения, установленные для этого. Смотрите это для более подробной информации.