Веб-сервер apache: установка, настройка и способы защиты от атак

Hostnames and DNS

In order to connect to a server, the client will first have to resolve
the servername to an IP address — the location on the Internet where the
server resides. Thus, in order for your web server to be reachable, it
is necessary that the servername be in DNS.

If you don’t know how to do this, you’ll need to contact your network
administrator, or Internet service provider, to perform this step for
you.

More than one hostname may point to the same IP address, and more
than one IP address can be attached to the same physical server. Thus, you
can run more than one web site on the same physical server, using a
feature called virtual hosts.

If you are testing a server that is not Internet-accessible, you
can put host names in your hosts file in order to do local resolution.
For example, you might want to put a record in your hosts file to map a
request for to your local system, for
testing purposes. This entry would look like:

A hosts file will probably be located at or
.

Requirements

Для построения Apache httpd существуют следующие требования:

АПР и АПР-Утилита
Убедитесь, что в вашей системе уже установлены APR и APR-Util. Если вы этого не сделаете или предпочитаете не использовать версии, предоставленные системой, загрузите последние версии APR и APR-Util из Apache APR , распакуйте их в и (убедитесь , что имена каталогов не имеют номеров версий, например, распределение апреля должно быть в / httpd_source_tree_root / srclib / Апрель /) и использовании «s варианта. На некоторых платформах вам может потребоваться установить соответствующие пакеты , чтобы позволить httpd выполнить сборку с вашей установленной копией APR и APR-Util.
Perl-совместимая библиотека регулярных выражений (PCRE)
Эта библиотека обязательна, но больше не связана с httpd. Загрузите исходный код с http://www.pcre.org или установите порт или пакет. Если ваша система сборки не может найти сценарий pcre-config, установленный сборкой PCRE, укажите на него с помощью параметра . На некоторых платформах вам, возможно, придется установить соответствующий пакет , чтобы разрешить сборку httpd для вашей установленной копии PCRE.
Дисковое пространство
Убедитесь,что у вас есть как минимум 50 МБ свободного места на временном диске.После установки сервер занимает приблизительно 10 MB дискового пространства.Фактические требования к дисковому пространству будут значительно варьироваться в зависимости от выбранных вами вариантов конфигурации,любых модулей сторонних производителей и,конечно же,размера веб-сайта или сайтов,которые у вас есть на сервере.
Система компиляции и сборки ANSI-C
Убедитесь, что у вас установлен компилятор ANSI-C. Компилятор GNU C (GCC) от Free Software Foundation (FSF) рекомендуется. Если у вас нет GCC, по крайней мере, убедитесь, что компилятор вашего поставщика совместим с ANSI. Кроме того, ваш должен содержать базовые инструменты сборки, такие как .
Точное соблюдение времени
Элементы протокола HTTP выражаются как время суток. Итак, пришло время исследовать установку какого-либо средства синхронизации времени в вашей системе. Обычно для этой цели используются программы или , основанные на протоколе сетевого времени (NTP). См. Домашнюю страницу NTP для более подробной информации о программном обеспечении NTP и общедоступных серверах времени.
Perl 5
Для некоторых вспомогательных сценариев, таких как или (которые написаны на Perl) требуется интерпретатор Perl 5 (достаточно версии 5.003 или новее). Если интерпретатор Perl 5 не найден сценарием , вы не сможете использовать уязвимые сценарии поддержки. Конечно, вы все равно сможете создавать и использовать Apache httpd.

Дополнительная настройка

В дополнение к перечисленным выше настройкам нужно проверить значение параметра Listen, которым задаются настройки сетевого интерфейса (ip-адрес и номер TCP-порта), на котором сервер будет принимать клиентские подключения. Если Apache используется индивидуальным Web-разработчиком, то можно рекомендовать такую конфигурацию:

Listen 127.0.0.1:8080 # параметры сетевого интерфейса

Номер TCP-порта не должен конфликтовать с другим программным обеспечением, установленным на компьютере. Так, стандартный порт HTTP 80 часто бывает занят клиентом Skype. Для совместного использования сервера в сети нужно указать правильный IP-адрес или сетевое имя компьютера, на котором устанавливается Web-сервер.

