Вы лежите в кровати и пытаетесь заснуть,
Близкий Вам человек периодически спрашивает Вас - "Ты спишь?"
Вот этот "ты спишь ?" и есть KeepAlive пакет.
(C) Google вопросы и ответы
Задача: прозрачно аутентифицировать пользователей при доступе к Apache2.
Приборы и материалы: RHEL6, Apache2 и mod_auth_ntlm_winbind.
Успешно работающий на других хостах пример:
<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
AuthType NTLM
AuthName "Zabbix"
NTLMAuth on
NegotiateAuth on
NTLMBasicAuthoritative on
NTLMBasicAuth on
NTLMBasicRealm "Zabbix"
NTLMAuthHelper "/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp"
NegotiateAuthHelper "/usr/bin/ntlm_auth --helper-protocol=gss-spnego"
PlaintextAuthHelper "/usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic"
require valid-user
</Directory>
почему-то не работает на RHEL6 - NTLM аутентификация не проходит, Basic аутентификация спрашивает имя и пароль, но не пускает:
10.1.1.8 - - [02/Sep/2011:08:34:41 +0400] "GET /zabbix/ HTTP/1.1" 401 472 "-" "Mozilla/5.0 (Windows NT 5.1; rv:5.0.1) Gecko/20100101 Firefox/5.0.1"
10.1.1.8 - - [02/Sep/2011:08:34:41 +0400] "GET /zabbix/ HTTP/1.1" 401 472 "-" "Mozilla/5.0 (Windows NT 5.1; rv:5.0.1) Gecko/20100101 Firefox/5.0.1"
Запрос клиента:
GET /zabbix HTTP/1.1
Host: zabbix
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0.1) Gecko/20100101 Firefox/5.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Ответ сервера:
HTTP/1.1 401 Authorization Required
Date: Fri, 02 Sep 2011 06:09:12 GMT
Server: Apache
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
WWW-Authenticate: Basic realm="Zabbix"
Content-Length: 462
Connection: close
Content-Type: text/html; charset=iso-8859-1
После чего их диалог заканчивается. Оказалось, что причиной такого поведения стал параметр Apache2 KeepAlive, который в RHEL6 по умолчанию имеет значение off, хотя в документации Apache2 сказано обратное:
Description: Enables HTTP persistent connections
Syntax: KeepAlive On|Off
Default: KeepAlive On
Context: server config, virtual host
Status: Core
Module: core
Изменение значения этого параметра решило проблему:
10.1.1.8 - ITCROWD\\gyles [02/Sep/2011:10:24:12 +0400] "GET /zabbix/ HTTP/1.1" 200 9882 "-" "Mozilla/5.0 (Windows NT 5.1; rv:5.0.1) Gecko/20100101 Firefox/5.0.1"