И так, изучив логи на сервере понял, что проблема, с появлением паразитической авторизацией на разных разделах портала, связана не с веб-сервером, а в модуле samba, точнее в библиотеке ntlmssp.с, которая участвует в ntlm авторизации.
Еще немного погуглив нашел и решение этой проблемы. Всего-то надо поменять статус возвращаемой ошибки этой библиотеки.
И сейчас я вам расскажу как это сделать для виртуальной машины VMBitrix 3.1, дабы мучения мои, в изучении этого вопроса, не пропали зря :)
Сразу делайте бекап всей системы! Дальнейшие действия могут повлиять на работу сервера. Все, что вы делаете, вы делаете на свой страх и риск и я никакой ответственности за это не несу. Т.е. вы должны уже иметь хоть какой-то опыт работы с linux и понимать что и зачем вы делаете.
Для начала остановим веб и сопутствующие сервисы, дабы они нам не мешали:
[CODE]#service zend-server stop
#service nginx stop
#service winbind stop
#service smb stop[/CODE]
Не забываем обновлять систему:
[CODE]#yum upgrade -y[/CODE]
Сделаем резервную копию некоторых конфигурационных файлов, они нам понадобятся:
[CODE]#cd ~
#tar -cpzf backupsmb.tar.gz /etc/samba/ /etc/rc.d/init.d/nmb /etc/rc.d/init.d/smb /etc/rc.d/init.d/winbind /etc/sysconfig/samba /etc/httpd/conf.d/[/CODE]
И установим несколько пакетов, которые тоже будут нужны:
[CODE]#yum install gettext openldap-devel krb5-devel -y[/CODE]
Скачаем исходники samba и распакуем, мы их будет править :) На момент написания, текущая версия samba, которая обновилась из репозитарий, была 3.5.10, поэтому и устанавливать буду её. Если у вас другая версия, то желательно скачать именно под вашу версию.
[CODE]#wget https://ftp.samba.org/pub/samba/stable/samba-3.5.10.tar.gz
#tar -xzvf samba-3.5.10.tar.gz[/CODE]
Теперь отредактируем файл ntlmssp.c
[CODE]#mcedit ~/samba-3.5.10/source3/libsmb/ntlmssp.c[/CODE]
Находим в нем такую строчку:
[CODE]if (ntlmssp_command != ntlmssp_state->expected_state) {
DEBUG(1, ("got NTLMSSP command %u, expected %u\n", ntlmssp_command, ntlmssp_state->expected_state));
return NT_STATUS_INVALID_PARAMETER;
}
[/CODE]
Меняем на:
[CODE]if (ntlmssp_command != ntlmssp_state->expected_state) {
DEBUG(1, ("got NTLMSSP command %u, expected %u\n", ntlmssp_command, ntlmssp_state->expected_state));
return NT_STATUS_OK;
}
[/CODE]
Теперь переходим в директорию с исходниками:
[CODE]#cd ~/samba-3.5.10/source3[/CODE]
Конфигурируем их с нужными нам директориями и модулями:
[CODE]#./configure --prefix=/usr --localstatedir=/var --with-configdir=/etc/samba --with-logfilebase=/var/log/samba --with-ads --with-ldap --with-krb5[/CODE]
И собираем:
[CODE]#make[/CODE]
Если все прошло гладко, удаляем текущую самбу:
[CODE]#yum erase samba-* -y[/CODE]
Восстанавливаем, сохраненные ранее, файлы:
[CODE]#tar -xvf ~/backupsmb.tar.gz -C /[/CODE]
И устанавливаем нашу, слегка подправленную, самбу:
[CODE]#make install[/CODE]
Запускаем сервисы
[CODE]#service smb start
#service winbind start
#chmod 777 /var/locks/winbindd_privileged
#service zend-server start
#service nginx start[/CODE]
chmod 777 /var/locks/winbindd_privileged нужно, иначе апач будет ругаться, что не имеет туда доступ.
Если ntlm авторизацию вы еще не настраивали, то можно настроить:
[CODE]#~/ntlm_conf.sh[/CODE]
Сам еще током не тестировал, но вроде пока больше авторизация не достает :)
Попробуйте и отпишитесь тогда, помогло или нет!