Web-сервер Apache чаще всего используется совместно с интерпретаторами таких языков серверных сценариев, как PHP и Perl. Для того, чтобы на Web-сайте могли использоваться сценарии PHP (предполагаем, что PHP установлен в папку C:\PHP5), нужно добавить в конфигурационный файл «D:\www\conf\httpd.conf» следующие строки:

  1. LoadModule php5_module «C:/PHP5/php5apache2_2.dll»
  2. AddType application/x-httpd-php .php
  3. PHPIniDir «C:/PHP5»

Нужно отметить, что в папке PHP5 должен существовать конфигурационный файл php.ini, созданный на основе файла php.ini-development (если сервер используется для разработки Web-сайтов) или php.ini-production (это настоящий Web-сервер). Чтобы модули PHP могли найти все необходимые им динамические библиотеки, путь к папке C:\PHP5 должен быть прописан в переменной PATH среды окружения Windows.

Серверные CGI-сценарии на языке Perl уже должны выполняться при соблюдении двух условий:

  1. Интерпретатор языка Perl установлен на этом компьютере.
  2. В первой строке файлов сценариев правильно указан путь к интерпретатору Perl, например: #!C:/PERL/bin/perl.exe -w

Для проверки можно ввести в браузере URL: http://localhost:8080/cgi-bin/printenv.pl, предварительно подправив первую строку сценария printenv.pl в соответствии с п. 2.

Остальные нюансы настройки Web-сервера Apache под Windows выходят за рамки этой статьи.

Serving the same content on different IP addresses (such as an internal and external address).

The server machine has two IP addresses (
and ). The machine is sitting between an
internal (intranet) network and an external (internet) network. Outside
of the network, the name resolves to
the external address (), but inside the
network, that same name resolves to the internal address
().

The server can be made to respond to internal and external requests
with the same content, with just one section.

<VirtualHost 192.168.1.1 172.20.30.40>
    DocumentRoot "/www/server1"
    ServerName server.example.com
    ServerAlias server
</VirtualHost>

Now requests from both networks will be served from the same
.

Special Purpose Environment Variables

Interoperability problems have led to the introduction of
mechanisms to modify the way Apache behaves when talking to
particular clients. To make these mechanisms as flexible as
possible, they are invoked by defining environment variables,
typically with , though and could also be used, for example.

force-gzip

If you have the filter activated, this
environment variable will ignore the accept-encoding setting of
your browser and will send compressed output unconditionally.

force-no-vary

This causes any fields to be removed from
the response header before it is sent back to the client. Some
clients don’t interpret this field correctly; setting this
variable can work around this problem. Setting this variable
also implies force-response-1.0.

force-response-1.0

This forces an HTTP/1.0 response to clients making an HTTP/1.0
request. It was originally
implemented as a result of a problem with AOL’s proxies. Some
HTTP/1.0 clients may not behave correctly when given an HTTP/1.1
response, and this can be used to interoperate with them.

gzip-only-text/html

When set to a value of «1», this variable disables the
output filter provided by
for content-types other than
. If you’d rather
use statically compressed files,
evaluates the variable as well (not only for gzip, but for all
encodings that differ from «identity»).

no-cache

Available in versions 2.2.12 and later

When set, will not save an otherwise
cacheable response. This environment variable does not influence
whether a response already in the cache will be served for the current
request.

prefer-language

This influences ‘s behaviour. If
it contains a language tag (such as ,
or ), tries
to deliver a variant with that language. If there’s no such variant,
the normal negotiation process
applies.

redirect-carefully

This forces the server to be more careful when sending a redirect
to the client. This is typically used when a client has a known
problem handling redirects. This was originally implemented as a
result of a problem with Microsoft’s WebFolders software which has
a problem handling redirects on directory resources via DAV
methods.

suppress-error-charset

Available in versions after 2.0.54

When Apache issues a redirect in response to a client request,
the response includes some actual text to be displayed in case
the client can’t (or doesn’t) automatically follow the redirection.
Apache ordinarily labels this text according to the character set
which it uses, which is ISO-8859-1.

However, if the redirection is to a page that uses a different
character set, some broken browser versions will try to use the
character set from the redirection text rather than the actual page.
This can result in Greek, for instance, being incorrectly rendered.

Setting this environment variable causes Apache to omit the character
set for the redirection text, and these broken browsers will then correctly
use that of the destination page.

