You're welcome!
1. Чтобы вырубить NTLM, встроенный в Б24, необходимо переименовать файлы:
ntlm_bitrix24.conf
mod_ntlm.conf
2. Настроить Kerberos:
4. Добавить файлы:
mod_kerberos.conf с текстом:
# Ansible managed
# create virtual hosts for NTLM
<IfModule !auth_kerb_module.c>
LoadModule auth_kerb_module modules/mod_auth_kerb.so
</IfModule>
Listen 8891
<IfModule !ssl_module.c>
LoadModule ssl_module modules/mod_ssl.so
# httpd 2.4
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
SSLSessionCache shmcb:/var/cache/httpd/ssl/scache(512000)
SSLPassPhraseDialog builtin
SSLSessionCacheTimeout 300
SSLRandomSeed startup file:/dev/urandom 256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLProtocol All -SSLv2 -SSLv3
</IfModule>
и kerberos_bitrix24.conf с текстом:
# Ansible managed
# create virtual hosts for NTLM
# site: default
#
<VirtualHost *:8891>
ServerAdmin webmaster@localhost
ServerName bitrix24
ServerAlias *.bitrix24
DocumentRoot /home/bitrix/www
KeepAlive On
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn
ErrorLog logs/default_error_log
#CustomLog logs/default_access_log combined
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/nginx/certs/default/cert.crt
SSLCertificateKeyFile /etc/nginx/certs/default/cert.key
SSLCertificateChainFile /etc/nginx/ssl/cert.chain
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<DirectoryMatch .*\.(svn|git|hg)/.*>
Require all denied
</DirectoryMatch>
<DirectoryMatch /home/bitrix/www/bitrix/(cache|managed_cache|local_cache|stack_cache)>
AllowOverride none
AddType text/plain php,php3,php4,php5,php6,phtml,pl,asp,aspx,cgi,dll,exe,ico,shtm,shtml,fcg,fcgi,fpl,asmx,pht
php_value engine off
</DirectoryMatch>
<DirectoryMatch /home/bitrix/www/(upload|bitrix/images|bitrix/tmp)>
AllowOverride none
AddType text/plain php,php3,php4,php5,php6,phtml,pl,asp,aspx,cgi,dll,exe,ico,shtm,shtml,fcg,fcgi,fpl,asmx,pht
php_value engine off
</DirectoryMatch>
<Directory /home/bitrix/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
DirectoryIndex index.php index.html index.htm
AuthType Kerberos
AuthName "Kerberos Login"
KrbMethodNegotiate On
#для недоменных - basic
KrbDelegateBasic On
KrbSaveCredentials On
KrbVerifyKDC Off
KrbMethodK5Passwd On
KrbAuthRealms BULYGIN.LAN
Krb5KeyTab /etc/krb5.keytab
KrbServiceName HTTP/bitrix24.bulygin.lan@BULYGIN.LAN
Require valid-user
php_admin_value session.save_path /tmp/php_sessions/www
php_admin_value upload_tmp_dir /tmp/php_upload/www
</Directory>
<Directory /home/bitrix/www/upload/support/not_image>
AllowOverride none
Require all denied
</Directory>
</VirtualHost>
Красным выделено то, что нужно исправить на своё.
5. В админке Б24 в настройке модуля AD/LDAP включить переадресацию NTLM и прописать локальные сети, для которых включаем Kerberos. Например, 192.168.1.0/24;192.168.6.0/24;192.168.8.0/24;192.168.12.0/24
6. Подключиться по SSH и в консоли перезапускаем web-сервера:
systemctl restart httpd && systemctl restart nginx
Итак, с подсети 192.168.0.0/24 доступ по аутентификации на формах, а из подсетей 192.168.1.0/24;192.168.6.0/24;192.168.8.0/24;192.168.12.0/24 - по kerberos/basic
Enjoy!
1. Чтобы вырубить NTLM, встроенный в Б24, необходимо переименовать файлы:
ntlm_bitrix24.conf
mod_ntlm.conf
2. Настроить Kerberos:
для настройки kerberos выписан новый keytab на Windows-контроллере домена на учетную запись компа bitrix24$:
ktpass -princ HTTP/bitrix24.bulygin.lan@BULYGIN.LAN -mapuser bitrix24$@BULYGIN.LAN -crypto all -ptype KRB5_NT_SRV_HST /pass ПАРОЛЬ -out d:\krb5.keytab
3. Переписываем получившийся файл из Винды d:\krb5.keytab в Линух /etc/krb5.keytab
Содержимое krb5.conf:
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
kdc_timesync = 5
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
proxiable = true
rdns = false
default_realm = BULYGIN.LAN
default_ccache_name = KEYRING:persistent:%{uid}
kdc_timesync = 5
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
proxiable = true
rdns = false
default_realm = BULYGIN.LAN
default_ccache_name = KEYRING:persistent:%{uid}
[appdefaults]
autologin = true
forward = true
forwardable = true
encrypt = true
autologin = true
forward = true
forwardable = true
encrypt = true
[realms]
BULYGIN.LAN = {
kdc = dc1.bulygin.lan
admin_server = dc1.bulygin.lan
default_domain = BULYGIN.LAN
#auth_to_local = RULE:[1:$1@$0](.+
}
BULYGIN.LAN = {
kdc = dc1.bulygin.lan
admin_server = dc1.bulygin.lan
default_domain = BULYGIN.LAN
#auth_to_local = RULE:[1:$1@$0](.+
.+$)s/
.+$//}
[domain_realm]
.bulygin.lan = BULYGIN.LAN
bulygin.lan = BULYGIN.LAN
.bulygin.lan = BULYGIN.LAN
bulygin.lan = BULYGIN.LAN
4. Добавить файлы:
mod_kerberos.conf с текстом:
# Ansible managed
# create virtual hosts for NTLM
<IfModule !auth_kerb_module.c>
LoadModule auth_kerb_module modules/mod_auth_kerb.so
</IfModule>
Listen 8891
<IfModule !ssl_module.c>
LoadModule ssl_module modules/mod_ssl.so
# httpd 2.4
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
SSLSessionCache shmcb:/var/cache/httpd/ssl/scache(512000)
SSLPassPhraseDialog builtin
SSLSessionCacheTimeout 300
SSLRandomSeed startup file:/dev/urandom 256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLProtocol All -SSLv2 -SSLv3
</IfModule>
и kerberos_bitrix24.conf с текстом:
# Ansible managed
# create virtual hosts for NTLM
# site: default
#
<VirtualHost *:8891>
ServerAdmin webmaster@localhost
ServerName bitrix24
ServerAlias *.bitrix24
DocumentRoot /home/bitrix/www
KeepAlive On
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn
ErrorLog logs/default_error_log
#CustomLog logs/default_access_log combined
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/nginx/certs/default/cert.crt
SSLCertificateKeyFile /etc/nginx/certs/default/cert.key
SSLCertificateChainFile /etc/nginx/ssl/cert.chain
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<DirectoryMatch .*\.(svn|git|hg)/.*>
Require all denied
</DirectoryMatch>
<DirectoryMatch /home/bitrix/www/bitrix/(cache|managed_cache|local_cache|stack_cache)>
AllowOverride none
AddType text/plain php,php3,php4,php5,php6,phtml,pl,asp,aspx,cgi,dll,exe,ico,shtm,shtml,fcg,fcgi,fpl,asmx,pht
php_value engine off
</DirectoryMatch>
<DirectoryMatch /home/bitrix/www/(upload|bitrix/images|bitrix/tmp)>
AllowOverride none
AddType text/plain php,php3,php4,php5,php6,phtml,pl,asp,aspx,cgi,dll,exe,ico,shtm,shtml,fcg,fcgi,fpl,asmx,pht
php_value engine off
</DirectoryMatch>
<Directory /home/bitrix/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
DirectoryIndex index.php index.html index.htm
AuthType Kerberos
AuthName "Kerberos Login"
KrbMethodNegotiate On
#для недоменных - basic
KrbDelegateBasic On
KrbSaveCredentials On
KrbVerifyKDC Off
KrbMethodK5Passwd On
KrbAuthRealms BULYGIN.LAN
Krb5KeyTab /etc/krb5.keytab
KrbServiceName HTTP/bitrix24.bulygin.lan@BULYGIN.LAN
Require valid-user
php_admin_value session.save_path /tmp/php_sessions/www
php_admin_value upload_tmp_dir /tmp/php_upload/www
</Directory>
<Directory /home/bitrix/www/upload/support/not_image>
AllowOverride none
Require all denied
</Directory>
</VirtualHost>
Красным выделено то, что нужно исправить на своё.
5. В админке Б24 в настройке модуля AD/LDAP включить переадресацию NTLM и прописать локальные сети, для которых включаем Kerberos. Например, 192.168.1.0/24;192.168.6.0/24;192.168.8.0/24;192.168.12.0/24
6. Подключиться по SSH и в консоли перезапускаем web-сервера:
systemctl restart httpd && systemctl restart nginx
Итак, с подсети 192.168.0.0/24 доступ по аутентификации на формах, а из подсетей 192.168.1.0/24;192.168.6.0/24;192.168.8.0/24;192.168.12.0/24 - по kerberos/basic
Enjoy!
Спасибо за статью, она по всей видимости единственная в рунете по kerberos и битрикс.
ОтветитьУдалить