Михаил Флёнов - Linux глазами хакера
- Название:Linux глазами хакера
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2005
- Город:Санкт-Петербург
- ISBN:5-94157-635-8
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Михаил Флёнов - Linux глазами хакера краткое содержание
Рассмотрены вопросы настройки ОС Linux на максимальную производительность и безопасность. Описаны потенциальные уязвимости и рекомендации по предотвращению возможных атак. Дается подробное описание настройки прав доступа и конфигурирования сетевого экрана. Показано, как действовать при атаке или взломе системы, чтобы максимально быстро восстановить ее работоспособность и предотвратить потерю данных.
Для пользователей, администраторов и специалистов по безопасности
Linux глазами хакера - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
□
DocumentRoot
— директория, в которой расположен корневой каталог сайта;
□
ServerName
— имя сервера. Если оно не указано, то используется локальный IP-адрес сервера.
Директивы
ErrorLog
и CustomLog
нам уже знакомы. После этого в нашем примере идет указание прав доступа на директорию /var/www/your_server/, которая является корнем для виртуального Web-сервера. Разрешения можно устанавливать как внутри объявления виртуального сервера, так и вне его.
За более подробной информацией обратитесь к документации по Apache.
7.5. Замечания по безопасности
В конфигурационном файле /etc/httpd/conf/httpd.confесть несколько директив, которые позволяют управлять безопасностью. Эти же команды можно указывать в файле .htaccess. Давайте их рассмотрим:
□
AuthType параметр
— тип аутентификации. В качестве параметра можно использовать одно из значений: Basic или Digest;
□
AuthGroupFile параметр
— файл, в котором хранится список групп пользователей;
□
AuthUserFile параметр
— файл, содержащий имена пользователей и пароли. Этот список лучше формировать утилитой htpasswd;
□
AuthAuthoritative параметр
— способ проверки прав. По умолчанию директива включена ( on
). Если директива выключена ( off
), а пользователь не указал имя, то его аутентификация осуществляется другими модулями, например по IP-адресу;
□
AuthDBMGroupFile
и AuthDBMUserFile
— аналогичны AuthGroupFile
и AuthUserFile
, но в качестве параметра указывается файл в формате базы данных Berkley-DB.
Эти команды помогут вам настроить идентификацию пользователей при обращении к определенным директориям. Например, если у вас есть каталог, работа с которым разрешена только авторизованными пользователями, то можно указать файл паролей, в соответствии с которым доступ к файлам будет запрещен самим сервером.
7.5.1. Файлы .htaccess
Если какая-либо директория Web-сервера должна иметь особые права, то лучше создать в этом каталоге файл .htaccess. Разрешения, описанные в таком файле, действуют на директорию, в которой он находится. Рассмотрим пример содержимого файла .htaccess:
AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /pub/home/flenov/passwd
Require valid-user
В данном файле для текущей директории указывается тип аутентификации Basic. Это значит, что будет использоваться окно для ввода имени и пароля. Текст, указанный в директиве
AuthName
, отобразится в заголовке окна. На рис. 7.2 приведен пример такого окна.
Рис. 7.2. Окно запроса имени и пароля
Директива
AuthUserFile
задает файл, в котором находится база имен и паролей пользователей сайта. Последняя команда Require
в качестве параметра использует значение valid-user
. Это значит, что файлы в текущей директории смогут открыть только те пользователи, которые прошли аутентификацию.
Вот таким простым способом можно запретить неавторизованный доступ к директории, содержащей секретные данные или сценарии администратора.
Как я уже говорил, в файле .htaccessмогут находиться и директивы типа
allow from
, которые мы рассматривали выше ( см. разд. 7.3 ).
Например, если нужно разрешить доступ только с определенного IP-адреса, то в файле может содержаться следующая строка:
allow from 101.12.41.148
Если объединить защиту директивой
allow from
и требование ввести пароль, то задача хакера по взлому сервера сильно усложнится. Здесь уже недостаточно знания пароля, необходимо иметь конкретный IP-адрес для обращения к содержимому директории, а это требует значительных усилий.
Эти же параметры можно указывать и в файле httpd.conf, например:
AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /pub/home/flenov/passwd
Require valid-user
Чем будете пользоваться вы, зависит от личных предпочтений. Мне больше нравится работать с файлом .htaccess, потому что настройки безопасности будут храниться в той же директории, на которую устанавливаются права. Но это небезопасно, потому что хакер может получить возможность прочитать этот файл, а это лишнее.
Использование централизованного файла httpd.confдает преимущества, т.к. он находится в директории /etc, которая не входит в корень Web-сервера и должна быть запрещена для просмотра пользователям.
7.5.2. Файлы паролей
Теперь нам предстоит узнать, как создаются файлы паролей и как ими управлять. Директива
AuthUserFile
для хранения информации об авторизации использует простой текстовый файл, в котором содержатся строки следующего вида:
flenov:{SHA}lZZEBt.Py4/gdHsyztjUEWb0d90E=
В этой записи два параметра, разделенных двоеточием. Сначала указано имя пользователя, а после разделителя — зашифрованный по алгоритму MD5 пароль. Формировать такой файл вручную сложно и не имеет смысла, поэтому для облегчения жизни администраторов есть утилита htpasswd. С помощью этой программы создаются и обновляются имена и пароли для базовой аутентификации Web-сервером HTTP-пользователей.
Удобство программы состоит в том, что она может шифровать пароли и по алгоритму MD5, и с помощью системной функции
crypt()
. В одном файле могут находиться записи с паролями обоих типов.
Если вы храните имена и пароли в формате базы данных DBM (для указания этого в файле .htaccessиспользуется директива
AuthDBMUserFile
), то для управления БД нужно применять команду dbmmanage
.
Давайте рассмотрим, как пользоваться программой htpasswd. Общий вид вызова команды выглядит следующим образом:
htpasswd параметры файл имя пароль
Пароль и имя файла являются необязательными, и их наличие зависит от указанных опций. Давайте посмотрим основные ключи, которые нам доступны:
□
-c
— создать новый файл. Если указанный файл уже существует, то он перезаписывается, и старое содержимое теряется. Пример использования команды:
htpasswd -c .htaccess robert
После выполнения этой директивы перед вами появится приглашение ввести пароль для нового пользователя robert и подтвердить его. В результате будет создан файл .htaccess, в котором будет одна запись для пользователя robert с указанным вами паролем;
□
-m
— использовать модифицированный Apache алгоритм MD5 для паролей. Это позволит переносить созданный файл на любую другую платформу (Windows, Unix, BeOS и т.д.), где работает Web-сервер Apache. Такой ключ удобен, если у вас разнородная сеть, и один файл с паролями используется на разных серверах;
Интервал:
Закладка: