15.5. Защита FTP
15.5. Защита FTP
Очень полезной, особенно, при организации виртуальных узлов, является конфигурационная директива DefaultRoot, позволяющая указать каталог, который представлялся бы пользователям как корневой. Например, значение DefaultRoot "~" настраивает сервер так, чтобы корневым каталогом каждого пользователя был его собственный домашний каталог.
А что делать, если нам нужно, чтобы пользователи видели все дерево файловой системы? Например, чтобы каждый мог посмотреть, в каком каталоге находится та или иная программа. В этом случае целесообразно ограничить действия над файлами в корневом каталоге (точнее, во всех каталогах, кроме домашнего каталога пользователя). Делается это так:
<Directory /*>
<LIMIT WRITE READ STOR>
DenyAll
</LIMIT>
</Directory>
Пример файла конфигурации с использованием директивы DefaultRoot приведен ниже (листинг 15.13):
Листинг 15.13. Пример использования директивы Default Root (/etc/proftpd.conf)
ServerName "My ProFTPD server"
ServerType standalone
DefaultServer on
# Корневым для пользователя будет его домашний каталог
DefaultRoot "~"
# Используем стандартный порт
Port 21
Umask 022
MaxInstances 30
# Пользователь и группа, обслуживающие сервер
User nobody
Group nobody
# Параметры корневого каталога. Блочная директива Directory
<Directory /*>
# Директива, определяющая параметр AllowOverwrite
AllowOverwrite on
</Directory>
# Чтобы избежать атаки на отказ, нужно установить
# максимальное число клиентов, а также максимальное
# число неудачных попыток регистрации;
MaxClients 10
MaxLoginAttempts 2
# Иногда для взлома злоумышленник пытается использовать
# а качестве оболочки какую-нибудь программу, например,
# "оболочку" rm -R /.
# Обычно эта брешь в защите закрыта, но все же желательно
# требовать использования только законных оболочек:
RequireValidShell on
Больше книг — больше знаний!
Заберите 20% скидку на все книги Литрес с нашим промокодом
ПОЛУЧИТЬ СКИДКУДанный текст является ознакомительным фрагментом.