Рассмотрим пример, запрещающий доступ к любым файлам с именем passwd:
noretrieve relative passwd
Попробуйте добавить эту строку в свой конфигурационный файл. Теперь подключитесь к серверу с помощью FTP-клиента. Для тестирования из X Window я в графическом режиме Linux использовал программу gftp. Подключившись к серверу, я создал файл passwd в директории /home и попытался его скачать в каталог /home/flenov. В ответ на это FTP-клиент только создал пустой файл, но скачать ничего не смог, из-за установленного запрета программа завершилась аварийно. Такое окончание — это, конечно же, особенность gftp,
а другой FTP-клиент должен правильно обработать ошибку и сохранить работоспособное состояние.
Если FTP-сервер находится на одном физическом сервере с Web-сервером, то вполне логичным будет запретить чтение файла .htaccess, в котором прописываются права доступа на директории для Web-сервера. Пользователи FTP не должны иметь права даже смотреть их. Лучше прописать разрешение только конкретным клиентам, чтобы каждый из них мог работать только со своими файлами .htaccess, или предоставить другой способ редактирования прав.
Работу с системными каталогами можно вообще отменить. Например, следующая строка запретит получение любого файла из директории /etc:
noretrieve /etc
После этого нельзя будет скачать ни один файл не только из директории /etc, но и из ее поддиректорий;
□
loginfails число
— количество неудачных попыток входа на сервер, после которого в журнале будет создана соответствующая запись. В нашем примере стоит число 5. Если пользователь не смог войти на сервер 5 раз, то это уже говорит о попытке взломщиком подобрать пароль случайным образом или по словарю (атака brute force);
□
private параметр
— возможность использовать команды wu-ftp-сервера
SITE GROUP
и
SITE GPASS
(в других FTP-серверах этих команд может и не быть) для смены группы (значение параметра
yes
). Если пользователь укажет верную группу и пароль, то он получит права группы из файла ftpgroups;
□
deny адрес файл
— запрет доступа клиентов с указанного адреса. В случае попытки подключения выводится сообщение из текстового файла, указанного в качестве последнего параметра. Адрес может указываться в виде шаблона;
□
defumask mask
— маска прав доступа, используемая при создании новых файлов. О команде umask для ОС Linux (задает текущее значение маски) мы говорили в разд. 4.1;
□
limit-time тип минуты
— ограничение времени сессии. Например, вы хотите, чтобы определенные пользователи не засиживались на вашем FTP-сервере. Используя эту директиву, в качестве типа можно указать звездочку (*) для всех пользователей,
real
,
anonymous
или
guest
. Последний параметр — это количество минут сессии. По прошествии указанного времени соединение будет разорвано;
□
file-limit направление число класс
— ограничение на число передаваемых файлов. В качестве направления можно указать
in
(входящие),
out
(исходящие) и
total
(всего). Чтобы запретить работу более чем с 10 файлами, воспользуйтесь командой
file-limit total 10
;
□
byte-limit направление число
класс
— ограничение на число передаваемых байт. Работа директивы схожа с
file-limit
;
□
anonymous-root каталог
— задание в явном виде корневой директории для анонимных пользователей, т.к. у них не может быть собственного каталога в отличие от реального пользователя, для которого при подключении к системе корнем является его домашняя директория;
□
guest-root каталог
— аналогична предыдущей команде. Директива необходима, если вы хотите, чтобы все гости могли работать с одной и той же директорией. Если у каждого гостя должен быть свой каталог, то лучше для каждого из них явно создавать учетную запись (см. разд. 10.6).
□
passwd-check тип сообщение
— определяет проверку правильности пароля для анонимных пользователей. В данном случае имеется в виду контроль E-mail-адреса, который они используют. В качестве типа может указываться одно из трех значений:
none
(нет проверки),
trivial
(простая проверка на содержания в адресе символа "@)" или
rfc882
(полная проверка, на соответствие стандарту rfc 822). Параметру
сообщение
можно присваивать значение
warn
(выводить предупреждение, но продолжать работу) или
enforce
(отказать в доступе);
□
deny-email адрес
— отказ в доступе, если в качестве пароля используется указанный адрес. В большинстве FTP-клиентов в настройках прописан для анонимного доступа какой-либо почтовый ящик, например, my@mail.com. Мало кто меняет этот адрес. Так как он соответствует всем правилам, то сервер не определит, что это обманка. Но можно прописать его в этом параметре, и тогда пользователю придется поменять в настройках FTP-клиента адрес на другой, иначе он не сможет подключиться. Но даже это не будет гарантировать, что анонимный пользователь указал именно свой E-mail в качестве пароля;
□
deny-uid идентификаторы
— запрещает доступ к FTP пользователям с указанными идентификаторами. Те же самые функции выполняет файл ftpusers, который мы рассмотрим в разд. 10.5. Удобство этой команды в том, что можно задать диапазоны. Например,
deny-uid %-500
. Данная директива запретит доступ всем пользователям, у которых идентификатор менее 500;
□
deny-gid идентификаторы
— запрещает доступ к FTP пользователям группы, с указанными идентификаторами. Те же самые функции выполняет файл ftpusers;
□
restricted_uid идентификаторы
— разрешает гостевому пользователю с указанным ID получать доступ к директориям вне его домашнего каталога;
□
restricted_gid идентификаторы
— дает право группе пользователей с указанным ID получать доступ к директориям вне домашнего каталога;
□
unrestricted_uid идентификаторы
— запрещает гостевому пользователю с указанным ID получать доступ к директориям вне его домашнего каталога;
□
unrestricted_gid идентификаторы
— запрещает группе пользователей с указанным ID получать доступ к директориям вне домашнего каталога;