Михаил Флёнов - Linux глазами хакера
- Название:Linux глазами хакера
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2005
- Город:Санкт-Петербург
- ISBN:5-94157-635-8
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Михаил Флёнов - Linux глазами хакера краткое содержание
Рассмотрены вопросы настройки ОС Linux на максимальную производительность и безопасность. Описаны потенциальные уязвимости и рекомендации по предотвращению возможных атак. Дается подробное описание настройки прав доступа и конфигурирования сетевого экрана. Показано, как действовать при атаке или взломе системы, чтобы максимально быстро восстановить ее работоспособность и предотвратить потерю данных.
Для пользователей, администраторов и специалистов по безопасности
Linux глазами хакера - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
□
ServerType
— тип сервера, может принимать значения inetd
или Standalone
. Если выбрать inetd
, то такие параметры, как порт, игнорируются. а используются значения из конфигурации демона inetd
( см. разд. 5.4 );
□
ServerRoot
— корневая директория, в которой находятся файлы конфигураций и журналы;
□
Timeout
— предельное время ожидания в секундах для получения и отправки пакетов;
□
Port
— порт, на котором будет работать сервис. По умолчанию и для общедоступных серверов используется значение 80. Но для закрытых серверов, которыми пользуется узкий круг людей, можно изменить значение, например, на 10387. В этом случае в качестве адреса страницы надо использовать URL типа ИмяСервера:10387
(например, www.linux.com:10387/index.htm
). Таким образом, не зная порта, злоумышленник не сможет проникнуть в систему, пока не просканирует весь диапазон портов и не выяснит, что 10387 — это порт Web-сервера. Это простейшая, но достаточно эффективная защита от скриптеров, которые обладают минимумом знаний о безопасности и взламывают компьютеры только с помощью сплоитов, написанных другими хакерами;
□
ServerTokens
— при обращении к серверу возвращает заголовок с подробной информацией о системе, которая включает версии Apache, ОС Linux и всех имеющихся модулей. Если хакер узнает, что на сервере установлена старая версия интерпретатора PHP (или любой другой программы), то на взлом уйдет намного меньше времени. Болтливые параметры необходимо отключать, а информацию о сервере прятать. ServerTokens
может принимать одно из следующих значений:
•
Full
— отображать полную информацию о сервере и установленных модулях, включая их версии. Самое опасное для сервиса — это использование именно этого параметра;
•
Min
— показать минимум сведений (только название сервера и установленные модули). Иногда даже такой простой список без версий может сказать хакеру слишком много;
•
ProductOnly
— только название сервера, в нашем случае Apache вернет свое имя (apache) без указания версий. Вот это как раз то, что нам нужно.
Очень опытные администраторы могут даже подменить имя сервера, но для этого необходимо будет перекомпилировать исходные коды Apache. Заголовок хранится в файле include/ap_releas.hв виде следующих двух строк:
#define SERVER_BASEPRODUCT "Apache"
#define SERVER_BASEVERSION "2.0"
Подставьте имя какого-либо другого сервера. Желательно, чтобы оно было похоже на реальность, иначе профессиональный хакер сразу заметит обман.
В более ранних версиях Apache расположение файла было другим, но мы же договорились, что устанавливать надо все только последнее;
□
HostnameLookup
— если установлено значение on
, то IP-адрес клиента, запросившего данные с сервера, будет преобразован в доменное имя, иначе будет использоваться IP-адрес;
□
User
и Group
— группа и имя пользователя, с правами которого будет работать сервис. По умолчанию в Linux для этих параметров используется Apache. Этот пользователь и группа должны обладать минимальными правами в системе, которые только необходимы для работы Web-сервера и его модулей. Ничего лишнего разрешать им нельзя;
□
ErrorLog
и CustomLog
— определяют местоположение журналов;
□
LogLevel
— обусловливает, что будет писаться в журнал. Можно указать одно из следующих значений: emerg
, alert
, crit
, error
, warn
, notice
, info
, debug
;
□
KeepAlive
— разрешение обрабатывать несколько запросов за одно соединение. По умолчанию этот параметр выключен ( off
), и для получения каждого файла требуется отдельное соединение. Это неэффективно и приводит к расходу лишних ресурсов. Допустим, что пользователь запросил страницу с 10 картинками. В ответ на это браузер клиента страницу с 10 картинками. В ответ на это браузер клиента откроет одиннадцать соединений с Web-сервером (одно для получения документа html и десять — для картинок документа). Если включить этот параметр, то за одно подключение может быть обработано несколько запросов;
□
MaxKeepAliveRequests
— максимальное число запросов, которое может быть выполнено в течение одного соединения;
□
KeepAliveTimeout
— время ожидания в секундах очередного запроса от одного и того же клиента. Если за указанный период запрос не поступит, то соединение завершается;
□
MaxClients
— максимальное количество клиентов, которые могут подключиться одновременно. Если сделать это значение слишком большим, то злоумышленник сможет произвести атаку DoS (отказ от обслуживания), открыв слишком много соединений, с которыми не справится сервер. По умолчанию установлено 150, но этого будет достаточно только для небольшого сервера. Apache способен обработать намного больше даже на слабеньком железе. Вы должны указать такое значение, при котором сервер сможет обрабатывать максимальное число запросов и при этом успешно работать (не зависнуть) с предельной загрузкой;
□
MaxRequestsPerChild
— число запросов, которое позволено обрабатывать дочернему процессу до переполнения. Если Apache или используемые им библиотеки допускают некорректную работу с памятью (выделяют, но не освобождают) или другими ресурсами, то во избежание проблем при длительной непрерывной работе сервера дочерний процесс при переполнении будет принудительно завершен. Большинству систем это не требуется, но некоторые (например, Solaris) страдают заметными "утечками" в библиотеках.
7.2. Модули
При настройке сервиса Apache очень важным звеном являются модули. Загрузка их описана в конфигурационном файле /etc/httpd/conf/httpd.confследующим образом:
LoadModule perl_module modules/libperl.so
В первой строке проверяется параметр
HAVE_PERL
. Если он установлен, то команда LoadModule
загружает модуль modules/libperl.so, необходимый для интерпретации Perl-сценариев.
Следом идет подключение модулей, которое похоже на загрузку, но используется команда
AddModule
:
AddModule mod_perl.c
По умолчанию загружаются все установленные модули или те, которые включены в дистрибутив. Но ото не оптимально, потому что разработчик не может знать, что нам понадобится. Рассмотрим основные модули поддержки сценариев, которые могут загружаться:
□ perl_module — Perl;
□ php_module — PHP;
□ php3_module — PHP версии 3;
□ php4_module — PHP версии 4:
□ python_module — на языке Python.
Эти модули являются наиболее опасными для Web-сервера, потому что позволяют выполнять сценарии, через которые могут происходить взломы. Например, воспользовавшись ошибкой в сценарии PHP, злоумышленник может выполнять какие-либо команды на сервере. Хорошие сайты используют какой-то один язык Web-программирования: Perl, PHP или Python, и вы должны оставить только тот модуль, который необходим, а остальные лучше отключить.
Интервал:
Закладка: