Разработка рекомендаций по защите web-серверов Apache
|
Внимание!
Купить работу: |
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе по дисциплине
«Вычислительные системы»
на тему:
«Разработка рекомендаций по защите web-серверов Apache»
РЕФЕРАТ
Пояснительная записка содержит 25 страниц.
Цель работы: разработать рекомендации по установке, конфигурированию, обслуживанию и защите популярного Web-сервера Apache
В данной курсовой работе рассмотрены вопросы функционирования Web-сервера Apache, тонкие аспекты его настройки и конфигурирования
APACHE, INTERNET, HTTP, CGI, MOD_SSL
СОДЕРЖАНИЕ
ВВЕДЕНИЕ...………………………………………………………….……………..4
1 ОБЩИЕ СВЕДЕНИЯ О ПРОТОКОЛЕ HTTP……………..…………………….5
1.1 Структура протокола.………………….…………….……………………………………5
1.2 Коды ответа и перенаправление….……………………………….……………………..6
2 УСТАНОВКА И НАСТРОЙКА APACHE….……………………………….…...9
2.1 Получение и инсталляция Apache….…………………………...….……………………9
2.2 Схема расположения файлов сервера Apache….……………………………….………9
2.3 Конфигурирование сервера Apache….…………………………....….………………….9
2.3.1 Использование httpd.conf….…………………………………………………….10
2.3.2 Использование файлов .htaccess и заменяющих опций….……………………11
2.3.3 Виртуальный хостинг….………………………….……………………………..12
2.4 Запуск и останов демона HTTP….……………………………..….……………………14
3 НАСТРОЙКА КОНТРОЛЯ ДОСТУПА К СЕРВЕРУ…………………………16
3.1 Контроль доступа по адресу….……………………………….………………………..16
3.2 Контроль доступа по паролю….……………………………….………………………17
3.3 Контроль доступа по адресу и паролю….……………………………..….…………...19
4 ЗАЩИТА СЕРВЕРА APACHE………………………………………………….20
4.1 Система Apache-SSL….……………………………….………………………….……..20
4.1.1 Сервер Apache с модулем mod_ssl….………………………….……………….20
4.1.2 Эксплуатация защищенного Web-сервера….………………………….………21
4.2 Повышение безопасности сценариев CGI с помощью системы CGIwrap….………..21
4.2.1 Плохо написанные сценарии CGI….………………………………….………..21
4.2.2 Использование системы CGIwrap…….……………………….………………..22
ВЫВОДЫ………………………………………………………………………...…24
СПИСОК ИСТОЧНИКОВ………..………………….……………………….……25
ВВЕДЕНИЕ
Сейчас трудно оценить, что сильнее загружает современный Internet – электронные сообщения или Web-приложения. Хотя электронная почта навсегда изменила способы обмена сообщениями, тем не менее по своей значимости ничто не может сравниться с рождением Web-пространства — новой среды для развлечения и коммерции.
Предположим, что при настройке сервера с FreeBSD требуется установить Web-сервер, а также обеспечить пересылку электронной почты и доступ пользователей к командному интерпретатору. В конфигурацию FreeBSD по умолчанию включена Sendmail — система, предоставляющая почтовые службы и не требующая никакой дополнительной конфигурации. С другой стороны, никакой эквивалент Web-сервера по умолчанию не устанавливается. Поэтому его необходимо инсталлировать самостоятельно из портов или пакетов. В 90% случаев в качестве Web-сервера используется Apache. Существует и несколько альтернативных серверов (например, Roxen или AOLserver), но Apache занял значительную долю рынка среди серверов Internet, поскольку был первой альтернативой серверу NCSA httpd.
В наши дни Apache пользуется гораздо большей популярностью, чем, допустим, Sendmail, и при этом практически не испытывает давления со стороны конкурентов. Проект Apache — один из лучших примеров философии программного обеспечения с открытым кодом в действии. Этот проект дал миру программное обеспечение, которое работает надежней, чем другие альтернативные серверы. Кроме того, оно лучше совместимо с утвержденными стандартами. Apache приспособлен к любым типам сред — начиная от небольших информационных Web-сайтов с низким трафиком и заканчивая полномасштабными серверами электронной коммерции с сотнями параллельных соединений. Плюс ко всему он поддерживает набор подключаемых модулей, обеспечивающих такие дополнительные возможности, как связь с базами данных и встроенная обработка сценариев на языке Perl.
1 ОБЩИЕ СВЕДЕНИЯ О ПРОТОКОЛЕ HTTP
1.1 Структура протокола
HyperText Transfer Protocol (HTTP, протокол передачи гипертекста) — основа World Wide Web. Разработанный в 1993 году для поддержки обмена информацией в центре CERN (Швейцария), он представляет собой простейший протокол, не требующий аутентификации и включающий лишь несколько команд с клиентской стороны. Первоначально он был оптимизирован для пересылки небольших текстовых файлов. HTTP обеспечивает распространение связанных между собой информационных страниц, язык форматирования которых (понятный НТТР-браузерам) был разработан относительно недавно. Он называется HyperText Markup Language (HTML, язык разметки гипертекста).
В настоящее время использование HTTP вышло далеко за пределы его первоначальной спецификации. Сейчас этот протокол используется для пересылки больших двоичных файлов, изображений, анимации и других элементов HTML-страниц. На заре WWW это было редкостью (поддержка форматов изображений GIF и JPEG начала распространяться на различных платформах лишь в 1994 году). Отвечая велениям времени, спецификации HTTP были несколько изменены. Наиболее важным является стандарт НТТР/1.1, поддерживающий такие свойства, как конвейеры (объединение нескольких одновременных запросов в один ответный поток). Большинство браузеров следует этому стандарту лишь частично.
В отличие от SMTP, FTP и других популярных протоколов, HTTP не поддерживает "сеансы". Когда клиент соединяется с сервером, HTTP производит несколько операций, а потом закрывает соединение. HTTP при соединении позволяет выполнить только один запрос. Кроме того, это означает, что данный протокол не поддерживает топологические свойства, ассоциированные с таким протоколом, как, например, SMTP: переключение (relaying), записи MX, очереди и т.д. Поэтому по мере увеличения числа одновременных соединений администратору HTTP-сервера приходится больше думать о полосе пропускания, ресурсах процессора и памяти, заботиться об их наиболее эффективном использовании.
Структура запроса в протоколе НТТР/1.0 чрезвычайно проста. Эмулировать операцию HTTP можно, подключившись к порту 80 на HTTP-сервере и выполнив запрос GET, который может содержать несколько строк следующего вида:
# telnet www.somewhere.com 80
Connected to www.somewhere.com.
Escape character is '^]'.
GET / НТТР/1.0
HTTP/I.I 200 OK
Date: Sun, 20 May 2001 22:45:55 GMT
Server: Apache/1.3.20 (Unix)
Content-Location: index.html
Vary: negotiate,accept-language,accept-charset
TCN: choice
Last-Modified: Fri, 31 Mar 2000 01:45:46 GMT
ETag: "6531f-54e-38e4034a;3a977613"
Accept-Ranges: bytes
Content-Length: 1358
Connection: close
Content-Type: text/html
Content-Language: en
Expires: Sun, 20 May 2001 22:45:55 GMT
test page
test
Чтобы получить только заголовки (а не полное сообщение), следует выполнить: запрос HEAD. Ввод пустой строки (двойное нажатие на клавишу Enter) указывает на окончание многострочного запроса.
Первый блок строк в ответе представляет собой заголовок. По его содержимому. легко определить, какой HTTP-сервер возвратил его, поскольку каждый сервер имеют уникальную сигнатуру в строке Server:. Остальные строки, особенно строка Content-*:, содержат информацию, которая помогает Web-браузеру правильно отформатировать страницу. Например, Content-Length: указывает браузеру, сколько данных осталось загрузить, a Content-Type: — как представить запрошенный файл (HTML, обычный текст, изображение GIF или JPEG и т.д.).
HTTP/1.0 позволяет включать в запрос дополнительные строки, например, наборы cookies, допустимые кодировки, предпочтительные языки и т.д. Кроме строки запроса (которая должна быть первой), порядок строк не имеет значения. Они являются дополнительными, обязательна лишь сама строка запроса. Запрос НТТР/1.1 практически совпадает с HTTP/1.0, за исключением того, что вторая строка (Host:) также является обязательной. Это дополнение к протоколу предназначено для поддержки виртуального хостинга (когда один Web-сервер может отзываться на несколько разных хостовых имен). Это значит, что клиент должен указать имя хоста, Web-содержимое которого он хочет получить. Поскольку Web-браузер определяет IP-адрес по имени хоста, указанного пользователем, и затем устанавливает HTTP-соединение с этим IP-адресом (о работе TCP/IP рассказано в главе 22), сервер ничего не знает об имени хоста, к которому пытается обратиться пользователь. Поэтому клиенту и необходимо указать заголовок Host:.
# telnet www.somewhere.com 80
Connected to www.somewhere.com.
Escape character is '^]'.
GET / HTTP/1.1
Host: www.somewhere.сою
Все современные браузеры, включая и текстовые (типа Lynx), поддерживают стандартный для HTTP/I.I заголовок Host:. (Однако они не обязательно формируют свои запросы так, как HTTP/I.I. Например, Netscape Navigator поддерживает множество свойств HTTP/I.I, но посылает запросы HTTP/1.0.) Таким образом, виртуальный хостинг, основанный на информации из заголовка Host: (а не на IP-адресе и псевдонимах сетевого уровня), значительно упрощает настройку серверов.

kursovoy.doc











+7(901)9030266
doc-market.com