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

  • 13

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


Помог ли вам данный ответ?

Связанные статьи

« Назад