Обратный прокси-сервер Apache Kerberos
У меня есть рабочий внутренний сервер Apache, настроенный с помощью mod_auth_kerb. У меня также есть внешний сервер Apache, который прокси-соединения с внутренним.
Когда пользователи подключаются внутренне со своими учетными записями домена, SSO работает с использованием Kerberose. При внешнем доступе им предлагается ввести имя пользователя и пароль. Эта настройка работала до тех пор, пока мы не реализовали второй домен (он же область).
Внутренне пользователи любого домена могут проходить аутентификацию. Но внешне, после ввода учетных данных, внутренний сервер сообщает
[Mon Sep 24 11:17:17.482681 2018] [auth_kerb:error] [pid 10547:tid 140441496266496] [client 10.200.3.36:49484] failed to verify krb5 credentials: Server not found in Kerberos database, referer: https://server.com/
и прокси отчеты
Mon Sep 24 11:17:18.127581 2018] [proxy_http:error] [pid 2539] (70014)End of file found: [client xxx.xxx.xxx.xxx:60926] AH01102: error reading status line from remote server server.com:443, referer: https://server.com/
Я знаю, что упускаю что-то очевидное.
Вот конфиг с прокси
<VirtualHost *:443>
ServerName server.com
SSLEngine On
SSLCertificateFile /etc/pki/tls/certs/server.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/server.com.key
SSLCertificateChainFile /etc/pki/tls/certs/server.com.inter.crt
SSLProxyEngine On
ProxyPass "/" "https://server.com/"
ProxyPassReverse "/" "https://server.com/"
</VirtualHost>
Конфиг с внутреннего сервера
<VirtualHost *:443>
ServerName server.com
DocumentRoot /var/www/html/wordpress
SSLEngine on
SSLCertificateFile "/etc/pki/tls/certs/server.com.crt"
SSLCertificateKeyFile "/etc/pki/tls/private/server.com.key"
SSLCertificateChainFile /etc/pki/tls/certs/server.com.inter.crt
SSLProtocol +TLSv1.2
SSLCipherSuite RSA:HIGH:-LOW:-RC4
<IF "'%{REMOTE_ADDR}' != '10.200.3.35' && '${REQUEST_URI}' != '/wp-admin'">
AuthType Kerberos
AuthName "Kerberos authenticated intranet"
KrbAuthRealms REALM1 REAM2
KrbServiceName Any
Krb5KeyTab /etc/httpd/merged.keytab
KrbMethodNegotiate On
KrbMethodK5Passwd On
require valid-user
</IF>
<Directory "/var/www/html/wordpress">
AllowOverride All
</Directory>
</VirtualHost>
Образец Keytab
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
1 1 HTTP/server.com@REALM1
2 1 HTTP/server.com@REALM1
3 1 HTTP/server.com@REALM1
4 1 HTTP/server.com@REALM1
5 1 HTTP/server.com@REALM1
6 1 HTTP/server.com@REALM2
7 1 HTTP/server.com@REALM2
8 1 HTTP/server.com@REALM2
9 1 HTTP/server.com@REALM2
10 1 HTTP/server.com@REALM2