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
    • 最新
    • 标签
主页 / server / 问题 / 1137213
Accepted
witchkinkofAngmar
witchkinkofAngmar
Asked: 2023-07-14 23:49:31 +0800 CST2023-07-14 23:49:31 +0800 CST 2023-07-14 23:49:31 +0800 CST

Linux 的跨域身份验证和传递林信任

  • 772

我有两个域——一个用于开发,一个用于公司。

由于可传递林信任,我可以将 Windows 计算机加入 dev 域并以 corp 用户身份登录。我可以将 Linux 计算机加入开发域(使用领域加入或 adcli 加入),但无法使用 corp 用户帐户使用 ssh 或控制台登录。是否有解决方案,无需加入(使用领域/adcli)公司领域?他们不希望公司广告服务器上有开发计算机对象。

echo "password" | realm join --user=user --computer-ou='OU=Linux_Servers,DC=dev,DC=domain,DC=com' --os-name='Linux'  dev.domain.com

克雷布5

[libdefaults]
    default_realm       =           DEV.DOMAIN.COM    # domain specific parameter (full domain name)
    clockskew           =           300
    ticket_lifetime     =           1d
    forwardable         =           true
    proxiable           =           true
    dns_lookup_realm    =           true
    dns_lookup_kdc      =           true
   
 
   [realms]
        DEV.DOMAIN.COM = {
        kdc            =       adserver.domain.com   # domain specific parameter (domain controller name)
        admin_server   =       adserver.domain.com   # domain specific parameter (domain controller name)
        default_domain =       DEV.DOMAIN.COM         # domain specific parameter (full domain name)
        }

        CORP.DOMAIN.COM = {
        kdc            =       corpadserver.domain.com   # domain specific parameter (domain controller name)
        admin_server   =       corpadserver.domain.com   # domain specific parameter (domain controller name)
        default_domain =       CORP.DOMAIN.COM         # domain specific parameter (full domain name)
        }
 
[domain_realm]
        .dev.domain.com = DEV.DOMAIN.COM  # domain specific parameter (domain name for dns names)
        dev.domain.com = DEV.DOMAIN.COM   # domain specific parameter (domain name for dns names)

 
[appdefaults]
        pam = {
        ticket_lifetime         = 1d
        renew_lifetime          = 1d
        forwardable             = true
        proxiable               = false
        retain_after_close      = false
        minimum_uid             = 0
        debug                   = false

固态硬盘

[sssd]
domains = dev.domain.com, corp.domain.com
config_file_version = 2
services = nss, pam
default_domain_suffix = example.com

[nss]
homedir_substring = /home

[pam]

[domain/dev.domain.com]
ad_domain = dev.domain.com
krb5_realm = DEV.DOMAIN.COM
realmd_tags = manages-system joined-with-samba 
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

基尼特

[root@vm ~]# kinit [email protected]
Password for [email protected]:
kinit: KDC reply did not match expectations while getting initial credentials
[root@gbr7testvmjuly ~]# kinit localdevadmin
Password for [email protected]:
[root@gbr7testvmjuly ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email protected]

Valid starting       Expires              Service principal
07/14/2023 10:44:11  07/14/2023 20:44:11  krbtgt/[email protected]
    renew until 07/14/2023 20:44:11
linux
  • 1 1 个回答
  • 148 Views

1 个回答

  • Voted
  1. Best Answer
    witchkinkofAngmar
    2023-08-01T00:09:10+08:002023-08-01T00:09:10+08:00

    编辑 #1 - Ubuntu 更新:

    我最终让它适用于 CentOS、RedHat 和 Ubuntu。Ubuntu 类似,但在包名称和制作 homedir 方面有一些差异。

    使用 samba、winbind 和 net ads 加入:

    dnf install samba samba-client  samba-winbind samba-winbind-clients oddjob oddjob-mkhomedir
    

    /etc/samba/smb.conf:

    [global]
            workgroup = DEV
            realm = DEV.DOMAIN.COM
            security = ads
            idmap config * : backend = autorid
            idmap config * : range = 100000-19999999
            idmap config * : rangesize = 1000000
            template homedir = /home/%D/%U
            template shell = /bin/bash
            winbind use default domain = false
            winbind offline logon = true
            log file = /var/log/samba/log.%m
            max log size = 50
            log level = 0
    

    加入并停止/启动 winbind:

    systemctl stop winbind
    net ads join -U domainAdmin
    systemctl enable winbind --now
    

    现在我可以作为 corp 用户通过 ssh 连接到开发计算机,但我必须在登录时指定 corp 域,否则它将默认为本地用户并失败:

    ssh -l [email protected] 10.1.100.100
    [CORP\username@hostnametest ~]$ whoami
    CORP\username
    [CORP\username@hostnametest ~]$ pwd
    /home/CORP/username
    

    有没有一种方法可以默认添加 corp 域以进行登录尝试,或者理想情况下,使用另一个 samba 或 ssh 配置设置来处理它?

    编辑#1:Ubuntu 几乎是一样的

    apt -y install winbind libpam-winbind libnss-winbind krb5-config samba-dsdb-modules samba-vfs-modules
    

    相同的 smb.conf

    此外,我在 /etc/nsswitch.conf 和 /etc/pam.d/common-session 中添加了这些编辑

    /etc/nsswitch.conf:

    passwd:         files systemd winbind
    group:          files systemd winbind
    

    /etc/pam.d/common-session:

    session optional        pam_mkhomedir.so skel=/etc/skel umask=077
    

    加入并重新启动 winbind。

    我不必更新 netplan 中的 DNS 设置,因为它已经有了正确的名称服务器。

    • 1

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve