— выдать сообщение, если клиент не имеет обратного адреса. При отсутствии параметра
override
соединение будет завершено;
□
dns refuse_mismatch файл override
— выдать сообщение, если прямой и обратный адреса не совпадают. Если не указать параметр
override
, то соединение будет завершено. По умолчанию я всегда включаю эту опцию, а отключаю, только если у действительных пользователей возникают проблемы при работе с сервером. Это необходимо для того, чтобы взломщик не мог
подделать IP-адрес для входа в систему и обхода соответствующей проверки.
10.3.2. Контроль загрузки файлов
Загрузка файлов — самая опасная возможность для сервера. Каждый пользователь должен иметь право обращаться только к своей директории. А что делать, чтобы анонимные пользователи тоже могли работать с файлами? В этом случае нужно по возможности запретить загрузку в уязвимые с точки зрения безопасности директории, куда злоумышленник может поместить скрипты и выполнить их.
upload параметры
— команда позволяет настроить права на загрузку файлов в определенные каталоги. Для запрета загрузки в каталог /etc нужно написать следующую строку:
upload /etc no
Давайте посмотрим, как можно разрешить загрузку в директорию:
upload /home yes root root 0600 nodir
В данной строке разрешается загрузка файлов в директорию /home. Третий и четвертый параметры определяют владельца и группу, которые будут установлены для файла. В обоих случаях я указал root, чтобы простой смертный после загрузки ничего не смог сделать с документом. Далее идут права доступа на файл —
0600
, т.е. читать и писать в него сможет только администратор, а все остальные отдыхают. Последний параметр равен
nodir
, что соответствует запрету на создание директорий.
Следующий пример разрешает создавать директории:
upload /home/robert yes root root 0600 dir 0700
Предпоследний параметр равен
dir
, что позволяет создавать директории. Последний параметр 0700 — это права доступа на каталог (только администратору разрешено все). Изменение этого значения позволяет сделать возможной работу с файлами только администратору root. Даже если злоумышленник загрузит в указанную директорию свою программу, выполнить он ее не сможет, не имея соответствующих прав.
Запретите загрузку файлов в любые системные директории, открытые пользователям для просмотра. Если вы используете исключительно гостевой доступ, когда пользователь может работать только в своем окружении, то в этом уже нет крайней необходимости.
10.3.3. Доступ по операциям
Помимо этого, в файле ftpaccess может быть описание основных операций и прав доступа к ним. В общем виде это выглядит следующим образом:
Действие yes|no пользователь
В качестве действия можно указать одно из следующих значений:
chmod
,
delete
,
overwrite
,
rename
или
umask
. Затем идет разрешение (
yes
) или запрет (
no
). Потом через запятую могут перечисляться типы пользователей (
anonymous
,
guest
или
real
) или указывается класс (
class=имя_класса
).
По умолчанию все действия и для всех пользователей разрешены. Но вполне логичным будет запретить удаление, изменение атрибутов, переименование или перезапись файлов неавторизованным (anonymous) пользователям.
Например, в листинге 10.2 для запрещения доступа к операциям есть следующие строки:
chmod no anonymous,guest
delete no anonymous
overwrite no anonymous
rename no anonymous
10.3.4. Информационные директивы
Эти директивы отвечают за информационные сообщения, которые видит пользователь, работая с вашим FTP-сервером:
□
banner имя
— в качестве имени можно указать текстовый файл, содержимое которого будет передано пользователю во время входа в систему. Этот файл может содержать приветствие, полезную информацию или правила использования вашего FTP-сервера. Вы должны помнить, что баннер виден пользователю еще до авторизации, поэтому здесь не должно быть никаких сведений, которые помогут хакеру при взломе;
□
greeting параметр
— определяет, какую информацию выдавать пользователю о системе после отображения баннера. Это текстовая строка, которая может выглядеть следующим образом: "220 flenovm.ru FTP server (Version wu-2.6.2-5) ready.". Как мы уже говорили ранее (см. разд. 10.1), эта строка отображается до авторизации, и в ней содержится информация о системе и версии используемого FTP-сервера. Это лишнее, злоумышленник не должен видеть этого, лучше выводить минимум полезного или даже что-то запутывающее. В качестве параметра можно использовать одно из следующих значений:
•
full
— полная информация, включая имена хоста и программы и версия;
•
brief
— отображать сокращенную информацию, включающую только имя хоста;
•
terse
— только сообщение о готовности системы к работе;
•
text
— собственное сообщение.
Больше всего мне нравится последний параметр. При его использовании через пробел нужно указать текст, который будет отображен пользователю, например:
greeting text строка
На собственных серверах я использую сообщения именно этого типа (одно из двух):
greeting text flenovm.ru FTP Server (MS IIS 4.1.0) ready
или
greeting text flenovm.ru FTP Server (cd-ftpd 2.1.9) ready
Увидев любое из этих сообщений, хакер не сможет определить, какой FTP-сервер реально установлен. В первом случае он подумает, что имеет дело с IIS (Internet Information Services, информационные сервисы Интернета) разработки Microsoft, который может работать только в среде Windows. Это может сбить с толку любого, даже опытного хакера. Но, проверив сервер специальными утилитами, он увидит, что реально используется Linux (точную версию такие утилиты, чаще всего, не могут определить) и догадается, что его просто кидают.