AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1109923
Accepted
Habardeen
Habardeen
Asked: 2019-01-16 04:14:24 +0800 CST2019-01-16 04:14:24 +0800 CST 2019-01-16 04:14:24 +0800 CST

18.04 - 加入 AD 问题

  • 772

全新安装和更新 && 升级后,我已按照本指南将机器添加到我们的 AD 基础设施,但在基本配置realm join -v [domain]返回后

! Can't contact LDAP server
realm: No such realm found

所以我启动了一个 CentOS 最小的虚拟机,并且能够通过它注册机器。交叉引用这两个输出,我注意到在 Ubuntu 上realm查找 LDAP 服务器时,相同的命令正在查询错误的 IP,但我没有找到任何有关如何在配置文件中或通过man realm.

所以我尝试ldapsearch -h [server IP]了,手动指定服务器并返回:

ldap_sasl_interactive_bind_s: Local error (-2)
    additional info: SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure.  Minor code may provide more information (No Kerberos credentials available (default cache: FILE:/tmp/krb5cc_0))

这应该不是问题,因为 CentOS VM 给出了相同的结果,尽管它已成功加入。所以,我从 CentOS 机器上复制了 krb5.conf、sssd.conf 和 realmd.conf 的配置文件(备份后),但给出了相同的原始错误。

我认为错误的 LDAP DSE 查找是问题所在,但我无法在任何地方找到要更改的参数。

谢谢你的帮助。

AD 服务器运行 Windows Server 2016。提供以下 .conf 文件:

krb5.conf

[libdefaults]
    default_realm = MYDOMAIN.COM
    dns_lookup_realm = true
    dns_lookup_kdc = true
    forwardable = true
    rdns = false    

[realms]
    MYDOMAIN.COM = {
                kdc = server.mydomain.com
                admin_server = server.mydomain.com
                default_domain = mydomain.com
    }

[domain_realm]
    .mydomain.com = MYDOMAIN.COM
    mydomain.com = MYDOMAIN.COM

sssd.conf

[sssd]
services = nss, pam
domains = mydomain.com
config_file_version = 2


[domain/mydomain.com]
id_provider = ad
access_provider = ad
ad_domain = mydomain.com
krb5_realm = MYDOMAIN.COM
realmd_tags = manages-system joined-with-adcli
cache_credentials = True
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%d/%u

领域配置文件

[users]
    default-home = /home/%D/%U
    default-shell = /bin/bash

[active-directory]
    default-client = sssd
    os-name = Ubuntu
    os-version = 18.04

[service]
    automatic-install = no

[mydomain.com]
    fully-qualified-names = yes
    automatic-id-mapping = no
    user-principal = yes
    manage-system = yes
networking ldap 18.04
  • 3 3 个回答
  • 25895 Views

