И так, изучив логи на сервере понял, что проблема, с появлением паразитической авторизацией на разных разделах портала, связана не с веб-сервером, а в модуле samba, точнее в библиотеке ntlmssp.с, которая участвует в ntlm авторизации.
Еще немного погуглив нашел и решение этой проблемы. Всего-то надо поменять статус возвращаемой ошибки этой библиотеки.
И сейчас я вам расскажу как это сделать для виртуальной машины VMBitrix 3.1, дабы мучения мои, в изучении этого вопроса, не пропали зря
Сразу делайте бекап всей системы! Дальнейшие действия могут повлиять на работу сервера. Все, что вы делаете, вы делаете на свой страх и риск и я никакой ответственности за это не несу. Т.е. вы должны уже иметь хоть какой-то опыт работы с linux и понимать что и зачем вы делаете.
Для начала остановим веб и сопутствующие сервисы, дабы они нам не мешали:
Код |
---|
#service zend-server stop
#service nginx stop
#service winbind stop
#service smb stop |
Не забываем обновлять систему:
Сделаем резервную копию некоторых конфигурационных файлов, они нам понадобятся:
Код |
---|
#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/ |
И установим несколько пакетов, которые тоже будут нужны:
Код |
---|
#yum install gettext openldap-devel krb5-devel -y |
Скачаем исходники samba и распакуем, мы их будет править
На момент написания, текущая версия samba, которая обновилась из репозитарий, была 3.5.10, поэтому и устанавливать буду её. Если у вас другая версия, то желательно скачать именно под вашу версию.
Код |
---|
#wget https://ftp.samba.org/pub/samba/stable/samba-3.5.10.tar.gz
#tar -xzvf samba-3.5.10.tar.gz |
Теперь отредактируем файл ntlmssp.c
Код |
---|
#mcedit ~/samba-3.5.10/source3/libsmb/ntlmssp.c |
Находим в нем такую строчку:
Код |
---|
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;
}
|
Меняем на:
Код |
---|
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;
}
|
Теперь переходим в директорию с исходниками:
Код |
---|
#cd ~/samba-3.5.10/source3 |
Конфигурируем их с нужными нам директориями и модулями:
Код |
---|
#./configure --prefix=/usr --localstatedir=/var --with-configdir=/etc/samba --with-logfilebase=/var/log/samba --with-ads --with-ldap --with-krb5 |
И собираем:
Если все прошло гладко, удаляем текущую самбу:
Восстанавливаем, сохраненные ранее, файлы:
Код |
---|
#tar -xvf ~/backupsmb.tar.gz -C / |
И устанавливаем нашу, слегка подправленную, самбу:
Запускаем сервисы
Код |
---|
#service smb start
#service winbind start
#chmod 777 /var/locks/winbindd_privileged
#service zend-server start
#service nginx start |
chmod 777 /var/locks/winbindd_privileged нужно, иначе апач будет ругаться, что не имеет туда доступ.
Если ntlm авторизацию вы еще не настраивали, то можно настроить:
Сам еще током не тестировал, но вроде пока больше авторизация не достает
Попробуйте и отпишитесь тогда, помогло или нет!