1.8. 为 Apache HTTP web 服务器配置 Kerberos 验证
要在 Apache HTTP web 服务器中执行 Kerberos 身份验证,RHEL 8 使用 mod_auth_gssapi Apache 模块。Generic Security Services API(GSSAPI)是请求使用安全库(如 Kerberos)的应用程序的接口。gssproxy 服务允许对 httpd 服务器实施特权分离,从安全的角度来看,这优化了此过程。
mod_auth_gssapi 模块取代了已删除的 mod_auth_kerb 模块。
先决条件
-
httpd和gssproxy软件包已经安装。 -
Apache Web 服务器已设置,并且
httpd服务在运行。
1.8.1. 在 IdM 环境中设置 GSS-Proxy 复制链接链接已复制到粘贴板!
这个流程描述了如何设置 GSS-Proxy ,以便在 Apache HTTP Web 服务器中执行 Kerberos 身份验证。
流程
通过创建服务主体来启用对 HTTP/<SERVER_NAME>@realm 主体的
keytab文件的访问:ipa service-add HTTP/<SERVER_NAME>
# ipa service-add HTTP/<SERVER_NAME>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检索存储在
/etc/gssproxy/http.keytab文件中的主体的keytab:ipa-getkeytab -s $(awk '/^server =/ {print $3}' /etc/ipa/default.conf) -k /etc/gssproxy/http.keytab -p HTTP/$(hostname -f)# ipa-getkeytab -s $(awk '/^server =/ {print $3}' /etc/ipa/default.conf) -k /etc/gssproxy/http.keytab -p HTTP/$(hostname -f)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此步骤将权限设置为 400,因此只有
root用户有访问keytab文件的权限。apache用户无法访问。使用以下内容创建
/etc/gssproxy/80-httpd.conf文件:[service/HTTP] mechs = krb5 cred_store = keytab:/etc/gssproxy/http.keytab cred_store = ccache:/var/lib/gssproxy/clients/krb5cc_%U euid = apache
[service/HTTP] mechs = krb5 cred_store = keytab:/etc/gssproxy/http.keytab cred_store = ccache:/var/lib/gssproxy/clients/krb5cc_%U euid = apacheCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重启并启用
gssproxy服务:systemctl restart gssproxy.service systemctl enable gssproxy.service
# systemctl restart gssproxy.service # systemctl enable gssproxy.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow