如何在 Ubuntu 18.04 LTS 上设置 Kerberos 服务器和客户端如何在 Ubuntu 18.04 LTS 上设置 Kerberos 服务器和客户端如何在 Ubuntu 18.04 LTS 上设置 Kerberos 服务器和客户端如何在 Ubuntu 18.04 LTS 上设置 Kerberos 服务器和客户端
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 18.04 LTS 上设置 Kerberos 服务器和客户端

在此页

  1. 第 1 步 - 设置 FQDN
  2. 第 2 步 - 安装 KDC Kerberos 服务器
  3. 第 3 步 - 配置 KDC Kerberos 服务器
  4. 第 4 步 - 安装和配置 Kerberos 客户端
  5. 第 5 步 - 测试
  6. 参考资料

Kerberos 是一种使用对称密钥加密的网络身份验证协议,需要来自受信任的第三方的授权才能对客户端-服务器应用程序进行身份验证。它最初由麻省理工学院 (MIT) 开发,用于保护 Athena 项目提供的网络服务。

在现代世界中,Kerberos 通常用作第三方身份验证服务。这意味着所有客户端都信任 Kerberos 对另一个客户端身份的判断。

在本教程中,我们将向您展示如何在两个 Ubuntu 18.04 服务器之间设置 Kerberos 身份验证。我们将在 Ubuntu 服务器上安装和配置 Kerberos 服务器,然后在另一台服务器上安装 Kerberos 客户端。最后,我们将使用 Kerberos 服务器测试 SSH 服务的身份验证。