3 个回答

  • Voted
  1. Best Answer
    Habardeen
    2019-02-13T03:59:00+08:002019-02-13T03:59:00+08:00

    提供我自己的解决方案作为完整指南。

    免责声明:我在这个网站上整理了不同的答案并添加了我自己的部分。我还在整个指南中假设 su 特权。

    使用 Ubuntu 18.04 加入 AD 网络

    0)确保/etc/hosts和/etc/hostname文件包含与您的域管理员提供的凭据相符的地址和名称。还要安装以下软件包:

    $ apt install -y realmd sssd sssd-tools libnss-sss libpam-sss krb5-user adcli samba-common-bin
    

    注意:安装 kerberos 时会提示插入您的领域和域名。跟进,但如果你不知道一些位,请留空。

    1)禁用 systemd-resolved

    $ systemctl disable systemd-resolved.service
    $ systemctl stop systemd-resolved
    

    注意:这是我找到的方式,但禁用 systemd-resolved 可能并不理想。

    2)将以下内容添加到/etc/NetworkManager/NetworkManager.conf该[main]部分:

    dns=default
    

    3)删除符号链接/etc/resolv.conf。它将使用正确的值重新创建。

    4)重启网络服务,添加dnsmasq包:

    $ service network-manager restart
    $ apt install dnsmasq
    

    5)在/etc/nsswitch.conf替换主机行中:

    hosts: files dns [NOTFOUND=return] mdns4_minimal mdns4
    

    注意:如果您有问题,请尝试此行hosts: files dns myhostname。

    6)将以下内容添加到/etc/krb5.conf. 它是区分大小写的,所以要小心。还要删除其他所有内容(首先备份默认值$ cp /etc/krb5.conf /etc/krb5.conf.bak)。如果某个部分不存在,请自行添加:

    [libdefaults]
    default_realm = YOUR.REALM.NAME
    dns_lookup_realm = false
    dns_lookup_kdc = false
    default_ccache_name = KEYRING:persistent:%{uid}
    rdns = false
    ticket_lifetime = 24h
    renew_lifetime = 7d
    forwardable = true
    
    [realms]
    YOUR.REALM.NAME = {
      kdc = your.realm.name
      admin_server = your.realm.name
    }
    
    [domain_realm]
    your.realm.name = YOUR.REALM.NAME
    .your.realm.name = YOUR.REALM.NAME
    

    注意:强制查找关闭,对调试有很大帮助,通常我发现查看正在发生的事情非常有用,这与该主题的所有其他指南基本相反。此外,反向 dns 行rnds可能仅与我的网络设置相关,因此请尝试true是否发生某些问题的值。

    7)检查/etc/sssd/sssd.conf以包括以下内容。从第 6 点开始适用相同的指导方针和限制)。可能已经设置了一些值:

    [sssd]
    domains = your.realm.name
    config_file_version = 2
    services = nss, pam
    
    [domain/your.domain.name]
    ad_domain = your.domain.name
    krb5_realm = YOUR.DOMAIN.NAME
    realmd_tags = manages-system joined-with-adcli 
    cache_credentials = True
    id_provider = ad
    krb5_store_password_if_offline = True
    default_shell = /bin/bash
    ldap_id_mapping = True
    use_fully_qualified_names = True
    fallback_homedir = /home/%u@%d
    access_provider = ad
    

    8)重启

    9)加入您的域(需要管理员凭据。您将被要求输入管理员密码):

    $ realm join -v --user=[admin_username] your.realm.name
    

    注意:详细的-v标签对于查看可能出现的问题基本上是必不可少的。在这一点上,如果你真的通过了发现步骤(总是命令的第一步join),如果发生了一些非常详细的错误,那么最坏的情况应该已经过去了。

    祝你好运!

    • 1
  2. joe_h
    2020-04-25T02:11:34+08:002020-04-25T02:11:34+08:00

    太好了,你分享!我有同样的初始问题:

    realm: No such realm found:
    

    我正在遵循这些指南:

    • https://computingforgeeks.com/join-ubuntu-debian-to-active-directory-ad-domain/
    • https://www.server-world.info/en/note?os=Ubuntu_18.04&p=realmd

    我的问题通过两个较小的操作解决了:

    1. 安装生成的新 netplan 设置文件如下所示:

      cat /etc/netplan/50-cloud-init.yaml:
      

      就像这样:

      network:
        ethernets:
          enp0s4:
              addresses:
              - 192.168.1.8/24
              gateway4: 192.168.1.3
              nameservers:
                  addresses:
                  - 192.168.1.252
                  - 192.168.1.253
                  - 192.168.1.3
                  - 1.1.1.1
                  search:
                  - domain.loc
      version: 2
      

      当我切换到经过验证的旧设置结构时,它看起来像这样:

      network:
        ethernets:
          enp0s4:
              dhcp4: no
              addresses: [192.168.1.8/24]
              gateway4: 192.168.1.3
              nameservers:
                addresses: [192.168.1.252,192.168.1.253,192.168.1.3,1.1.1.1]
      version: 2
      

      后一个例子是我让它发挥作用所需要的。

    2. 禁用 IPv6 -(也许这不是最初的问题,但我在尝试 netplan 解决方案之前禁用了它,所以我已经对其进行了调整,所以我想分享它。)

      我更改了这两行/etc/default/grub并添加了ipv6.disable=1:

      GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
      GRUB_CMDLINE_LINUX="ipv6.disable=1"
      

      并跑了update-grub。

    • 1
  3. dcr
    2020-02-21T13:27:53+08:002020-02-21T13:27:53+08:00

    我有两台机器都运行 Kubuntu,还有一台运行 Samba 4 AD 服务器的 Nethserver (CentOS) 服务器。

    其中一台客户端机器较旧,并已多次更新。另一台客户端机器上安装了相当新的 Kubuntu 19.10。

    出于某种原因,域登录停止在旧机器上工作。我一直在检查两台机器上的配置,看看它们的不同之处。

    新机器没有 krb5.conf 或 realmd.conf。旧机器可以。不知何故,在 sssd.conf 文件中,该行

    ldap_id_mapping = True
    

    已更改为假。

    我删除了这两个配置文件并将 ldap_id_mapping 值改回 True,一切似乎恢复正常。如果您遇到问题,可以删除文件并尝试默认设置。至少可以缩小问题的根源。

    • 0

相关问题

  • 如何限制下载/上传带宽?

  • 如何通过 Windows 网络共享文件?

  • 如何设置 Ubuntu Server 10.04 LTS 作为 samba 主域控制器使用 pam 模块对 LDAP 服务器进行身份验证?

  • 面板小程序以文本形式显示当前网络流量?

  • 从共享 NFS /home 到完整的 LDAP 解决方案

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve