Защита FTP с помощью .ftpaccess

FTP - сетевой протокол, предназначенный для передачи файлов. Позволяет просматривать содержимое каталогов, скачивать файлы с сервера и загружать на сервер.

В качестве ftp сервера на нашем хостинге используется proftpd. Это позволяет изменять некоторые настройки с помощью файлов .ftpaccess. Директивы, заданные в файле .ftpaccess, действуют только на каталог, в котором он располагается, и на все его подкаталоги. Большинство этих директив направлено на ограничение доступа и повышение уровня безопасности. Все директивы, которые могут быть использованы в .ftpaccess, вы можете найти на странице:
http://www.proftpd.org/docs/directives/linked/config_ref_context_ftpaccess.html

На нашем хостинге действуют следующие ограничения:
Максимальное количество соединений под одним логином - 10
Максимальное количество соединений с одного IP - 10
Часто задаваемые вопросы по настройке файла .ftpaccess

Q: В результате неудачного редактирования файла .ftpaccess полностью пропал доступ к хостингу по протоколу ftp. Как это можно исправить?

A: Если доступ к .ftpaccess случайно или намеренно был запрещен, то данный файл можно отредактировать через файловый менеджер в панели управления.

Q: Каким образом можно ограничить выполнение ftp команд с определенных IP адресов?
A: Это можно сделать при помощи директив Limit, Allow, Deny, Order, AllowAll, DenyAll.

Пример 1. Полностью запрещаем доступ всем, кроме клиентов с хоста 192.0.2.78 и из сети 192.0.3.0/24

Allow 192.0.2.78
Allow 192.0.3.0/24
DenyAll

Пример 2. Запрещаем любую запись для всех, кроме клиентов с IP адресами 192.0.2.78 и 192.0.2.77:

Allow 192.0.2.78,192.0.2.77
DenyAll


Q: Каким образом можно скрыть определенные файлы?
A: С помощью директивы HideFiles можно скрывать файлы, названия которых удовлетворяют заданному регулярному выражению:
HideFiles [!]regexp|"none" ["user"|"group" expression]

Пример 1. Скрыть файлы .ftpaccess и .htaccess для всех, кроме пользователя user0:
HideFiles ^\.(ftpaccess|htaccess)$ user mysite0

Пример 2. Скрыть конфигурационные файлы:
HideFiles \.conf$

Q:Можно ли запретить изменение определенных файлов?
A: Директивы PathDenyFilter/PathAllowFilter позволяют запретить или разрешить модификацию файлов, определяемых регулярным выражением. Правила применяются к ftp командам DELE, MKD/XMKD, RMD/XRMD, RNFR, RNTO, STOR, STOU, а также к командам SITE CHGRP и SITE CHMOD. Если имя файла удовлетворяет регулярному выражению в PathDenyFilter, то указанные выше операции над файлом запрещаются, в противном случае - разрешаются. Если имя файла удовлетворяет регулярному выражению в PathAllowFilter, то операции над этим файлом разрешаются, в противном случае - запрещаются. Если используются обе директивы, то первой проверяется PathAllowFilter:
PathDenyFilter regexp
или
PathAllowFilter regexp

Пример 1. Запрещаем модификацию файлов .htaccess и .ftpaccess:
PathDenyFilter ^\.(ftpaccess|htaccess)$

Q: Как изменить права доступа по умолчанию для загружаемых файлов и каталогов?
A: Необходимо воспользоваться директивой Umask:
Umask [ маска для файлов [ маска для каталогов ]]

Пример 1. Создавать файлы с правами 444:
Umask 222


Директивы .ftpaccess

Limit

Директива Limit задает блок, в котором устанавливаются ограничения на выполнение определенных команд. В качестве параметра указываются ftp команды или группы команд, разделенные пробелами. Возможно использование следующих групп:

ALL - все ftp команды
DIRS - ftp команды: CDUP, CWD, LIST, MDTM, NLST, PWD, RNFR, STAT, XCUP, XCWD, XPWD
LOGIN - ftp логин
READ - ftp команды: RETR, SIZE
WRITE - ftp команды: APPE, DELE, MKD, RMD, RNTO, STOR, STOU, XMKD, XRMD

Формат записи:
<Limit команда1 [ команда2 ...]>
</Limit>


Allow/Deny

Директивы задают список хостов или сетей, для которых соответственно разрешено/запрещено выполнение команды:
Allow|Deny ["from"] "all"|"none"|хост|сеть[,хост|сеть[,...]]

Примечание: указывайте в директивах Allow/Deny IP адрес, а не имя хоста.

Order

Директива Order задает последовательность, в которой проверяются директивы Allow и Deny. По умолчанию, порядок выполнения: allow, deny, то есть сначала проверяются директивы Allow. Если директива Allow явно задает разрешение для хоста, то директивы Deny не проверяются, и ftp-клиенту разрешается выполнение команд. Если директива Allow явно не задает разрешение для хоста, то проверяется директива Deny, и если хост ей удовлетворяет, то выполнение команд запрещается, в противном случае - разрешается. Если директива Order определяет порядок: deny, allow, то сначала проверяются директивы Deny. Если к хосту применяются какие-либо запреты, то директива Allow не проверяется, и ftp-клиенту запрещается выполнение команд. Если ничего не запрещается, то проверяются директивы Allow. Если Allow явно задает разрешение для хоста, то ftp-клиенту разрешается выполнение команд, в противном случае - запрещается.

Формат записи:
Order allow,deny|deny,allow

AllowAll
Директива явно разрешает доступ к блоку , используется по умолчанию.

DenyAll
Запрещает доступ, это аналог следующей комбинации директив:
Order Deny,Allow
Deny from all

DeleteAbortedStores
Удалять файлы, которые были загружены не до конца:
DeleteAbortedStores on

ListOptions
Скрывать файлы с именами, начинающимися с точки:
ListOptions "+a"

AllowOverwrite
Запретить перезапись существующих файлов:
AllowOverwrite off

  • Email, SSL
  • 11 Пользователи нашли это полезным
Помог ли вам данный ответ?

Related Articles

Предложенные тарифные планы меня не устраивают. Что делать?

Q. Предложенные тарифные планы меня не устраивают. Что делать?A. Свяжитесь со службой технической...

Что будет с моим сайтом если я вовремя не оплачу счет?

Q. Что будет с моим сайтом если я вовремя не оплачу счет?A. Ваш аккаунт будет заблокирован и удален.

Если мне станет «тесно» в выбранном мною тарифном плане, можно его будет изменить?

Q. Если мне станет «тесно» в выбранном мною тарифном плане, можно его будет изменить?A. Да, это...

Через сколько часов после оплаты мне дадут доступ к аккаунту?

Q. Через сколько часов после оплаты мне дадут доступ к аккаунту?A. Доступ к аккаунту как правило...

Подскажите, пожалуйста, как удалить неудаляемые файлы или папки?

Q. Подскажите, пожалуйста, как удалить неудаляемые файлы или папкм?A. Для удаления таких файлов,...