KnigaRead.com/

Михаил Флёнов - Linux глазами хакера

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Михаил Флёнов, "Linux глазами хакера" бесплатно, без регистрации.
Перейти на страницу:

□ 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 получать доступ к директориям вне домашнего каталога;

□ dns refuse_no_reverse файл override — выдать сообщение, если клиент не имеет обратного адреса. При отсутствии параметра 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 (точную версию такие утилиты, чаще всего, не могут определить) и догадается, что его просто кидают.

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

Можно притвориться, что у вас установлен сервер ProFTP, который реально существует и тоже достаточно часто используется администраторами Linux;

□ hostname имя — параметр определяет имя локального хоста по умолчанию;

□ email адрес — это адрес электронной почты администратора;

□ message файл тип — содержимое указанного текстового файла, отображается пользователю в следующих случаях:

 • при входе в систему, если в качестве типа задано слово LOGIN;

 • при смене директории, если в качестве типа указано CWD=каталог и пользователь вошел в указанный каталог.

10.3.5. Журналирование

Некоторые администраторы фиксируют только действия анонимных и гостевых пользователей. Это обосновывается тем, что реальные пользователи системы не будут портить сервер, который им нужен для работы или обмена файлами. В корне неверное мышление, потому что достаточно много взломов совершается именно real-пользователями, да и злоумышленники, чаще всего, используют их.

Навредить серверу через гостевую или анонимную учетную запись слишком сложно, а при правильном распределении прав невозможно (только если есть ошибка в программе сервера). В большинстве случаев злоумышленник стремится заполучить доступ к авторизованной учетной записи и использовать ее.

Если произошло что-то неординарное, то, используя журналы, вы должны получить максимальную информацию о происшедшем и сделать все необходимое, чтобы это не повторилось (к вопросу журналирования мы еще вернемся в гл. 12).

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*