先决条件

  • Ubuntu 服务器 18.04
    • 10.10.10.15 krb5.ahmad.io krb5
    • 10.10.10.16 client1.ahmad.io client1

    我们将要做什么:

    1. 设置 FQDN 文件
    2. 安装 KDC Kerberos 服务器
    3. 配置 KDC Kerberos 服务器
    4. 安装和配置 Kerberos 客户端
    5. 测试

    第 1 步 - 设置 FQDN

    首先,我们必须在 Kerberos 服务器上配置 FQDN,然后编辑服务器的 /etc/hosts 文件。

    使用以下命令更改 Kerberos 服务器的 FQDN。

    hostnamectl set-hostname krb5.ahmad.io

    之后,使用 vim 编辑器编辑 /etc/hosts 文件。

    vim /etc/hosts

    用您自己的 IP 地址和 FQDN 更改并粘贴到其中。

    10.10.10.15     krb5.ahmad.io   krb5

    保存并关闭。

    现在使用下面的 ping 命令进行测试,确保 FQDN 解析为正确的 IP 地址。

    ping -c 3 $(hostname -f)

    第 2 步 - 安装 KDC Kerberos 服务器

    现在要在 IP 地址为 10.10.10.15 且 FQDN 为 krb5.ahmad.io 的 krb5 服务器上安装 Kerberos 服务器。

    使用以下 apt 命令安装 Kerberos 服务器。

    sudo apt install krb5-kdc krb5-admin-server krb5-config -y

    在安装过程中,系统会询问您有关 Kerberos Realm、Realm 的 Kerberos 服务器和 Admin 服务器的信息。

    默认情况下,Kerberos 将使用 Kerberos 服务器域名作为 REALM,AHMAD.IO。

    Kerberos 服务器是 krb5.ahmad.io。

    管理服务器与 Kerberos 服务器 krb5.ahmad.io 相同。

    安装完成后,您将看到 Kerberos 服务无法运行。没关系,因为我们将在下一阶段进行配置。

    第 3 步 - 配置 KDC Kerberos 服务器

    现在使用以下命令为 Kerberos REALM 生成一个新的强主密码。

    sudo krb5_newrealm

    输入您的强密码,REALM 密码将在 /etc/krb5kdc/stash 文件中生成。

    之后,我们需要为 KDC Kerberos 服务器创建管理员用户(管理员主体),将 Kerberos 服务器主机名添加到数据库,然后为 Kerberos 服务器创建密钥表。

    为下面的 Kerberos 管理命令运行 kadmin.local 命令行界面。

    sudo kadmin.local

    创建一个名为 root 的新管理员用户主体。

    addprinc root/admin

    键入根管理员主体的强密码。

    将 KDC Kerberos 服务器添加到数据库并为 KDC 主机创建密钥表文件。

    addprinc -randkey host/krb5.ahmad.io
    ktadd host/krb5.ahmad.io

    然后关闭 kadmin.local 实用程序。

    quit

    接下来,我们需要通过编辑 /etc/krb5kdc/kadm5.acl 文件将 root admin 原则添加到访问控制列表中。

    vim /etc/krb5kdc/kadm5.acl

    添加以下配置。

    root/admin * 

    保存并关闭配置,然后重新启动 Kerberos 服务。

    sudo systemctl restart krb5-admin-server.service

    KDC Kerberos 服务器的配置已经完成。

    第 4 步 - 安装和配置 Kerberos 客户端

    在此步骤中,我们将在 IP 地址为 10.10.10.16 且主机名为 client1 的 Ubuntu 服务器上安装 Kerberos 客户端。

    - 配置 FQDN

    使用以下命令在客户端计算机上配置 FQDN。

    hostnamectl set-hostname client1.ahmad.io

    之后,使用 vim 编辑器编辑 /etc/hosts 文件。

    vim /etc/hosts

    如下所示粘贴 KDC Kerberos 服务器和客户端。

    10.10.10.15     krb5.ahmad.io   krb5
    10.10.10.16     client1.ahmad.io    client1

    保存并关闭。

    - 安装 Kerberos 客户端

    通过运行以下 apt 命令安装 Kerberos 客户端包。

    sudo apt install -y krb5-user libpam-krb5 libpam-ccreds auth-client-config

    在安装过程中,系统会询问您有关 Kerberos Realm、Realm 的 Kerberos 服务器和 Admin 服务器的信息。

    默认情况下,Kerberos 将使用 Kerberos 服务器域名作为 REALM,AHMAD.IO。

    Kerberos 服务器是 krb5.ahmad.io。

    管理服务器与 Kerberos 服务器 krb5.ahmad.io 相同。

    Kerberos 客户端安装完成。

    - 配置 Kerberos 客户端

    在客户端机器上,使用 kadmin 命令连接到 KDC Kerberos 服务器。

    kadmin

    并且会要求你输入 root/admin principle 的密码。输入密码,您将登录到 KDC Kerberos 管理系统。

    现在将客户端 FQDN client1.ahmad.io 添加到 Kerberos 数据库并为客户端添加密钥表文件。

    addprinc -randkey host/client1.ahmad.io
    ktadd host/client1.ahmad.io

    然后关闭 kadmin Kerberos 管理界面。

    quit

    Kerberos 客户端配置完成。

    第 5 步 - 测试

    出于此测试目的,我们将使用 Kerberos 配置 SSH 身份验证。客户端机器 client1.ahmad.io 将使用 Kerberos 身份验证通过 SSH 连接到服务器 krb5.ahmad.io。

    - 设置 krb5.ahmad.io 服务器

    创建一个名为 ammar 的新系统用户。

    useradd -m -s /bin/bash ammar

    登录到 KDC Kerberos 管理并添加一个名为 ammar 的新主体用户。

    kadmin.local
    addprinc ammar

    关闭 Kerberos 管理界面并编辑 ssh 配置 /etc/ssh/sshd_config。

    vim /etc/ssh/sshd_config

    取消注释 GSSAPIAuthentication 并通过将值更改为 来启用它。

    GSSAPIAuthentication yes
    GSSAPICleanupCredentials yes

    保存并关闭配置,然后重启ssh服务。

    systemctl restart sshd

    - 安装 client1.ahmad.io 机器

    在客户端机器上添加新的系统用户 ammar 并登录。

    useradd -m -s /bin/bash ammar
    su - ammar

    之后,初始化 Kerberos 用户主体 ammar。

    kinit ammar

    输入用户密码,然后使用以下命令检查可用的票证。

    klist

    您将看到以下结果。

    现在您可以使用 SSH Kerberos 身份验证连接 krb5.ahmad.io 服务器。

    ssh krb5.ahmad.io

    您将通过 SSH 使用 Kerberos 身份验证连接到 krb5.ahmad.io 服务器。

    下面是登录到服务器后的 SSH 日志。

    至此,Ubuntu 18.04 上Kerberos 服务端和客户端的安装配置已经顺利完成。

    参考

©2015-2025 艾丽卡 support@alaica.com