Security note

Sending error pages without a specified character set may
allow a cross-site-scripting attack for existing browsers (MSIE)
which do not follow the HTTP/1.1 specification and attempt to
«guess» the character set from the content. Such browsers can
be easily fooled into using the UTF-7 character set, and UTF-7
content from input data (such as the request-URI) will not be
escaped by the usual escaping mechanisms designed to prevent
cross-site-scripting attacks.

Apache и другие веб-сервера

Кроме Apache существует ещё довольно много веб-серверов. Каждое приложение веб-сервера создавалось для различных целей. Не смотря на то, что Apache является самый широко используемым, для него есть несколько альтернатив и конкурентов.

Apache или NGINX

Nginx произносится как Engine-X, это более новое веб-серверное программное обеспечение с первым релизом в 2004 году. Как на сегодня он добился большой популярности среди владельцев сайтов. Nginx был создан для решения так называемой проблемы c10k – проблемы 10 тысяч соединений, что означает, что веб-сервера, использующие потоки не могут обрабатывать запросы пользователей более, чем с 10 000 подключений одновременно.

  1. Так как Apache использует структуру основанную на потоках, владельцы сайтов с высоким трафиком могли столкнуться с проблемой производительности. Nginx один из веб-серверов, который был нацелен на решение проблемы c10k и возможно это одно из самых успешных решений.
  2. Nginx имеет событийно ориентированную архитектуру, которая не создаёт новый процесс для каждого запроса. Вместо этого он обрабатывает каждый входящий запрос в едином потоке. Этот главный процесс управляет несколькими рабочими процессами, которые выполняют непосредственную обработку запросов. Модель Nginx, основанная на событиях распространяет запросы пользователей среди рабочих процессов эффективным путём, что приводит к лучшей масштабируемости.
  3. Если вам нужно обслуживание сайта с высокой посещаемостью, то Nginx – отличный выбор, поскольку он может сделать это, затратив минимальные ресурсы. И не случайно он используется сайтами с большим количеством показов, такими как: Netflix, Hulu, Pinterest и Airbnb.
  4. Однако для мелких и средних игроков, Apache имеет несколько преимуществ в сравнении с Nginx, среди которых: более простая настройка, множество модулей и среда дружественная для начинающих.

Apache или Tomcat

Tomcat – это веб-сервер также разработанных Apache Software Foundation, поэтому его официальное название Apache Tomcat. Это тоже HTTP-сервер, однако он обрабатывает приложения Java вместо статических сайтов. Tomcat может запускать несколько Java спецификаций, таких как: Java Servlet, Java Server Pages (JSP), Java EL и WebSocket.

  1. Tomcat был разработан специально для приложений на Java, в то время как Apache позиционируется как HTTP-сервер. Вы можете использовать Apache совместно с другими языками программирования (PHP, Python, Perl и т.д.) с помощью специального модуля Apache (mod_php, mod_python, mod_perl и др.).
  2. Хотя вы и можете использовать сервер Tomcat для статических веб-страниц, но это будет менее эффективно, чем использование Apache. Например, Tomcat заранее загружает виртуальную машину Java и другие Java-библиотеки, которые могут быть ненужными для работы вашего сайта.
  3. Tomcat также хуже настраиваемых в сравнении с другими веб-серверами. Например, для запуска WordPress, лучшим выбором будет стандартный HTTP-сервер, такой как Apache или NGINX.

Running Apache as a Service ¶

Apache comes with a utility called the Apache Service Monitor.
With it you can see and manage the state of all installed Apache
services on any machine on your network. To be able to manage an
Apache service with the monitor, you have to first install the
service (either automatically via the installation or manually).

You can install Apache as a Windows NT service as follows from
the command prompt at the Apache subdirectory:

If you need to specify the name of the service you want to
install, use the following command. You have to do this if you
have several different service installations of Apache on your
computer. If you specify a name during the install, you have to
also specify it during any other -k operation.

If you need to have specifically named configuration files for
different services, you must use this:

If you use the first command without any special parameters except
, the service will be called
and the configuration will be assumed to be .

Removing an Apache service is easy. Just use:

The specific Apache service to be uninstalled can be specified by using:

Normal starting, restarting and shutting down of an Apache
service is usually done via the Apache Service Monitor, by using
commands like and or via normal Windows service management. Before
starting Apache as a service by any means, you should test the
service’s configuration file by using:

You can control an Apache service by its command line switches,
too. To start an installed Apache service you’ll use this:

To stop an Apache service via the command line switches, use
this:

or

You can also restart a running service and force it to reread
its configuration file by using:

By default, all Apache services are registered to run as the
system user (the account). The
account has no privileges to your network
via any Windows-secured mechanism, including the file system, named
pipes, DCOM, or secure RPC. It has, however, wide privileges locally.

Never grant any network privileges to
the account! If you need Apache to be able
to access network resources, create a separate account for Apache as
noted below.

It is recommended that users create a separate account for running
Apache service(s). If you have to access network resources via Apache,
this is required.

  1. Create a normal domain user account, and be sure to
    memorize its password.
  2. Grant the newly-created user a privilege of and . On Windows NT 4.0 these privileges are granted via
    User Manager for Domains, but on Windows 2000 and XP you probably
    want to use Group Policy for propagating these settings. You can
    also manually set these via the Local Security Policy MMC snap-in.
  3. Confirm that the created account is a member of the Users
    group.
  4. Grant the account read and execute (RX) rights to all document
    and script folders ( and
    for example).
  5. Grant the account change (RWXD) rights to the
    Apache directory.
  6. Grant the account read and execute (RX) rights to the
    binary executable.

It is usually a good practice to grant the user the Apache
service runs as read and execute (RX) access to the whole Apache2.5
directory, except the subdirectory, where the
user has to have at least change (RWXD) rights.

If you allow the account to log in as a user and as a service,
then you can log on with that account and test that the account has
the privileges to execute the scripts, read the web pages, and that
you can start Apache in a console window. If this works, and you
have followed the steps above, Apache should execute as a service
with no problems.

Error code 2186 is a good indication that
you need to review the «Log On As» configuration for the service,
since Apache cannot access a required network resource. Also, pay
close attention to the privileges of the user Apache is
configured to run as.

When starting Apache as a service you may encounter an error
message from the Windows Service Control Manager. For example,
if you try to start Apache by using the Services applet in the
Windows Control Panel, you may get the following message:

You will get this generic error if there is any problem with
starting the Apache service. In order to see what is really causing
the problem you should follow the instructions for Running Apache
for Windows from the Command Prompt.

Настройка дерева источников

Следующим шагом является настройка дерева исходного кода Apache для вашей конкретной платформы и личных требований. Это делается с помощью скрипта , включенного в корневой каталог дистрибутива. (Разработчикам, загружающим невыпущенную версию дерева исходных Apache, необходимо установить и и запустить buildconf перед переходом к следующим шагам. Это не обязательно для официальных выпусков.)

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

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

Также на этом этапе вы можете указать, какие вы хотите включить в Apache, включив и отключив модули . Apache поставляется с широким спектром модулей, включенных по умолчанию. Они будут скомпилированы как общие объекты (DSO), которые можно загружать или выгружать во время выполнения. Вы также можете выбрать статическую компиляцию модулей, используя опцию .

Дополнительные модули включаются с помощью опции , где module — это имя модуля с строкой mod_ и любым подчеркиванием, преобразованным в тире. Точно так же вы можете отключить модули с опцией . Будьте осторожны при использовании этих опций, так как не может предупредить вас, если указанный вами модуль не существует; он просто проигнорирует опцию.

Кроме того, иногда необходимо предоставить сценарию дополнительную информацию о расположении вашего компилятора, библиотек или заголовочных файлов. Это делается путем передачи переменных среды или параметров командной строки для . Для получения дополнительной информации см. Страницу руководства по . Или вызовите , используя опцию .

Для краткого впечатления о том, какие у вас есть возможности, вот типичный пример, который компилирует Apache для дерева установки с определенным компилятором и флагами плюс два дополнительных модуля и :

$ CC="pgcc" CFLAGS="-O2" \
./configure 

После запуска потребуется несколько минут, чтобы проверить наличие функций в вашей системе и создать файлы Makefile, которые впоследствии будут использоваться для компиляции сервера.

Подробная информация обо всех различных параметрах доступна на странице руководства по .

Name-based vs. IP-based Virtual Hosts

IP-based virtual hosts use the IP address of the connection to
determine the correct virtual host to serve. Therefore you need to
have a separate IP address for each host.

With name-based virtual hosting, the server relies on the client to
report the hostname as part of the HTTP headers. Using this technique,
many different hosts can share the same IP address.

Name-based virtual hosting is usually simpler, since you need
only configure your DNS server to map each hostname to the correct
IP address and then configure the Apache HTTP Server to recognize
the different hostnames. Name-based virtual hosting also eases
the demand for scarce IP addresses. Therefore you should use
name-based virtual hosting unless you are using equipment
that explicitly demands IP-based hosting. Historical reasons for
IP-based virtual hosting based on client support are no longer
applicable to a general-purpose web server.

Настройка Apache

Уже прошло то время, когда конфигурация Apache хранилась в одном файле. Но оно и правильно, когда все распределено по своим директориям, в конфигурационных файлах легче ориентироваться.

Все настройки содержатся в папке /etc/apache/:

  • Файл /etc/apache2/apache2.conf отвечает за основные настройки
  • /etc/apache2/conf-available/* — дополнительные настройки веб-сервера
  • /etc/apache2/mods-available/* — настройки модулей
  • /etc/apache2/sites-available/* — настойки виртуальных хостов
  • /etc/apache2/ports.conf — порты, на которых работает apache
  • /etc/apache2/envvars

Как вы заметили есть две папки для conf, mods и site. Это available и enabled. При включении модуля или хоста создается символическая ссылка из папки available (доступно) в папку enable (включено). Поэтому настройки лучше выполнять именно в папках available. Вообще говоря, можно было бы обойтись без этих папок, взять все и по старинке свалить в один файл, и все бы работало, но сейчас так никто не делает.

Сначала давайте рассмотрим главный файл конфигурации:

Timeout — указывает как долго сервер будет пытаться продолжить прерванную передачу или прием данных. 160 секунд будет вполне достаточно.

KeepAlive On — очень полезный параметр, позволяет передавать несколько файлов, за одно соединение, например, не только саму html страницу, но и картинки и css файлы.

MaxKeepAliveRequests 100 — максимальное количество запросов за одно соединение, чем больше, тем лучше.

KeepAliveTimeout 5 — таймаут соединения, обычно для загрузки страницы достаточно 5-10 секунд, так что больше ставить не нужно, но и рвать соединение раньше чем загрузились все данные тоже не нужно.

User, Group — пользователь и группа, от имени которых будет работать программа.

HostnameLookups — записывать в логи вместо ip адресов доменные имена, лучше отключить, чтобы ускорить работу.

LogLevel — уровень логирования ошибок. По умолчанию используется warn, но чтобы логи заполнялись медленнее достаточно включить error

Include — все директивы include отвечают за подключение рассмотренных выше конфигурационных файлов.

Директивы Directory отвечают за настройку прав доступа к той или иной директории в файловой системе. Синтаксис здесь такой:

Здесь доступны такие основные опции:

AllowOverride — указывает нужно ли читать .htaccess файлы из этой директории, это такие же файлы настроек и таким же синтаксисом. All — разрешать все, None — не читать эти файлы.

DocumentRoot — устанавливает из какой папки нужно брать документы для отображенияа пользователю

Options — указывает какие особенности веб-сервера нужно разрешить в этой папке. Например, All — разрешить все, FollowSymLinks — переходить по символическим ссылкам, Indexes — отображать содержимое каталога если нет файла индекса.

Require — устанавливает, какие пользователи имеют доступ к этому каталогу. Require all denied — всем запретить, Require all granted — всем разрешить. можно использовать вместо all директиву user или group чтобы явно указать пользователя.

Order — позволяет управлять доступом к директории. Принимает два значения Allow,Deny — разрешить для всех, кроме указанных или Deny,Allow — запретить для всех, кроме указанных. Теперь мы можем запретить доступ к директории для всех: Deny from all, а затем разрешить только для приложения от losst.ru: Allow from losst.ru.

Здесь все эти директивы не используются, поскольку нас устраивают значения по умолчанию, но вот в файлах .htaccess они могут быть очень полезны.

У нас остался файл /etc/apache2/ports.conf:

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

Последний файл /etc/apache2/envvars, его вы вряд ли будете использовать, в нем указанны переменные, которые можно использовать в других конфигурационных файлах.

Дальше поговорим немного о htacess. Совсем немного.

ШАГ 2 настройка Apache

Все конфигурационные файлы WEB сервера Apache данной сборки расположены в каталоге /Apache24/conf. Главным конфигом является файл /Apache24/conf/httpd.conf.

Для успешного запуска Apache, необходимо выполнить всего одну настройку в httpd.conf конфиге сервера, в строке №38, указать директиву ServerRoot, которая определяет путь к домашней директории вашей инсталляции Apache.

Указание ServerRoot

Для примеров этой статьи директива ServerRoot будет иметь значение:

Define SRVROOT "Z:/WebDevelopment/Apache24"
ServerRoot "${SRVROOT}"

здесь в httpd.conf задание ServerRoot выполнено не напрямую, а через определение переменной SRVROOT. Это удобный способ, т.к. позволяет задавать путь единожды в начале конфига, а далее он будет уже применяться автоматически в нужных местах конфигурации через эту переменную.

После установки ServerRoot директивы WEB сервер Apache может быть успешно запущен и будет отображать страницу по умолчанию с документацией по адресу localhost. Все остальные настройки конфигурации Apache уже являются дополнительными и зависят от ваших потребностей.

Детали по конфигам Apache вы можете посмотреть в статьях «Обзор конфигурации Apache в Ubuntu» и «Главный config WEB сервера Apache в Ubuntu», т.к. вся логика, приемы настройки и значения директив будут в данном случае одинаковые как для конфигурации Apache на Windows, так и на Linux.

Копирование числовых ячеек из 1С в Excel Промо

Решение проблемы, когда значения скопированных ячеек из табличных документов 1С в Excel воспринимаются последним как текст, т.е. без дополнительного форматирования значений невозможно применить арифметические операции. Поводом для публикации послужило понимание того, что целое предприятие с более сотней активных пользователей уже на протяжении года мучилось с такой, казалось бы на первый взгляд, тривиальной проблемой. Варианты решения, предложенные специалистами helpdesk, обслуживающими данное предприятие, а так же многочисленные обсуждения на форумах, только подтвердили убеждение в необходимости описания способа, который позволил мне качественно и быстро справиться с ситуацией.

Authentication example

If you jumped directly to this part of the document to find out how
to do authentication, it is important to note one thing. There is a
common misconception that you are required to use
files in order to implement password
authentication. This is not the case. Putting authentication directives
in a
section, in your main server configuration file, is the preferred way
to implement this, and files should be used only
if you don’t have access to the main server configuration file. See for a discussion of when you should and should
not use files.

Having said that, if you still think you need to use a
file, you may find that a configuration such as
what follows may work for you.

file contents:

AuthType Basic
AuthName "Password Required"
AuthUserFile "/www/passwords/password.file"
AuthGroupFile "/www/passwords/group.file"
Require group admins

Note that must be in effect
for these directives to have any effect.

Examples

Passing broken headers to CGI scripts

Starting with version 2.4, Apache is more strict about how HTTP
headers are converted to environment variables in and other modules: Previously any invalid characters
in header names were simply translated to underscores. This allowed
for some potential cross-site-scripting attacks via header injection
(see
Unusual Web Bugs, slide 19/20).

If you have to support a client which sends broken headers and
which can’t be fixed, a simple workaround involving and allows you to still accept
these headers:

#
# The following works around a client sending a broken Accept_Encoding
# header.
#
SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=$1
RequestHeader set Accept-Encoding %{fix_accept_encoding}e env=fix_accept_encoding

Changing protocol behavior with misbehaving clients

Earlier versions recommended that the following lines be included in
httpd.conf to deal with known client problems. Since the affected clients
are no longer seen in the wild, this configuration is likely no-longer
necessary.

#
# The following directives modify normal HTTP response behavior.
# The first directive disables keepalive for Netscape 2.x and browsers that
# spoof it. There are known problems with these browser implementations.
# The second directive is for Microsoft Internet Explorer 4.0b2
# which has a broken HTTP/1.1 implementation and does not properly
# support keepalive when it is used on 301 or 302 (redirect) responses.
#
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0

#
# The following directive disables HTTP/1.1 responses to browsers which
# are in violation of the HTTP/1.0 spec by not being able to understand a
# basic 1.1 response.
#
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0

Do not log requests for images in the access log

This example keeps requests for images from appearing in the
access log. It can be easily modified to prevent logging of
particular directories, or to prevent logging of requests
coming from particular hosts.

SetEnvIf Request_URI \.gif image-request
SetEnvIf Request_URI \.jpg image-request
SetEnvIf Request_URI \.png image-request
CustomLog "logs/access_log" common env=!image-request

Prevent «Image Theft»

This example shows how to keep people not on your server
from using images on your server as inline-images on their
pages. This is not a recommended configuration, but it can work
in limited circumstances. We assume that all your images are in
a directory called .

SetEnvIf Referer "^http://www\.example\.com/" local_referal
# Allow browsers that do not send Referer info
SetEnvIf Referer "^$" local_referal
<Directory "/web/images">
    Require env local_referal
</Directory>

Testing the Installation

After starting Apache (either in a console window or as a
service) it will be listening on port 80 (unless you changed the
directive in the
configuration files or installed Apache only for the current user).
To connect to the server and access the default page, launch a
browser and enter this URL:

Apache should respond with a welcome page and you should see
«It Works!». If nothing happens or you get an error, look in the
file in the subdirectory.
If your host is not connected to the net, or if you have serious
problems with your DNS (Domain Name Service) configuration, you
may have to use this URL:

If you happen to be running Apache on an alternate port, you
need to explicitly put that in the URL:

Once your basic installation is working, you should configure it
properly by editing the files in the subdirectory.
Again, if you change the configuration of the Windows NT service
for Apache, first attempt to start it from the command line to
make sure that the service starts with no errors.

Настройка web-сервера Apache2 в ALD

Для обеспечения совместной работы web-сервера Apache 2.2 с ALD необходимо:

– наличие в системе, на которой функционирует web-сервер, установленного пакета клиента ALD — ; – разрешение имен должно быть настроено таким образом, чтобы имя системы разрешалось, в первую очередь, как полное имя (например, ); – клиент ALD должен быть настроен на используемый ALD домен; – в системе должен быть установлен модуль web-сервера Apache 2.2 auth_kerb из пакета .

Наличие модуля web-сервера Apache 2.2 auth_kerb предоставляет возможность организации совместной работы с ALD с использованием для аутентификации пользователей посредством Kerberos метода GSSAPI. Для проведения операций по настройке ALD и администрированию Kerberos необходимо знание паролей администраторов ALD и Kerberos. Для обеспечения возможности работы web-сервера Apache 2.2 с ALD необходимо:

активировать модуль web-сервера Apache 2.2 auth_kerb при помощи команды:

в конфигурационных файлах виртуальных хостов web-сервера Apache 2.2 для областей, требующих авторизации, указать:

создать в БД ALD с помощью утилиты администрирования ALD принципала, соответствующего настраиваемому web-серверу Apache. Принципал создается с автоматически сгенерированным случайным ключом:

ввести созданного принципала в группу сервисов mac, используя следующую команду:

создать файл ключа Kerberos для web-сервера Apache с помощью утилиты администрирования ALD ald-client, используя следующую команду:

Полученный файл должен быть доступен web-серверу Apache по пути, указанному в конфигурационном параметре Krb5Keytab (в данном случае — ). Права доступа к этому файлу должны позволять читать его пользователю, от имени которого работает web-сервер Apache (как правило, владельцем файла назначается пользователь www-data);

сменить владельца полученного на предыдущем шаге файла keytab на пользователя www-data, выполнив следующую команду:

сделать файл доступным на чтение для остальных пользователей:

перезапустить web-сервер Apache, выполнив команду:

Браузер пользователя должен поддерживать аутентификацию negotiate. В последних версиях браузера Konqueror данная поддержка присутствует автоматически. В браузере Mozilla Firefox в настройках, доступных по адресу about:config, необходимо указать, для каких серверов доступна аутентификация negotiate. Для выполнения данной настройки необходимо задать маски доменов или в общем случае http- и https- соединения в качестве значений параметра , вставив, например, значение .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector